You are on page 1of 56

Collaborate 13 OAUG Forum

Record History and other Personalizations in R12 Oracle Applications


Framework (OAF) Forms

Chris Tyner
AXIA Consulting

Carole Landgrebe
Intelligrated

Subhash Vallurupalli
AXIA Consulting

Table of Contents
Executive Summary ....................................................................................................................................... 2
Previous Functionality................................................................................................................................... 3
The R12 Record History feature ................................................................................................................ 5
R12 OAF - Base Tables About This Page ............................................................................................... 13
Do It Yourself Record History - OAF Personalization .................................................................................. 21
Do It Yourself Record History - OAF Extension ........................................................................................... 30
Metalink Notes and User Guides of interest .............................................................................................. 55
Conclusion ................................................................................................................................................... 56



Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 2
Executive Summary
The release of Oracle e-Business Suite R12 has brought with it several substantial changes to the user interface and
experience. One important system feature of all previous releases has been the capability to track the Record
History in the applications. This utility lets users see several useful pieces of information in the application. One
is the creation and update history of the data record being viewed. Another feature is the forms base table or
view. This can be helpful to system analysts that are tracking down the data model behind the application
presentation.
Now in R12, several modules and selected forms are migrating to the new Oracle Application Framework (OAF)
forms or pages. These pages provide a new user interface, and they also have other differences in the standard
user interface. This paper will focus on the removal of the Record History capabilities on the out-of-the-box OAF
pages, and what can be done to reclaim some of this lost functionality.
This paper will be targeted to the typical business analyst role, and will touch on topics that are both functional
and technical in nature. We will cover the use of OAF page personalization techniques, and investigate the use of
debugging features. The personalization capabilities can be used to manually configure record history fields on
selected OAF pages. Finally, a discussion of possible application extensions through the use of custom
development will be included.

Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 3
Previous Functionality
This paper will begin with a quick refresher of the Record History utility in the Oracle EBS professional forms
interface. On nearly every form block, a user simply has to have their cursor in the target data, and then from the
command menu, select Help, Record History.
The Record History capabilities have been present in the applications since Release 9, and have evolved to a useful
utility in the Release 11i version of the e-Business Suite. From many of the Professional forms that display a data
record (not find windows, for example), a user can click on Help in the command menu bar, and then select
Record History.
The resulting pop-up window will provide two general areas of information. The user audit information from the
database table is presented, including the
Created By (user name from FND_USER table)
Creation Date
Last Updated By (user name from FND_USER table)
Last Update Date
These fields are also known by developers as the WHO columns, as they are a standard on nearly every Oracle
application database table.
The second piece of useful information is the Table Name value for the primary table that stores the data on this
form. This is sometimes a Database Table, and can also be a View.
An example is shown here on the Transaction Batches Summary form from the Receivables module.

Even as a particular batch is opened and a single record window is displayed, the record history function can still
be used:
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 4

