Monday, 25 February 2013

How to migrate personalization on OAF pages



In other articles I have mentioned how to personalize OAF pages. Now we shall discuss how personalization is migrated from one instance to another.
We shall migrate the personalization we had developed in previous articles. The migration steps are given below.
  
Step 1: Retrieve the page hierarchy

 

We shall identify where and which the personalization will be migrated.
Navigate to the OAF Page on which personalization is done. In our case the page is Create Expense report page.
The notable personalizations done on this page are,

  • The message on top of the field, Name, saying “Please note that iExpense responsibilities will not be available on 31-Jul-2012 to mark the occassion of the Great Day.

  • The prompt, Manager, has been changed to Line Manager.

Now click on About this Page link on the bottom left of the page.

Note the line underneath the page name, Create Expense Report: General Information. It is
/oracle/apps/ap/oie/entry/header/webui/GeneralInformationPG

The document name will be used in the next step as this is where the OAF page, GeneralInformationPG, is located and the location of the personalization on this page within the personalization repository.
Note the function name on the page, OIEENTRYFLOW.

Note:

The personalizations have been done at Function level. So we need to export the personalization done at this level
To check the personalizations on an OAF page you can execute a PL/SQL code in the database.
1BEGIN
2jdr_utils.listcustomizations ('/oracle/apps/ap/oie/entry/header/webui/GeneralInformationPG');
3END;

The output will look like the following,


Output:
01/oracle/apps/ap/oie/entry/header/webui/customizations/responsibility/54174/GeneralInformationPG
02/oracle/apps/ap/oie/entry/header/webui/customizations/site/0/GeneralInformationPG
03/oracle/apps/ap/oie/entry/header/webui/customizations/responsibility/50299/GeneralInformationPG
04/oracle/apps/ap/oie/entry/header/webui/customizations/responsibility/54173/GeneralInformationPG
05/oracle/oracle/apps/ap/oie/entry/header/webui/customizations/site/0/GeneralInformationPG
06/oracle/apps/ap/oie/entry/header/webui/customizations/responsibility/55925/GeneralInformationPG
07/oracle/apps/ap/oie/entry/header/webui/customizations/responsibility/55922/GeneralInformationPG
08/oracle/apps/ap/oie/entry/header/webui/customizations/responsibility/56191/GeneralInformationPG
09/oracle/apps/ap/oie/entry/header/webui/customizations/responsibility/56271/GeneralInformationPG
10/oracle/apps/ap/oie/entry/header/webui/customizations/function/OIEENTRYFLOW/GeneralInformationPG
11/oracle/apps/ap/oie/entry/header/webui/customizations/responsibility/56322/GeneralInformationPG
12..
13..
14..
15/oracle/apps/ap/oie/entry/header/webui/customizations/responsibility/55230/GeneralInformationPG
 
 

Step 2: Download the personalization
 

Now we shall download the personalization after locating it on the repository.
Go to Responsibility: Functional Administration
Navigation: Personalization > Import/Export > Personalization Repository

Then drill down as per the page hierarchy you had found in the earlier step.

We shall take the personalization done on the Function level by checking the “Select” box on the Page (The page name is GeneralInformationPG as shown in the previous step). You will notice the Last Updated date on the right hand side. The date also tells us whether we are looking at the correct OAF page or not.
Check the box for the OAF page whose personalization will be exported.

Now scroll down to the bottom.

Click on the button, Export to File System.


Now you will get a message telling you where the exported personalization file has been dropped. Note the message,
1Exported 1 document(s) to /d01/applprod/prodappl/XXCUST/11.5.0/bin/planphase successfully.
2/oracle/apps/ap/oie/entry/header/webui/customizations/function/OIEENTRYFLOW/GeneralInformationPG

Important:

The personalization file will be dropped on the path defined in the profile option, FND: Personalization Document Root Path. In this example the path is set to /d01/applprod/prodappl/XXCUST/11.5.0/bin/planphase and so the file is dropped there. The profile option is set as the following,

Hit Ctrl+E to open the value in the Editor.
  
Step 3: Locate the personalization file on the server

 

