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.