This utility did not function on certain very complex forms, where multiple blocks displayed data from a variety of
tables. In this case, a user might be presented with a message the Record History is not available. Here is the
Indented Bill of Material Form, where the line level information (Item Details tab) does not support this function:



Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 5
The R12 Record History feature
The OAF pages used in R12 are very different in look and feel from the forms that many of us became familiar with
in releases 10SC through 11i. There is no more command bar of options like File, Tools, etc. The Help link on the
top of OAF pages is strictly to present User procedure and navigation help.
The capability to enable Record History on R12 OAF pages was delivered with the 12.0.6 update, inside the ATG
patch. The details on this patch and the description of the feature can be seen in the Appendix of this whitepaper.
In short, the Record History capability must be turned on in the OAF pages through the use of Personalizations.
The application of the patch will lead to no noticeable changes. The capability is enabled, but the systems analyst
must still set up the desired regions and pages with the Record History property.
The following steps are needed to turn on the record history capabilities through the OAF personalization.
Set Profile Options
The following profiles should be set to Yes at the Site level
FND: Record History Enabled
The following profiles should be set to Yes at the User level, so that this person can open up the desired pages
and define the proper Personalizations
Personalize Self-Service Defn
FND: Personalization Region Link Enabled
There is an additional profile that can be used to turn off the personalizations encountered in OAF pages.
This can be useful to set to Yes on a business analyst who wants to debug their personalizations by looking
back at the original OAF pages without any personalizations.
Disable Self-Service Personal
Create Personalization
Once the Profiles are set, the desired OAF page must have the Record History property enabled. Right off the bat,
there are some catches here that one should be aware since they may frustrate the user.
1. The Record History property is only available on the Header, basic Table, and Advanced Table components
of OAF pages. So as you look through the tree of OAF page components under the Personalization links,
you will need to see this type. Other components will have a list of properties under their Personalize
Pencil icon, but Enable Record History will not be one of them.
2. The entire OAF page itself must be updated by Oracle Product Development to utilize this personalization
property. In Oracle speak, this feature requires changes to the existing pages and involves uptake by the
product. So even though the new property can be set on all the OAF pages, it may not actually do
anything!
Proceeding with the steps to set a personalization property, a business analyst would open an OAF page, and they
would be presented with a series of Personalize links within the page layout. The links provide the names of
components, regions, etc. within the OAF page. They can select one of these links throughout the page to set up
specifically where they wish to embed the Personalization. Alternatively, there is a link at the top of the page
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 6
called Personalize This Page that will present all regions and components in one place, and the selection of what
to personalize can be made from a complete list.
The Personalization properties can be set at the Site, Organization, Responsibility levels. This is good to know in
case this Record History feature or any other personalization is needed only for a certain segment of the user
population. If your intention is to enable Record History for all users, set the property at the Site level.
The first demonstration will be on one of the OAF pages in the new EB Tax module. This is one of the modules that
Oracle support will tell you is ready to personalize for the Record History property.
We have queried up a list of Tax Regimes from the Tax Configuration tab in the Administration of the EB Tax
module. Note that with the Personalize profiles set, there are additional links displayed on the page. In the
current page structure, there is a Search region at the top where parameters can be entered, and then a list of
records is displayed in a table. We will try to enable the Record History in the resulting Tax Regime records
returned by the Search.
First the result of a search on Tax Regimes:

On the OAF page that is presented, click the newly displayed link called Personalize Tax Regimes. The
Personalization structure will appear in the next page.
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 7

Make a note of the Document Name on this page, since this is the key to managing the place where all of the
Personalizations have been made in your system. In case of a severe mistake that disrupts the original page, you
can use this Document name to remove your personalization with the Functional Administrator responsibility.
This will be covered later. For this example, the document name is
/oracle/apps/zx/taxcontent/regime/webui/ZxRegimesSrchPG.
The first line in the Personalization Structure region for Table: Tax Regimes will allow us to set the desired
personalization setting. Click the Pencil icon to open the properties page (shown below).

So in this case, we want to change the Site level setting for Record History Enabled to true.
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 8

Click the Apply button, and you are taken back to the Personalization Structure page.

At the bottom of this page, click the Return to Application link.
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 9

This will then display the resulting Tax Regime page with the new icon to display Record History for each result in
the table:

Note the new column to the right with the new icon:
So when you choose to click the icon, the following pop-up window will be displayed:

Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 10
Note that the resulting pop-up window for record History still has a major flaw in that the User ID is displayed now
(-1), and not the User Name from the FND_USER table (ANONYMOUS). Since end users usually dont know the ID
numbers from FND_USER, this is another one of those issues that some might consider a bug, but Oracle has
declared an Enhancement. The problem of User ID displaying has been registered with Oracle Support. See the
Appendix of this whitepaper for the information on this Oracle Enhancement Request, to display the User name
instead of the ID.
As a service to you, we have also included an example of an attempt to add Record History properties to an OAF
page that has not been updated to handle this feature. In this case, we will try to add a Record History capability
to the new R12 Suppliers page.
We have opened up a supplier record, in the Company Profile view, with my Personalization profiles enabled.

