Oracle Application Express ( Oracle APEX )
What is Oracle Application Express
Oracle Application Express widely referred as Oracle APEX also, is a feature provided by Oracle on its Database which enables user build web based applications using SQL and PL/SQL. Any developer with SQL and PL/SQL skills can design, built and deploy database-driven applications using its browser based user interface. APEX features such as pre-built user interface themes (templates), navigational controls and form handlers among others makes application development fast and easy and also eliminates dependency on UI developers/experts.
Apex Architecture
Apex is installed /configured on an Oracle database instance and consists of data in the schema and PL/SQL code written for the business logic of application.
Apex application and page are accessed from browser. These requests are then channeled through the middle-tier for execution in the Oracle Database and returned as HTML responses to the browser.
Mid tier plays no role in data manipulation or processing, it is the Oracle APEX engine which ( a part of Oracle Database) accepts page, and interacts with the schemas in the database.
The mid-tier can be
1. Oracle REST Data Services (ORDS) running on a Java Server ( Oracle Weblogic Server, Oracle Glassfish, Tomcat )
2. Oracle embedded PL/SQL Gateway (EPG).
3. Oracle HTTP Server ( with mod_plsql ).
Advantage Apex
It is a good alternative to Oracle forms.
Leverages oracle database capabilities and sql and PL/SQL.
Capability to load data in database tables from .csv and .xlx files.
No separate license required, it comes free with Oracle DB.
Easy to develop application on apex and deploy across environments.
Apex Integration with OBIEE
Lets first understand apex URL syntax and what each parameter in the syntax does.
Syntax of an APEX page URL follows the format as below:
http://host_name/pls/apex/f?p=AppId:PageId:Session:Request:Debug:ClearCache:Params:ParamValues:PrinterFriendly
http:// - It can be either of http or https protocol.
host_name - domain/host/server, it can also be localhost. IP address and port number can be part of it as well.
/pls - This indicates use of Oracle HTTP Server.
/apex - This is refers to name of Database Access Descriptor (DAD). DAD describes how the HTTP server connects to DB server to service HTTP request ( default value being apex ).
/f?p - f here public procedure and main entry point to APEX, and 'p' is parameter to it. (the entire string which consists of below is parameter to 'f').
:AppId - This refer to application Id or alphanumeric alias of apex application being accessed.
:PageId - This is page number or alphanumeric alias of page which is called in the URL ( Every page is part of an apex application ).
:Session - This is apex unique Session ID. It can be empty (then APEX creates a new Session) or set to 0 for Public Pages.
:Request - This is a keyword and used to set value of REQUEST and control page behavior. On click application button sets the value of REQUEST
to the name of the button.
:Debug -- This is used to enable or disable debug mode for the page. Valid values are YES or NO.
:ClearCache -- This is used to clear cache and set values of page items to null. Provide list of page ids for which cache is to be cleared.
:Parameters - Multiple Parameters (page items separated by comma) can be passed from URL to apex age for page items as well as application items
:ParamValues - This contains values (comma separated in case of multiple parameters) for the parameter list in the above. Values cannot have comma and colon as part of it.
:PrinterFriendly - To render an apex page in printer friendly mode, set value as 'Yes' for this parameter.
An apex application page can accessed from or integrated with OBIEE in multiple ways:
1. Calling apex page from report column using interaction feature.
We can define parameter names and respective values. Value can be hardcoded, column value from the report or value of a variable.
2. Apex page embedded in OBIEE dashboard.
How and where we used Apex
We can built simple as well complex application using apex.
We Automated some of the manual ( dependent ) tasks and integrated to OBIEE.
Apex base application to manage Business reference data : Using this apex page authorized user can manage (modify , create, edit ) , refer to business metadata in the database table and reducing the dependency on DBA/ backend team.
.
2.Application to retarget orders due for fulfillment.
Apex application was created to retarget current and subsequent stages of an under progress order and capture the audit information of retarget.
3. Created an apex application page to provide user ability to add comments/inputs for delayed orders which can be seen by different stakeholders. This task was performed over emails using microsoft excel.