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:
Application: CSRSR (Application 60220)
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')
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.
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.
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.
Try going away from automated row processe. See this example on how to easily create a manual process:
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.
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?