We would like to try to add the Record History capabilities to the supplier information region at the top of the
page, so we click the Personalize Page link for the Personalize Table Layout: (SuppDetailsRN).
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 11

At this point, click on the Personalize (pencil) icon, and displays the properties that can be set. Do this for the
Header: Additional Information, so that the Record History icon displays by the Descriptive Flexfields that have
been defined for this page.

Set the Record History Enabled property to True at the Site level, and click the Apply button. Once back at the
Personalization page, click the Return to Application link at the bottom of the page.

Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 12
This presents the new Record History icon like this:
Look for it just at the top of the Additional Information region of the page.

Unfortunately, when we click this new Record History icon, we are presented with the following pop-up window:

This message is typical of the OAF products that have not uptaken the Record History capabilities. Other pages
that are not ready for Record History can also display a blank pop-up window when configured. For example, we
have tried to enable Record History in the Customers page, and we receive a blank list of fields, rather than the
error message.
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 13

Either way, these OAF pages will not display any of the WHO columns without the delivery of Oracle Enhancement
Requests, or some further alternative Personalizations. These alternative approaches will be discussed later in the
whitepaper. Before this is covered, however, it will help to cover the OAF advanced personalization features
included in the OAF About This Page capabilities. These features will provide a way for business analysts to learn
about the base tables and views used to construct the OAF pages.
So which Oracle products will allow the correct use of the Enable Record History? To date, we have compiled
the list below. Please note that even if a single functional area has pages that support the R12 Record History,
there may be cases where certain Items on pages do not function properly. For example in the Payments module,
the Payment Process Request table will work with Record History, but the table under the Payments tab will give
an error.
Module/Functional Area Comments
EB Tax Works in certain page items
Payments Works in certain page items, such as Payment Process Requests
Customers Does not work, see Enhancement Request information at the end
of this whitepaper
Suppliers Does not work, see Enhancement Request information at the end
of this whitepaper
Project Management Does not work
Employee Self-Service (HR) Does not work, pop up is blank
Bank Accounts (Cash
Management)
Does not work, pop up is blank

A list similar to this was requested in a SR with Oracle Support and we were told it did not exist.

R12 OAF - Base Tables About This Page
One concept from the Record History capabilities is the identification of the base table or view for the form. This
feature can be useful to business analysts that are trying to learn the source of data for a form, or assist with
building a SQL database query to investigate data issues. There are some techniques that can be applied against
the OAF pages in R12, to varying degrees of success.
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 14
The most likely approach to deliver useful information on the underlying data model for OAF pages is to again use
the Personalization framework to view the queries that are used by the page. The OAF pages organize the data
presented to the user through View Objects. The View Object can be thought of as the base table or view for the
particular section of the page that you are interested in. The specifics of each View Object can usually be accessed
by users through a special link at the bottom of the OAF page called About This Page.
As an example, the Customer Account information in R12 can be inspected for the Table/View information that is
contained in the View Objects. In order to proceed with the About this Page link, the user has the Personalize
Self-Service Defn profile set to Yes. Alternatively, the user could also have the FND: Diagnostics profile set to
Yes. This second option would not display the Personalize links throughout the page.
In this case, we have queried for a customer, opened the Customer Account page, and it will look like this:

On this page, there is a link at the bottom of the page called About this Page.

Upon clicking this link, a new page will display that allows you to learn about what goes into the Customer Account
page.
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 15

In our case, we simply want to learn about the tables and views behind the page. The Page tab along the top
row is useful, as it has several content areas, including Page Definition, and Flexfield References.
Within the Page Definition section, there is a collapsed list of page Focus areas. By clicking the Expand All link,
the various components of the Customer Account page are shown.

Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 16
One of the columns in this section is labeled View Object, where the corresponding section of the Customer page
in the Focus Name will have a View Object name. These View Objects are the key to finding the tables and views
that provide the data for the page.
In some lines, there is a hyperlinked View Object Name. In this case, one can click on the link and be taken to the
detail about the View Object, as shown below. The View Object ArCustInfoVO1 is selected, to see the
information for the top-most portion of the page. This is seen in the About View Objects page.

