Sie sind auf Seite 1von 34

Oracle Financials – APEX

Presented by : Ian Drever


Chitra Kanakaraj
The University of Waikato
Presentation 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 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
Step 1: Create a profile for launching Application Express

 Create the Profile under the Application Developer


Responsibility
 Name – “Oracle Application Express Launcher”
Step 2: Set the site for the for the profile created in Step 1.

Responsibility – System Administrator


Menu 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 Administrator


Menu Option: Application ->Function
Create Function: APEX_LAUNCH
User 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 function
Set the Type column to“Package”
Step 6: Create a menu entry for APEX.

Menu Option: Application->Menu


Add 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 url
o 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/p
df/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,un
ilink,,'||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 Header
Action – Page 101 (This is my login page id)
Unconditional Branch
Add a process in the 101 Page.

• 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;
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?
How many moons does the Earth have?

 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.
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_INSTANCE
Add 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” function


Set the Trigger Event to SPECIAL9
Add the responsibilities
Step 6: Set the Action argument

Set the Type to “BUILTIN”


Set Builtin Type to Launch a URL
 Argument
='http://<apexservername>/pls/htmldb/f?p=114:111:::NO::P101_USERNAM
E,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?

Das könnte Ihnen auch gefallen