Oracle Financials – APEX
Presented by : Ian DreverChitra Kanakaraj
The University of Waikato
Presentation ContentsPresentation Contents
Business Requirements Design Considerations Configuring Oracle Financials to link to Application
Express Configuring Oracle Financials to link to a page within
an Application Express application How this works in practice Questions
Business RequirementsBusiness Requirements The University decided to implement Oracle Projects to manage
costing and billing for research and other projects. The Research Office had developed a comprehensive stand alone
Microsoft Access database to control Research at the university. Oracle Financials was to be the prime source for research project
information APEX would provide additional information associated with
managing research projects Ownership of the APEX application would remain with the
Research Office A large number of staff may require access to research project
information
Design Considerations The user must be able to open the APEX project details from
within an open project in Oracle Projects Single sign on is required Access would be required to Project Information without
requiring access to Oracle Projects Oracle Projects would provide the base source data APEX would store additional data Oracle Projects would capture transactional and revenue
costing APEX would not update Oracle Projects data
Configuring Oracle Financials to link to Application Express
Create the Profile under the Application Developer Responsibility
Name – “Oracle Application Express Launcher”
Step 1: Create a profile for launching Application Express
Step 2: Set the site for the for the profile created in Step 1.
Responsibility – System AdministratorMenu Option: Profile -> System and search for the ‘Oracle Application Express Launcher’.Set the value at the Site Level as:
“http://<hostname>:<port>/pls/apex”
Step 3: Create a function
Responsibility: System AdministratorMenu Option: Application ->FunctionCreate Function: APEX_LAUNCHUser Function Name: Projects: Options: APEX_LAUNCH
Step 4: Set the function properties
Set the Property type to “SSWA plsql function”
Step 5: Create a line for the APEX_LAUNCHER on the Web Enabled PL.Sql page
Web Enabled PL/SQL page
Menu Option: Security -> Web PL/SQL Search for the APEX_LAUNCHER functionSet the Type column to“Package”
Step 6: Create a menu entry for APEX.
Menu Option: Application->MenuAdd a line for the LAUNCH APEX prompt
Step 7: Create a menu option line for APEX on the PA_IMP_SUPERUSER_GUI menu
Compile the package APEX_LAUNCHER in the EBS database (APPS)This package has the procedure APEX_LAUNCH. Process flow in the procedure is as follows
This package:o Sets the url using FND_PROFILE.value('LAUNCH_APEX');o Passes the application id and the page id 111 in the urlo Sends a COOKIE using OWA_COOKIE.send procedure with a
name and a value parameter. Use this value parameter to pass the username and password for the APEX login authentication.
o Opens a new window using the UnilinkURL.
In the APEX application on page 101 (i.e. logon page), create a process (on load before header) to read the OWA_COOKIE sent from the above procedure and set the USERNAME and PASSWORD. Use the APEX login API wwv_flow_custom_auth_std.login to login the APEX application.
The code is based on this white paper:http://www.oracle.com/technology/products/database/application_express/pdf/Extend_Oracle_Applications_11i.pdf
• PROCEDURE apex_launch( application IN NUMBER,• page IN NUMBER DEFAULT 1,• request IN VARCHAR2 DEFAULT NULL,• item_names IN VARCHAR2 DEFAULT NULL,• item_values IN VARCHAR2 DEFAULT NULL) is• • user_key VARCHAR(100);• apex_launcher_profile varchar2(2000);• unilink_user varchar2(30);• unilink_url varchar2(150);• • BEGIN• -- replace the FND_GLOBAL.user_name with unilink_user• unilink_user := 'UNILINK';• unilink_url :='http://<server>/pls/htmldb/f?
p=114:111:::NO::P101_USERNAME,P101_PASSWORD,P101_FILE_NUMBER,P101_USER_ID:unilink,unilink,,'||FND_GLOBAL.user_id;• BEGIN• SELECT encrypted_user_password• INTO user_key• from fnd_user• where user_name = unilink_user;• EXCEPTION WHEN OTHERS THEN• user_key := '';• END;• apex_launcher_profile := FND_PROFILE.value('LAUNCH_APEX');• if apex_launcher_profile IS NULL Then• htp.p ('Please contact System Administrator. ');• htp.p ('Profile - LAUNCH_APEX is null') ;• return;• end if;
• unilink_url := apex_launcher_profile||'/pls/htmldb/f?p=114:111:::NO::P101_USERNAME,P101_PASSWORD,P101_FILE_NUMBER,P101_USER_ID:unilink,unilink,,'||FND_GLOBAL.user_id;
• -- FND_GLOBAL.user_name gives the login user name for the ESB system • -- in order to pass the valid Apex Unilink user_name a constant value is used.• OWA_UTIL.mime_header('text/html', false);• OWA_COOKIE.send• (name=>'APEX_APPS_'||application,• value=> unilink_user||':'||'unilink', • path=>'/',• domain=>'.waikato.ac.nz' );• OWA_UTIL.http_header_close; • • htp.p(' • <script LANGUAGE="JavaScript"><!--• history.go(-1);• • var v_win;• v_win = window.open("'||unilink_url|| '",' ||• '"",' ||• '",width=800,height=600,scrollbars,resizable");• v_win.moveTo ((screen.width/2) - ' || (800 / 2) || ', (screen.height/2) - ' || (600 / 2) || ');• v_win.focus();• //--></script>• ');• • exception when others then• htp.p(SQLERRM);• END;
Set up Page 111 in Apex, this is used by the launcher on Oracle Financials:
Create a blank page in APEX application that needs to be integrated with Oracle EBS, e.g. P111.
Edit page attribute and set the Security - Authentication to ‘Page is Public’. Create a branch in this page, as follows:
Branch Type Branch to Page Accept Processing (not common)Branch Point On Load: Before HeaderAction – Page 101 (This is my login page id)Unconditional Branch
• APEX 101 page - before header process
• DECLARE• c OWA_COOKIE.cookie;• a wwv_flow_global.vc_arr2;• BEGIN• c := OWA_COOKIE.get('APEX_APPS_'||:APP_ID);• a := htmldb_util.string_to_table(c.vals(1));• :P101_USERNAME := a(1);• :P101_PASSWORD := a(2);
• IF :P101_PASSWORD IS NOT NULL THEN• wwv_flow_custom_auth_std.login(• P_UNAME => :P101_USERNAME,• P_PASSWORD => :P101_PASSWORD,• P_SESSION_ID => v('APP_SESSION'),• P_FLOW_PAGE => :APP_ID||':1'• );• END IF;• EXCEPTION WHEN OTHERS THEN • :P101_USERNAME := 'Unilink';• END;
Add a process in the 101 Page.
Demonstration Or how it works in practice Clicking on the APEX Unilink menu item will open the required application in APEX
APEX Research Application
Questions?
The Earth has at least two moons, the latest is a 3-miles-wide (5-km) satellite.
It takes 770 years to complete a horseshoe-shaped orbit around the Earth.
The moon is called Cruithne and will remain in a suspended state around Earth for at least 5,000 years.
How many moons does the Earth have?
Configuring Oracle Financials to link to a page within an Application Express application
Prerequisites Set the responsibility to “Project Implementation Superuser”
Step 1: Open a project from the Projects menu option
Step 2: Access the Help>Diagnostics>Custom Code>Personalize menu option.
Step 3: Update the PA_PAXPREPR_PROJECT function
Add a line for the Trigger event – Initialize Unilink Menu and Global Variables
Set the Trigger Event to WHEN_NEW_FORM_INSTANCEAdd the responsibilities that you want to access the link
Step 4: Set the function actions
Add line for the Type ‘Menu’Enter the Menu Label as ‘APEX UNILINK’
Step 5: Create a line for Call APEX UNILINK in the PA_PAXPREPR_PROJECT
Set the conditions for the “Call APEX Unilink” functionSet the Trigger Event to SPECIAL9Add the responsibilities
Set the Type to “BUILTIN”Set Builtin Type to Launch a URL
Step 6: Set the Action argument
Argument ='http://<apexservername>/pls/htmldb/f?p=114:111:::NO::P101_USERNAME,P101_PASSWORD,P101_FILE_NUMBER,P101_USER_ID:unilink,unilink,'||:PROJECT_FOLDER.SEGMENT1_MIR||','||FND_GLOBAL.user_id
Note: Include the = sign in the argument since we are passing the segment1 value through the url.
The above oracle EBS form personalization is done by using the example given in the following link
http://www.scribd.com/doc/46650/Examples-of-Oracle-EBS-Form-Personalization
Practical Application Or how it works in practice Clicking on the APEX UNILINK menu option will open the required application page
in APEX for the project linked to Oracle Projects.
APEX Project Page
References & Credits
“Oracle Applications Express The Fast Way to Extend Oracle Applications 11i By Rod West, Cabot Consulting”
“ORACLE EBS 11I, VERSION 11.5.10 « FORM PERSONALIZATION » Auteur : Joël Asselin Date de création : Octobre 20, 2006 “
Questions?