In other cases, the View Object name is not hyperlinked. The good news is that as long as you make note of the
View Object name, you should be able to still look at the details. The next View Object down in our Customer Page
is called HzPuiCrUpCustActVO and contains the data fields that can be updated on the main Customer Account
entity. If we had just stayed on the About View Objects page shown above, there is a drop down box that will
contain all of the View Object names, whether they were hyperlinked or not in the original list for the Page
Definition. So a user can find the value HzPuiCrUpCustActVO in the drop down list, and then click the Get Details
button. Then they are presented with:

Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 17
So here there are actually only 2 base tables in use, HZ_CUST_ACCOUNTS and HZ_CUSTOMER_PROFILES.
An alternative way to quickly access all of the View Objects in a page would be to select an expandable Business
Component References Details to show the list of View Objects. In this list, all of the View Object names are
initially supported with hyperlinks:

One still might find it more helpful to use the Expand All feature for the Page Definition to visualize the pieces of
the OAF page that we are working with. Then once can move down a list that mimics the structure of the page,
and find the View Object that you are looking for.
Other Capabilities of About This Page
As an aside, there are several very helpful debugging tools that can be found under the About This Page link on
the OAF pages. Another section of the Page tab is down below, and it presents information about the
Descriptive Flexfield setups on the particular page.
The Flexfield References section provides a quick glance into the DFF definitions in the page. This saves a trip from
having to switch over to the Professional Forms Descriptive Flexfield Segments definition form. We can quickly see
that there are two segments (Attribute1 and 2) on the Customer Account Level, and that there is the DFF context is
not displayed.
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 18

Additional Debugging in Oracle PIM
There is another interesting debugging feature in the Product Information Management (PIM) module that can
provide similar information about the underlying SQL used on the OAF pages. This is included in Metalink Note
463444.1.
The feature is called EGO_DEBUG and acts to display the technical components of the PIM pages. In short, when
a certain pages are displayed in a users browser window, the URL definition can have a portion substituted with
the EGO_DEBUG command and the pages SQL and bind variables will display.
Here are the instructions:
In lieu of a trace, the following technique may be used to determine the queries and bind values being executed on
a page. Copy the URL of the currently viewed PIM HTML page, paste into a new browser window and make one of
the following changes. Note that not all HTML pages in PIM support this technique.
If the URL contains the OAFunc parameter, replace the value after the equal sign up to the next
ampersand (&) with the function name EGO_DEBUG. For example, if the URL is:
http://celalnx33.us.oracle.com:10503/OA_HTML/OA.jsp?OAFunc=EGO_IT
EM_OVERVIEW&addBreadCrumb=N&inventoryItemId=203884&organizationId
=204&revisionId=227163&menu=Y&_ti=1654370156&oapc=82&oas=PHxkN1Kf
IvYQV1Whh90J6g..
Change so it reads
http://celalnx33.us.oracle.com:10503/OA_HTML/OA.jsp?OAFunc=EGO_DE
BUG&addBreadCrumb=N&inventoryItemId=203884&organizationId=204&rev
isionId=227163&menu=Y&_ti=1654370156&oapc=82&oas=PHxkN1KfIvYQV1Wh
h90J6g..

Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 19
If the URL does not contain the OAFunc parameter, replace the page parameter in its entirety
(page=value) with OAFunc=EGO_DEBUG. For example, if the URL is:
http://celalnx33.us.oracle.com:10503/OA_HTML/OA.jsp?page=/oracle/
apps/ego/item/eu/webui/EGOITEMDETAILPGL&_ri=431&addBreadCrumb=RP&
OAHP=EGO_USER_WORKBENCH_HOMEPAGE&OASF=EGO_ITEM_OVERVIEW&_ti=16543
70156&oapc=89&OAMC=1010470_37_0&menu=Y&oaMenuLevel=1&oas=LfPm6xBc
pgpd4hjWlqtAOA..
change so it reads:
http://celalnx33.us.oracle.com:10503/OA_HTML/OA.jsp?OAFunc=EGO_DE
BUG&_ri=431&addBreadCrumb=RP&OAHP=EGO_USER_WORKBENCH_HOMEPAGE&OAS
F=EGO_ITEM_OVERVIEW&_ti=1654370156&oapc=89&OAMC=1010470_37_0&menu
=Y&oaMenuLevel=1&oas=LfPm6xBcpgpd4hjWlqtAOA..

