6 Replies Latest reply: Feb 13, 2013 10:42 AM by sect55 RSS

    Session State is set to null when tab (from List) is clicked

    sect55
      Hi Gurus, et al,

      Database: 10g Rel 2
      APEX: 4.1.2

      My application uses a tabbed navigation list to tab through different sections of the form. Each tab issues a doSubmit('tabname');. My application also uses Page 0 for regions that are common to several forms. When I tab through the form (called requisition), the session state for the page items is set to null while the page 0 remains intact. It seems like the doSubmit sets the page items to null. How can I prevent this from happening?

      Also, it still happens on APEX 4.2.1 because I put the application on APEX.ORACLE.COM:
      Workspace: RGWORK
      Application: CSRSR (Application 60220)
      Page: 8
      Username: tester
      Password: test123

      Please follow these steps for this issue to occur
      1. Run application 60220
      2. Select the only choice on the menu (Creative Services Design Requisition (PA 0879))
      3. List of Outstanding Requisitions is displayed
      4. Click the edit icon next to the requisition Project Description is 'zazaza'
      5. Change Date Needed to 3/31/2013
      6. Click on the Project Type tab
      7. All items are null for that tab (project type in the database = 'frame:dec')

      Robert
      http://apexjscss.blogspot.com
        • 1. Re: Session State is set to null when tab (from List) is clicked
          Denes Kubicek
          Robert,

          what you are saying ist not correct. If I open the form, I will see that the session state of the items (P8_PROJECT_TYPE) is NULL. If I go to that tab and change the information there and then change the tabs and go back again, the values I set will still be there.

          I think you have too many elements, computations, processes and dynamic actions on your page. It is a nightmare to debug. The form doesn't seem to be complex from the requirement point of view. It seems you just made it complex.

          Denes Kubicek
          -------------------------------------------------------------------
          http://deneskubicek.blogspot.com/
          http://www.apress.com/9781430235125
          http://apex.oracle.com/pls/apex/f?p=31517:1
          http://www.amazon.de/Oracle-APEX-XE-Praxis/dp/3826655494
          -------------------------------------------------------------------
          • 2. Re: Session State is set to null when tab (from List) is clicked
            sect55
            Denes,

            While I appreciate your professional opinion, the issue still remains. I may not have the described the issue clearly. It seems that while the row is initially fetched (source type is only when null), project type and purpose items are not displayed initially with the infomation from the table when the appropriate tab is clicked. For example, while the row contains 'frame:dec' for project type, those checkboxes are checked on on the screen.

            The form is "complex" for the following reasons:
            1. Uses a wizard for new requisitions
            2. Uses tabs for updates
            3. Uses a Modal page to display outstanding requisitions for the user before the form is displayed
            4. Uses common regions (on page 0) with other pages (3 pages uses project information, delivery, requesting department, and chargecode regions.
            5. Authorized approvers popup list are populated
            6. Manual tabular form is used for framing information including collections

            I tried to uses application processes, application computations, package procedures and functions whenever possible.

            SOMEONE, PLEASE HELP!

            Robert
            http://apexjscss.blogspot.com
            • 3. Re: Session State is set to null when tab (from List) is clicked
              Denes Kubicek
              Robert,

              Try going away from automated row processe. See this example on how to easily create a manual process:

              http://apex.oracle.com/pls/apex/f?p=31517:277

              This makes sure that the session state is set while loading the form. You will need to change the source of your items to "Static...".

              Denes Kubicek
              -------------------------------------------------------------------
              http://deneskubicek.blogspot.com/
              http://www.apress.com/9781430235125
              http://apex.oracle.com/pls/apex/f?p=31517:1
              http://www.amazon.de/Oracle-APEX-XE-Praxis/dp/3826655494
              -------------------------------------------------------------------
              • 4. Re: Session State is set to null when tab (from List) is clicked
                sect55
                Denes,

                Thank you for the link. It looks very impressive!

                I would prefer to use the automated row process. It is also happening to another application that uses tabs than anoter deveoper in my company is developing. So it is not just my application. Why wouldn't it be saving the session state? If I need to change it to a manual process, I already have created DML package for the application via SQL Workshop > Utilities > Methods on Tables. If I need to use a manual process (as the last resort), I would use the already created DML package.

                Robert
                http://apexjscss.blogspot.com
                • 5. Re: Session State is set to null when tab (from List) is clicked
                  sect55
                  Denes, et al,

                  >
                  Try going away from automated row processe. See this example on how to easily create a manual process:

                  http://apex.oracle.com/pls/apex/f?p=31517:277

                  This makes sure that the session state is set while loading the form. You will need to change the source of your items to "Static...".
                  >

                  I used the manual process for the update and it worked out quite well. I am trying to perform the manual process for the fetch but I am having a problem because my table has a blob field for attaching a file (i.e., file browser). Since, APEX does not use BLOB fields (only TEXT fields) how can I copy the automatic fetch's functions for a table that includes blob for a file browser page item?

                  Sorry, at this point, I have not updated APEX.ORACLE.COM using the manual process. But you can see the file browser page item I am speaking about in my Qty region (and Project Type tab) on Page 8.

                  Robert
                  http://apexjscss.blogspot.com
                  • 6. Re: Session State is set to null when tab (from List) is clicked
                    sect55
                    Denes, et al,

                    I fixed the problem. All page items I changed from database item to static except for the fiile_content blob field. That seemed to work.

                    Since dosubmit seems not to save the session state (i.e., reset to null) of the page items, I have to use this workaround (explicit fetch and update). Can someone look into the dosubmit or apex.submit issue?

                    As always, thank you for your help.

                    Robert
                    http://apexjscss.blogspot.com