- Back to Basics
- APEX and the HTML Form
- APEX and the Order Items are Submitted
- Why does APEX do this? (by John Snyders)
The goal of this article is to highlight how APEX actually processes the data that is sent data from the browser to the server when a submit button is pressed.
Suppose you have a simple page with two elements: P1_FIRST_NAME and P1_LAST_NAME as shown below:
You'll notice that despite their being four input elements they're really only three unique sets of names that are used: p_arg_names, p_t01, and p_t02. When the page is submitted the web server (APEX) will get/processes the following elements:
p_arg_names = 32629789701858906
p_arg_names = 32629863123858907
p_t01 = Martin
p_t02 = D'Souza
None of the data sent back to the server make reference of P1_FIRST_NAME or P2_LAST_NAME. As well, p_arg_names is stored in a top down order of how they are in the page.
p_arg_names values are actually the IDs for each of the of the page items as highlighted in the following query:
select item_id, item_name from apex_application_page_items where 1=1 and application_id = 118 and page_id = 1; ITEM_ID ITEM_NAME ----------------- ------------- 32629789701858906 P1_FIRST_NAME 32629863123858907 P1_LAST_NAMEAPEX is able to map the data back to their corresponding APEX items by first mapping the values in p_arg_names to the apex_application_page_items view and then using the values in the p_txx to retrieve the data that was submitted for each item.
The order that the values are submitted in for p_arg_names must match the p_txx values for APEX to correctly map the values to their appropriate APEX item. I.e. p_args_names will link to p_t01 and p_arg_names will link to p_t02 etc.