An example of the original PIM page:

The original URL
http://intevip.coresys.com:41804/OA_HTML/OA.jsp?page=/oracle/apps/ego/item/eu
/webui/EGOITEMSEARCHRESULTSPGL&_ri=431&OAHP=EGO_USER_ITEM_SEARCH_HOMEPAGE&OAS
F=EGO_SEARCH_ITEM&_ti=547462674&retainAM=Y&addBreadCrumb=RP&oapc=8&oas=3ELNQM
vBFuVfSKu6e1auhg..
has the EGO Debug replacement made:
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 20
http://intevip.coresys.com:41804/OA_HTML/OA.jsp?OAFunc=EGO_DEBUG&_ri=431&OAHP
=EGO_USER_ITEM_SEARCH_HOMEPAGE&OASF=EGO_SEARCH_ITEM&_ti=547462674&retainAM=Y&
addBreadCrumb=RP&oapc=8&oas=3ELNQMvBFuVfSKu6e1auhg..
The resulting information page looks like this:



Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 21
Do It Yourself Record History - OAF Personalization
As promised, we will cover a few different ways to develop the Record History capabilities through OAF
Personalizations. All of these methods will require a good understanding of the OAF page structures, and the
techniques for using the Personalization capabilities. The topics covered in the previous sections of this
whitepaper will all be used as building blocks for these alternative approaches.
The first approach will be to enable the WHO columns as additional data fields that are visible at all times on the
OAF pages. We will process an example of setting up the Record History data on the R12 Customers page, at the
Customer Account level.
As shown above in the About This Page description, the definition of the View Objects is visible to us. In most of
the important View Objects such as in the Customer pages, there are plenty of extra fields included as View
Attributes (extra data fields) that can be displayed onto the OAF pages. In fact, most of these View Objects will
include all of the key WHO fields. These fields are:
Created By
Creation Date
Last Updated By
Last Update Date
We will walk through a case where the business users wanted to display these columns on the R12 customer page
that shows the general information about the Customer Accounts.
First we start from the initial Customer Search page. All required profiles are enabled for the definition of
Personalizations.

We will first search on a customer, to reach the Customer Account region.
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 22

Clicking on the Details icon in the Accounts region will take us to the page that we want to personalize.

You will notice that we have tried to use the Enable Record History property in the Account region of this page.
As discussed earlier, clicking this icon will just give an empty pop-up window.
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 23

We will find the supporting View Object for the Account region by using the About This Page link at the bottom
of the page. This takes us to an About Page.

We chose to navigate to the Expand All link under the Page Definition, and then found the listed Create
Account View Object. The name of the object is HzPuiCrUpCustActVO. After finding this name in the View
Object definition page, we were presented with the following detail about the View Object.
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 24

All of the WHO columns are listed here in the SQL statement. Unfortunately, we will just have the USER_ID values
from FND_USER stored in the Created By and Last Updated By attributes. In any case, I returned to the Application
page, and then clicked the link for the Personalize Create Account, the region that I wanted to add my new fields
to. I made a note of my Document name. In this case it is
/oracle/apps/ar/hz/components/account/customer/webui/HzPuiActCreateUpdateRN.

Under the Message Component Layout: Account Fields Re.. structure name, there is an Icon displayed to Create
Item. The goal is to create new text field items to display the WHO columns. This is easy enough to do if the
fields (View Attributes) are already present in the base table/view (View Object).
Upon clicking the Create Item icon, we see a page that lets a person set up the new field:
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 25

