Tuesday, 8 October 2013

Understanding APEX URL Syntax

A typical APEX URL looks as below:

http://apex.somewhere.com/pls/apex/f?p=52035:1:15424011031777:::::

It means:
"Open Application 52035 on Page 1 using Session 15424011031777"

Explanation :-

  • http:// –> the protocol, can be http or https
  • apex.somewhere.com -> URL of the server. Can also be localhost.
  • /pls -> pls is the indicator to use the mod_plsql cartridge e.i. it indicates that you are using Oracle HTTP Server with mod_plsql. If you are using APEX Listener or Embedded PL/SQL Gateway this part is obsolete/missing.
  • /apex -> apex is the database access descriptor (DAD) name. The DAD describes how HTTP Server connects to the database server so that it can fulfill an HTTP request. The default value is apex.
  • /f?p= -> It is a prefix used by Oracle Application Express.
  • 52035 is the application being called.
  • 1 is the page within the application to be displayed.
  • 15424011031777 is the session number.
However, the general syntax of APEX URL is as :

http://apex.oracle.com/pls/apex/f?p=AppId:PageId:Session:Request:Debug:ClearCache:itemNames:itemValues:PrinterFriendly

We can create links between pages in our application using the above syntax.

The following describes the arguments you can pass when using f?p syntax :


SyntaxDescription
1 AppId Indicates an application ID or the Alias of the Application.
2 PageId Indicates a page number or the Alias of the Page.
3 Session Identifies a session ID. You can reference a session ID to create hypertext links to other pages that maintain the same session state by passing the session number. You can reference the session ID using the syntax:
  • Short substitution string: &SESSION.
  • PL/SQL: V('SESSION')
  • Bind variable: :APP_SESSION

4 Request Sets the value of REQUEST. Each application button sets the value of REQUEST to the name of the button. This enables accept processing to reference the name of the button when a user clicks it. You can reference REQUEST using the syntax:
  • Substitution string: &REQUEST.
  • PL/SQL: V('REQUEST')
  • Bind variable: :REQUEST
5 Debug Displays application processing details. Valid values for the DEBUG flag are YES or NO. Setting this flag to YES displays details about application processing. You can reference the Debug flag using the following syntax:
  • Short substitution string: &DEBUG.
  • PL/SQL: V('DEBUG')
  • Bind variable: :DEBUG

6 ClearCache Clears the cache. This sets the value of items to null.
To clear cached items on a single page, specify the numeric page number. To clear cached items on multiple pages, use a comma-separated list of page numbers. Clearing a page's cache also resets any stateful processes on the page. Individual or comma-separated values can also include collection names to be reset or the keyword RP, which resets region pagination on the requested page. The keyword APP clears cache for all pages and all application-level items in the current application and removes sort preferences for the current user. The keyword SESSION achieves the same result as the APP keyword, but clears items associated with all applications that have been used in the current session.

7 itemNames Comma-delimited list of item names used to set session state with a URL.
8 itemValues List of item values used to set session state within a URL. Item values cannot include colons, but can contain commas if enclosed with backslashes. To pass a comma in an item value, enclose the characters with backslashes. For example:
\123,45\
9 PrinterFriendly Determines if the page is being rendered in printer friendly mode. If PrinterFriendly is set to Yes, then the page is rendered in printer friendly mode. The value of PrinterFriendly can be used in rendering conditions to remove elements such as regions from the page to optimize printed output. You can reference the printer friendly preference by using the following syntax:
V('PRINTER_FRIENDLY')
When referenced, the Application Express engine will not display tabs or navigation bars, and all items will be displayed as text and not as form elements.


No comments:

Post a Comment