Now we shall see where the file has been generated.
Login to Unix and go to the path /d01/applprod/prodappl/XXCUST/11.5.0/bin/planphase (This path is given by Oracle in the previous step)
cd /d01/applprod/prodappl/XXCUST/11.5.0/bin/planphase


Now go the personalization path, /oracle/apps/ap/oie/entry/header/webui/customizations/site/0/.

cd oracle/apps/ap/oie/entry/header/webui/customizations/function/OIEENTRYFLOW/

Now check the contents of the directory.


As you can see a file, GeneralInformationPG.xml, exists in this directory. This xml file contains the personalization set.
  
Step 4: Review the exported file

 

We shall FTP the entire directory structure to a local PC and review the XML file. For this task I prefer to use a tool called Core FTP Lite as it is free and I can transfer an entire directory structure from and to the local pc.
After transferring the directory structure to your local pc,

Now open the file, GeneralInformationPG.xml in any text editor.
01<?xml version = '1.0' encoding = 'UTF-8'?>
02xmlns="http://xmlns.oracle.com/jrad" version="9.0.5.4.89_562" xml:lang="en-US" customizes="/oracle/apps/ap/oie/entry/header/webui/GeneralInformationPG" xmlns:oa="http://xmlns.oracle.com/oa">
03<modifications>
04<move element="OIEGeneralInformation" after="pbb"/>
05<insert before="OIEGeneralInformationMsgCLayout">
06<oa:formattedText id="Test_msg" adminCustomizable="true" cellNoWrapFormat="false" dataType="VARCHAR2" initSortSeq="none" queryable="false" rendered="true" scope="." sortState="no" styleClass="OraErrorNameText" text="Please note that iExpense responsibilities will not be available on 31-Jul-2012 to mark the occassion of the Great Day." totalValue="false" userCustomizable="false" xmlns:oa="http://xmlns.oracle.com/oa"/>
07</insert>
08<move element="ApproverId" after="OIEGeneralInformationMsgCLayout"/>
09<move element="AdditionalInformationHeader" after="ApproverId"/>
10<modify element="OverrideApprover" prompt="Line Manager"/>
11</modifications>
12</customization>

You can see the customizations in the xml file. You can also view the file contents from the database by executing the following PL/SQL commands.
1BEGIN
2jdr_utils.printdocument ('/oracle/apps/ap/oie/entry/header/webui/customizations/function/OIEENTRYFLOW/GeneralInformationPG');
3END;

On executing this anonymous block the output will be the same as the exported XML file.

  
 

Step 5: Move the exported personalization
 

We need to migrate the file, GeneralInformation.xml, along with the entire path, /oracle/apps/ap/oie/entry/header/webui/customizations/function/OIEENTRYFLOW/ to the target Oracle instance.

First let us locate the value of the profile option, FND: Personalization Document Root Path, on the target Oracle instance.

The path is /d03/appltest/testcomn/temp. This is the path where we need to drop the xml file with its directory structure.
Drop the entire structure, /oracle/apps/ap/oie/entry/header/webui/customizations/function/OIEENTRYFLOW/ GeneralInformationPG.xml in the directory, /d03/appltest/testcomn/temp.
  
 

Step 6: Check the OAF page in the target Oracle instance before importing personalization

Go to the iExpense page
This is the view of the page in the target instance before migrating the personalization
  
Step 7: Import the personalization in the target instance

 

On the target instance, log in to Functional Administrator responsibility.
Navigate to Personalization > Import/Export > Exported Personalizations
The page will look like the following if Step 4 has been completed properly.

Expand the nodes all the way down to the XML file

Select the checkbox for GeneralInformationPG.xml.

Click on Import from File System and you will get the following screen.

Once import is complete the screen will automatically change to the following
Now import is complete and we have to bounce the web server
  
Step 8: Bounce the web server in the target instance

 

We need to either bounce the web server (Apache) or we can clear the cache. For bouncing the web server you can check out this link and for clearing cache you check this article.
  
Step 9: Check the personalization on the target instance

 

Login to Oracle and navigate to the same page in the target instance. That is the Expense report creation page, where we had done our personalizations.
We can see the message in Red along with the new label “Line Manager”. This means that the personalization have been successfully migrated to the new instance.

No comments:

Post a Comment