In this case, we are going to use the following key values:
Level = Site
Item Style = Message Text Input (Note that we could not use the Message Styled Text type here because
this region was intended for the update of data. Using that style caused and error and the customized
page would not display.) Once this Style is selected, the list of properties will change because this type of
component requires different settings than the default type of Attachment Link.
ID = Creation_Date_Value (This is a unique name that you can make up, must contain no spaces)
Data Type = DATETIME (We wanted to see the date and time stamp)
Prompt = Creation Date (label for this field on the page)
Read Only = true
Rendered = true (this should be the default, this causes it to be visible on the page)
View Attribute = CreationDate (Name from the Attribute list on the View Object description page)
View Object = HzPuiCrUpCustActVO (the exact name of the view Object)
Once this is saved, click the Apply button and the definition will be complete.
You will see the newly defined item in the Personalization Structure.
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 26

Clicking the Return to Application link will allow you to see the results.

In order to make any modifications to the new item, you can return to the Personalization page, and on the line for
the new item, click the Update Item pencil icon. You cannot change the Item Style, ID or Personalization Level,
however. If you want to remove the item, simply click the Delete Item trash can icon. You will be given a
warning message, and then click the Yes response to remove.
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 27
We can then quickly move through and add the 3 other WHO column fields to the Account region. Change the
ID value and Prompt properties on each one as needed. Note that on the Created By and Last Updated By,
the Data Type can be set to Varchar2.
The final version of the Customer Account region now looks like this.

And if a regular user logs in, without the Personalization Profiles set ON, then the Customer Account page looks
like this.

If you want to re-arrange the order of the fields on the Account region, you can return to the Personalization page.
On the same line of the structure where you clicked the Create Item icon, instead choose the Reorder icon,
and you can move the fields around on the page with this set of lists.
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 28

We promised to cover what to do when a standard page appears to be ruined by the definition of a personalization
such as a new Item. When we created our initial New Item in the Account region as a Message Styled Text, it
was causing an error message to display, and we could not view the Customer page. In this case, we grab the
Document name of the page we are modifying, and switch over to the Functional Administrator responsibility.
The selection of Functional Administrator responsibility will cause its main Applications Administration page to
open. The page show below can be reached under the Personalization tab.

Given our page has a document name of
/oracle/apps/ar/hz/components/account/customer/webui/HzPuiActCreateUpdateRN , we plug this into the
Document Path field, and click the Go button.
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 29

The Personalized field displays a Yes. Click the Manage Personalizations icon to receive the following options:

All of the Personalizations we made to the Account Region were at the Site level. If there were some defined at
another level, these would be represented by another line. In our case, if we wanted to start over with our
Personalizations, we could click the Select check box, and then click the Delete Personalizations button.
Alternatively, you can choose to Deactivate these personalizations, and then return to this page to re-Activate
them once they are corrected.


Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 30
Do It Yourself Record History - OAF Extension
Additional methods can be employed to establish an enhanced Record History capability by using custom
development techniques. This section will cover the concept of creating the extensions to the components in
the OAF pages. This involves developing additional functionality for the page, and placing this new custom code in
an appropriate Custom directory to allow for this custom functionality at the OAF page run time.
The advantage of this approach is that you can design and implement a completely functional record history
feature in any OAF page that you want. The information can include the date, time, and even the user name from
the pages WHO columns.
There are two major disadvantages, however, to this approach. First is that this would be custom code, and it
would require a set of developer skills to complete. Each page that you want to develop a solution for will need its
own separate design and solution. The second issue is that any custom extension must be frequently tested
during patches and upgrades, would have to be migrated between instances, and might need to be re-
implemented if the code is overwritten.
Since the intent of this paper was to discuss only record history solutions for those with business analyst skills, we
will only briefly highlight some of the steps that would be used by a developer.
Option 1: Create a new custom View Object
This paper has already covered the concept of the View Object that exists as the base SQL statement on the OAF
pages. These statements usually contain the WHO columns of the main database table, and we have explained
how to make this data display on a page with Personalizations.
An advanced development technique would be to implement a new custom View Object in a place where you
want a complete Record History to display. In the page you are concerned with, a new View Object would be
developed that contains two inner joins to the FND_USER table. The joins would be linked to the created_by and
last_updated_by fields on the base View Object. The new View Object would now include the user name fields,
and these would also be displayed on the OAF pages through the techniques covered in the Do It Yourself Record
History OAF Personalization section of this paper.
Now here is an illustration of this technique, with some snapshots of the steps taken in JDeveloper. In this case,
the WHO columns are added to a region on the new OAF Suppliers page. We will be extending the Supplier Inquiry
page to display WHO columns in the section highlighted below.
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 31

