

In previous articles I have talked about OAF page personalizations to add buttons, links, etc. When we need to add a link on the OAF page containers/regions we need to follow the personalization process. If we need to add links on the top right corner of the OAF page, i.e. along with Home and Logout links then it will not be possible using personalization as these links are generated from the menu attached to the responsibility.
I have given a small step by step guide on adding links on the top level menu. In this example we have already added a Link named, Contact Us, and Duty Travel Policy.
The links show up on the top right of the page. Click on Contact Us link.
A new mail window opens with the mail id so that the user can directly send the email with their questions or remarks to the Expense helpdesk team.
If we click on Duty Travel Policy link it will open the PDF document for Duty Travel policies
This cannot be done using OAF personalization as there is no Personalize link for this region.
Notice that Personalize link exists from Expenses Home region onwards below. The links are part of the responsibility menu.
Let us check the responsibility in Oracle to get the menu name.
Responsibility: System Administrator
Navigation: Security > Responsibility > Define
Query for responsibility, EY iExpenses End User Cash Expenses.
We get the menu name, EY_IEXP_ENDUSER.
Open the Menu form.
Responsibility: System Administrator
Navigation: Application > Menu
Query for EY_IEXP_ENDUSER.
From the menu the links or the functions are not visible. Therefore the links must be in the Submenu. Click on View Tree button to view the menu.
Expand the menu
On expanding the menu we find the sub menus which contain the links. You can now see that the links, Contact Us and Duty Travel Policy. These are functions attached to a sub menu. Click on the sub menu to view the name.
The name of the menu is OIE_EXPENSES_GLOBAL. Query for this menu on the Menu form.
It is now evident that the links are actually form functions. We shall now query for the functions, Contact Us and View Policy Guidelines.
Function: Contact us
Now we shall check the setup done for the form function for “Contact Us“. On the same Form Function form we shall query for the following,
Description tab
Function: OIE_CONTACT_US
User Function Name: Contact Us
Description: Contact Us
Properties tab
Type: SSWA plsql function that opens a new window (Kiosk Mode)
Maintenance Mode Support: None
Context Dependence: Responsibility
Form tab
No Data to be given as this function relates to OAF pages only
Web HTML tab
HTML Call: mailto:iExpenseHelpdesk@etihad.ae
Web Host tab
Icon: email_grayscale.gif
Function: View Policy Guidelines
Now let us check the function setup for View Policy Guidelines.
Description tab
Function: OIE_POL_VIEW_GUIDELINES
User Function Name: View Policy Guidelines
Properties tab
Type: SSWA plsql function
Maintenance Mode Support: None
Context Dependence: Responsibility
Form tab
No Data to be given as this function relates to OAF pages only
Web HTML tab
HTML Call: oiepolicy.htm
Note: The form function, View Policy Guidelines, opens a PDF file in the web browser, yet in the function HTML call it is referring to a HTML file, oiepolicy.htm. By calling the HTML file instead of the PDF we can use HTML features on the PDF file, like modify the size of the FRAME within which the PDF file is displayed. If we need to change the size of the frame instead of the default full screen mode, the HTML Call will need to be oiepolicy.htm?menu=N.
Web Host tab
Icon: global_corppoli_greyscale.gif
Now let us login to Unix and go to $OA_HTML directory. Then we shall open the file, oiepolicy.htm.
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”>
<HTML>
<FRAMESET ROWS=”*,0″ >
<FRAME SRC=”Busines_Travel_Policy_Updated.pdf” NAME=”">
</FRAMESET>
</HTML>
Now we see that the oiepolicy.htm file opens the pdf file named, Busines_Travel_Policy_Updated.pdf, once it is called.
Addendum
Using frames in HTML
The HTML is changed to display the document in a smaller frame. The new HTML becomes,
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
<html>
<title>Duty Travel Policy</title>
<body bgcolor=”#FFFFFF” text=”#000000″>
</body>
</html>
All setup of the form function, View Policy Guidelines, remains the same, except for Web HTML tab.
HTML Call: oiepolicy.htm?menu=N
Save the function and refresh cache or bounce Apache. Check the Duty Travel Policy link on iExpense page.
Now the file is restricted into the frame instead of a full page view.
Note: As an alternate to get all HTML options to work, change the call in the HTML, from src=”Busines_Travel_Policy_Updated.pdf” to src=”http://server:port/OA_HTML/ Busines_Travel_Policy_Updated.pdf”
We can directly access the pdf file instead of accessing the file via the HTML by modifying the HTML as shown below. The file will be displayed in full screen on the web browser.
If we modify the html to display 2 pdf files in 2 frames then the html (oiepolicy.htm) will look like the following,
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=ISO-8859-1″>
<title>Untitled Page</title>
<meta name=”GENERATOR” content=”Created by BlueVoda”>
</head>
<body bgcolor=”#FFFFFF” text=”#000000″>
</body>
</html>
Within the HTML file we are creating 2 frames and are opening 2 pdf files named,
Both files are located on $OA_HTML directory
The output will look like the following,
Linking to media files
We want to add a link on this menu so that on clicking on this link the user will get to see a training video.
As we have discussed above, we shall create a link named Manual to link to the video. The video file name is, AP_Quick_Payment.wmv.
Create a form function on the Form Functions form.
Description tab
Properties tab
Web HTML tab
Here are directly calling the file from the form function.
Save and close the form.
Attach the form function to the menu.
Test the changes
Log in to the Oracle iExpenses page.
Note that a new link has been added named, Manual. Click on this link.
The video starts playing on the default media player.
Cheers!
We have a requirement to add a region on a seeded OAF page. Within this region we would like to display certain projects data for the logged in user.
The requirement:
Log into Oracle
We would like to add a region under the Favourites section. This region will be generated from another OAF page XML.
We shall personalize the web page to include this OA page. The steps are given below
Step 1: Develop the OA page XML and deploy it
The OA page we have developed for this requirement is named, XxchProjectsDBRN.xml. This file has to be deployed under $JAVA_TOP directory, in its own directory structure. We have created a directory structure, $JAVA_TOP/oracle/apps/fnd/framework/navigate/webui/.
Check the file on the server
$ cd $JAVA_TOP
$ ls –ltr ./xxch/oracle/apps/xxcust/projects/webui/XxchProjectsDBRN.xml
Now we are sure that the XML file exists at this location.
Step 2: Go to the Oracle home page
Log in to Oracle and go to the home page
Click on Personalize Page link on the top right hand corner.
Step 3: Personalize the page
After clicking on the link Personalize Page opens
Click on Complete View radio button and the page changes
Scroll down
Step 4: Add an Item on the OA page
Identify the row named as, Cell Format: (favoritesRightCell).
Click on the Create Item ()button for this row. The Create Item page opens.
Now select the following,
Level: Site
Item Style: Stack Layout
Now enter the following fields,
ID: DBRN
Extends: /xxch/oracle/apps/xxcust/projects/webui/XxchProjectsDBRN
Note:
We are giving the location and the name of the XML file of the OA page as we have seen in Step 1.
Click on Apply and you will come back to the Personalize Page. Scroll down the page. Look at the Personalization Structure section.
Expand the row for favouritesRightCell
Now a new section has been added into this cell, named DBRN. Now scroll down to the bottom of the page.
Click on Return to Application link and you will be taken back to the Oracle home page.
Step 5: Review the personalization
Once you are back to the home page, i.e. the page which you have personalized, the personalization will kick into effect. Therefore we can view the personalization we have done.
Once we come back to the home page we see the following
We do not see the new section underneath the Favourites links. This is because the new OA page is user specific and it will only be visible if it has any records to display for this user.
Since the OA page that we included on the Oracle home page is user dependent, let us login to Oracle as a different user.
After logging in as a different user we get to see the OA page we have included.
Using this method we can add an XML file pertaining to an OA page.
Cheers!
The following query will provide the dump of all form personalizations in Oracle.
SELECT ffcr.function_name, ffcr.form_name, ffcr.SEQUENCE "P Seq", ffcr.enabled "Rule Enabled?", ffcr.fire_in_enter_query, ffcr.rule_type, ffcr.description "Rule Description", ffcr.trigger_event, ffcr.condition, ffca.SEQUENCE "Action sequence", DECODE (ffca.action_type, 'P', 'Property', 'M', 'Message', 'S', 'Menu', 'B', 'Builtin' ) "Action Type", ffca.summary " Action Desc", ffca.enabled "Action Enabled?", ffca.object_type, ffca.target_object, ffca.property_value, DECODE (ffca.MESSAGE_TYPE, 'W', 'Warn', 'H', 'Hint', 'E', 'Error', 'D', 'Debug', 'S', 'Show', NULL ) "Message Type", decode(ffca.builtin_type, 'G', 'Go Item', 'C', 'Launch SRS Form', 'E', 'Launch a Function', 'U', 'Launch a URL', 'D', 'Do Key', 'P', 'Execute a Procedure', 'B', 'GO_BLOCK', 'F', 'FORMS_DDL', 'R', 'RAISE_FORM_TRIGGER_FAILURE', 'T', 'EXECUTE_TRIGGER', 'S', 'SYNCHRONIZE', 'L', 'Call Custom Library', 'Q', 'Create Record Group from Query', 'X', 'Set Profile Value in Cache', NULL) "Builtin Type", ffca.builtin_arguments, ffca.property_name, ffca.menu_entry, ffca.menu_label, ffca.menu_seperator, ffca.menu_enabled_in, ffca.menu_argument_long, ffca.menu_argument_short FROM fnd_form_custom_rules ffcr, fnd_form_custom_actions ffca WHERE ffcr.ID = ffca.rule_id
Cheers!
We can turn off all personalizations on OAF pages by setting a profile option. Here is an example.
Seeded Supplier creation OAF page
Personalize the page
The personalization is to make the field, Supplier Type, read-only.
Now we shall switch off all personalizations on OAF pages
Responsibility: System Administrator
Navigation: Profile > System
Search for profile option, Disable Self-Service Personal.
This profile option only takes in value at the site level. The default value is set to No. Once the value is set to Yes all OAF personalizations will be reverted. Set the value of this personalization to Yes.
Save and close the form.
Now go back to the Supplier creation OAF page
Notice that a warning message, Personalization is currently disabled. Your application might not work as expected, is displayed. Also note that the personalization on Supplier Type is not working. If we set the profile option, Disable Self-Service Personal, to No the personalization will again start taking effect.
Cheers!