APEX Request: BRANCH_TO_PAGE_ACCEPT
In APEX, there's a special request type called BRANCH_TO_PAGE_ACCEPT. This can be used in the REQUEST portion of the APEX URL. The syntax for the
REQUEST attribute is
For example, suppose you are on Page 1 (P1) and want a button which will:
- Go Page 2 (P2)
- Automatically submit the page, simulating the SAVE button on P2
Create a button on P1 that redirects to the following URL:
The current documentation for
BRANCH_TO_PAGE_ACCEPT states that "_Using BRANCH_TO_PAGE_ACCEPT is the same as navigating to page 1, entering a value into the item P1DATA, and clicking a button that submits the page with a SAVE request." You may interpret this as:
- Run Page 2
- Therefor load/run the page rendering regions and processes
- Simulate clicking the Save button on P2
- Run the Page Processing of P2
This is not entirely true as the following occurs when a user goes to the above URL:
some_value(this is regular APEX URL behavior)
- Execute the Page Processing portion of P2.
- This includes Validations, Processes, and Page branching on P2 as shown below.
What does not occur is the Page Rendering potion of P2. This is important to note because if you had some Pre-Rendering page processes (i.e. on page load) they will not be run. This is slightly contrary to what the documentation states that it is "... the same as navigating to Page 2 ...".
If everything runs smoothly on the P2 submit page processing (i.e no errors or validations fail) then you will branch to the defined page branch on P2. If something does fail then you will be shown P2 along with the corresponding error message.
It is important to note that currently the page item built-in validations are not executed when using
BRANCH_TO_PAGE_ACCEPT. For example, suppose that you set Value Required attribute to Yes for
If you run P2 normally, set
P2_X to an empty value, then submit the page, an error will appear stating that "X must have some value". This is done automatically for you due to the Value Required attribute. If you use the
f?p=&APP_ID.:2:&APP_SESSION.:BRANCH_TO_PAGE_ACCEPT|SAVE:&DEBUG.:2:P2_X: it will set
null, no error will occur as the page item's build in validations aren't executed.