Steps to extend VO :
1. The first step in extending any VO object in OA Framework is to figure out the exact name and the path
the VO object file residing on the Unix box. To arrive at this information we need to click the About this
Page option at the bottom left corner of the page.

2. Click the Expand All option on the resulting page to get to the VO object. There might be multiple VO
objects listed on the page, we need to narrow down to the VO we are interested in by looking for the
fields on the page we are trying to extend.
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 32

In this case the View Object is called SitesVO

3. Now click the hyperlinked VO object (in some cases the VO is not hyperlinked and we have explained
earlier how you can still get to the VO query), in this case click SitesVO and the system will take you to
below page where you can see the exact path our VO object resides in on Unix box (on $JAVA_TOP), also
you can see the VO object query on this page. Note: The POS is the iSupplier application short name
that owns the Suppliers OAF page.
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 33

4. Login to Unix Box and navigate to $JAVA_TOP first. On $JAVA_TOP we have folders for each application,
in this case, as we saw in screenshot above our VO object file resides in pos. Navigate to the exact
location of our VO object xml file as shown below.

5. Our next steps are to transfer all the files needed to extend the VO object to our local desktop from Unix
and getting ready to extend. You can use any of the ftp tools available and transfer the pos folder on
$JAVA_TOP to your local machine. Make sure to transfer the files to your myprojects and myclasses
folders on your local JAVA_HOME. In my case I have used C:\jdeveloper\jdevhome\jdev\ as my
JAVA_HOME environment variable.

As you can see below, we are trying to construct the exact path on our local machine as on the Unix box. (I have
ftped the pos folder from UNIX box to the oracle\apps folder on my local machine under myclasses)
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 34


6. Also ftp the pos folder to myprojects\oracle\apps folder on your local machine.



7. At this point we are ready to extend the SuppSrchVO.xml file using jdeveloper. Double click the
jdeveloper icon on your desktop to open the tool.
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 35

Create new Workspace, and then follow the wizard interface to set this up:


Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 36




Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 37




Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 38





Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 39

Now a project is established in the JDeveloper Applications Navigator


Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 40

Now create a new View Object in the project, based on the original VO.


Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 41



Insert the additional tables (FND_USER) that will be used in the custom VO.
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 42

Define the join against the existing fields in the VO.


Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 43




Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 44





Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 45




Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 46

With this, the custom VO has been created.
Now the custom VO must be substituted for the original on the page. This substitution will add a '.jpx' file in
'myprojects' folder on your local machine.


Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 47




Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 48




JDeveloper will generate all the necessary files for the VO substitution onto the indicated directory.
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 49


Move the files onto the apps server.

Import the project file.

Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 50

Below is the command to substitute the original VO file with the extended VO file on the application server. This
command needs to be executed from command prompt of your local machine, also the same command can be
executed from $JAVA_TOP on Unix box.

Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 51
Apache server bounce is required at this point.

Screenshot of the Extended VO object and the query from About this Page link






Personalization to add Created by User Column
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 52




Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 53
Personalization to add Updated by User Column



Below is a screenshot of both the newly extended columns on the Supplier Sites Page
Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 54



Option 2: Create a new custom OAF page
Another advanced development technique would be to create a new custom OAF page that mimics the new R12
Record History window. This new custom page would be called from the existing OAF page by the use of a new
Button page object. The Button object has a property called Destination URI that can include parameters of
fields pulled from the View Object. The Destination URI would call the new custom page and include parameters
in its call.
In an example of the R12 Customer page, a new pop-up window could be designed to lookup the WHO data from a
particular Customer Account number. The OAF page has a field in the View Object called AccountNumber. This
value of the record unique ID would be used as the parameter in the Destination URI call from a new button
object. This call might look something like:
OA.jsp?page= oracle/apps/pos/../xxPG&retainAM=Y&accNum={@AccountNumber}
The New page would be designed to open and use the AccountNumber parameter in its base SQL. The custom
page would display the Creation Date and Last Update Date fields from the HZ_CUST_ACCOUNTS table, while
also looking up the user_name on FND_USER based on the Created_By and Last_Updated_By ID values.




Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 55
Metalink Notes and User Guides of interest
The original patch for 12.0.6 is 6728000. Included in this is the ATG portion of the upgrade under patch 7237006.
For this ATG upgrade, there is a document 740246.1 focused on the OAF changes. In section 2.1 it explains the
enablement of the Record History feature in the OAF Personalizations.
The Record History capabilities in OAF are also described with the OAF Release Notes for R12.1.1, this is for
Release Update Pack 6 (R12.ATG_PF.A.DELTA.6). This can be found under Metalink note 565870.1
A useful document is the Personalization guide for OAF Pages, called 121fwkpg.pdf. It can be found as a link under
document ID 565870.1. This covers many of the concepts and capabilities of extending the functionality of the
OAF pages. Several concepts from this document were used in the research for the OAF Extensions section of this
document.
Under this OAF document ID 565870.1, there is also a link to the OA Component Reference that can serve as a
definition of all of the types of components that can appear on OAF pages, and what the capabilities are for
Personalization.

Metalink Enhancement Requests
The following Enhancement Requests have been registered with Oracle to address some of the shortcomings with
the Enable Record History personalizations. The first problem was that the existing pages have to be
retroactively enhanced to allow use of the Record History feature. In the case of certain important master data
pages, these have already been established as Enhancement requests.
The R12 Customer page has a request to be enhanced for Record History Support under ER 7693621. This also
makes mention of the Oracle Customers Online pages as well. This request was originally opened on Jan 7, 2009.
The R12 Supplier page has a request to be enhanced for Record History Support under ER 8275824. This request
was originally opened on Feb 20, 2009.
Lastly, there is an ER to correctly display the user name from the FND_USER table on the Record History pop-up
window in certain R12 pages, rather than the User ID. This is 9342923. This request was originally opened on Feb
2, 2010. The bug was recently updated in mid-2012, but Oracle Support cannot provide a certain timeline for the
enhancement to be delivered.
We request that anyone reading this document submit their company names under these enhancement request
numbers, in the hopes that the fix can be delivered soon. The more interest in this topic that Oracle observes, the
better!


Record History and other Personalizations in R12 Oracle Application Framework Pages
Collaborate 13 OAUG Forum Tyner, Landgrebe, and Vallurupalli 56
Conclusion
Overall, the implementation of the Record History in R12 OAF pages has some obvious flaws. The overall
capabilities of the OAF Personalization, however, can plug a few holes with the tracking of the database audit data.
While it is not our desire to force anyone into Extension of the OAF pages, this may be necessary in order to
receive all of the capabilities of the past releases of the E-Business Suite record history.

About the Authors
Chris Tyner is a senior consultant with AXIA Consulting, LLC. He has 21 years of experience in systems integration
consulting, including over 15 years working with Oracle applications (since Release 9.4.2).
Carole Landgrebe is a senior business analyst with Intelligrated, Inc. She has 15 years of experience working with
Oracle applications (since Release 10.7 character) and 10 years of experience managing production and
distribution activities in the chemical process industry.
Subhash Vallurupalli is a senior technical analyst working with AXIA Consulting, LLC. He has over 12 years of
experience working with Oracle applications, including a history of creating custom extensions and enhancements
that support unique business requirements.

Acknowledgement
We would like to acknowledge the assistance of Wayne Allen of RWA Associates in Chicago for providing a
technical review during the creation of this whitepaper.

You might also like