This document provides 4 methods for removing or disabling an OA Framework personalization that is preventing access to a page:
1. Use the Personalization responsibility to deactivate or delete the personalization document.
2. Temporarily disable all personalizations by changing a profile option, then deactivate or delete the document.
3. Run a PL/SQL package to temporarily disable personalizations if login is not possible.
4. Delete the personalization document directly from the database using a utility package after backing it up.
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
How to remove disable an oa framework personalization (doc id 304670
1. How to Remove / Disable an OA Framework
Personalization (Doc ID 304670.1)
To
Bottom
In this Document
Goal
Solution
Introduction:
Method 1 - Using responsibility Functional Administrator > Personalization (OA
Framework 5.10+)
Method 2 - Temporarily disable all Personalizations
Method 3 - Temporarily disable all Personalizations when unable to login
Method 4 - Removing personalization document in the database using JDR_UTILS package
References
Applies to:
Oracle Applications Framework - Version 11.5.10.2 to 12.2 [Release 11.5.10 to 12.2]
Oracle Internet Expenses - Version 12.1.3 to 12.2 [Release 12.1 to 12.2]
Information in this document applies to any platform.
Goal
You created a personalization using the Personalization UI provided with OA
Framework.
You followed the OA Framework Personalization & Extensibility Guide Note 236618.1
(OA Framework Personalization and Extensibility Guide: Version 5.7+)
However, after creating the personalization, the page is no longer accessible and you
need to back-out or remove this personalization to allow access to the page.
Solution
There are a few methods to remove the 'faulty' personalization from the OA Framework page.
Introduction:
Before starting to delete personalizations it's useful to understand some background how these
are stored in Applications.
2. All page definitions for OAF pages are stored as (XML) document in the MDS repository
(located in the database). The reference to this is a document name with following format:
/oracle/apps/<product>/<subcategories>/<pagename>
For example the Home Page document name is:
/oracle/apps/fnd/framework/navigate/webui/HomePG
When creating personalizations in the OAF page the above mentioned document is not changed.
Instead a separate document is created in the MDS repository containing the personalization(s)
done. For each 'level' of personalization one document is stored with following format
/oracle/apps/<product>/<subcategoris>/customizations/<personaliz
ationlevel>/<personalizationid>/<pagename>
For example for the OA Framework home page the following document may exist
Personalizations made at SITE level are saved in following document
/oracle/apps/fnd/framework/navigate/webui/customizations/site/0/
HomePG
Personalizations made for Function = OAHOMEPAGE are saved in following document
/oracle/apps/fnd/framework/navigate/webui/customizations/functio
n/OAHOMEPAGE/HomePG
Personalizations made for Organization = 204 are saved in following document
/oracle/apps/fnd/framework/navigate/webui/customizations/org/204
/HomePG
Beware that each document may include multiple personalization actions. When adding a
personalization at SITE level the customization document for that level is updated. This makes
that if adding a specific personalization introduces a problem and the personalization document
is deleted also all other personalizations made at that level will be lost!!
Method 1 - Using responsibility Functional Administrator > Personalization (OA
Framework 5.10+)
This is the recommended method to remove personalization (if it's not possible to access the
OAF page anymore). It uses the default pages for maintaining personalization and only affects
the OAF page involved.
3. 1) Login to Oracle Applications as SYSADMIN
2) Select Functional Administrator [resp] > Personalization [tab]
3) Fill in the criteria to locate the OA Framework page and press Go
Tip: Check 'Personalized' checkbox to only query the pages having a personalization
4) Identify the correct page from the results returned
5) Depending on the situation you have following options:
Cause of failure is known (e.g. last change made) and can be removed
Click pencil "Personalize Page" and confirm personalization levels.
Revert the personalization step causing the problem
Apply the changes
Retest if the page is now accessible again.
Cause of the failure is unknown or can not be simply removed
Click pencil "Manage Personalizations"
Now Deactivate or Delete the personalization document (*)
(*) The difference between Deactivate and Delete is that in the case of Deactivating the
personalization document in the MDS repository is not removed, while this is the case for
Delete. Especially when there are multiple personalization documents, but it's not clear which
causes the problem the 'Deactivate' allows these to be tested individually without the need to
reload or recreate the personalization documents.
Method 2 - Temporarily disable all Personalizations
In case it's not possible to determine the exact document name of the OAF page failing the
following method can be used. The caveat of this method however is that during the change of
profile option mentioned this makes *all* personalizations will be disabled so will also affect
other pages. So only to be used on TEST environment or during maintenance window for PROD
environment.
1) Login to Oracle Applications as SYSADMIN and select System Administrator [resp] > Profile
- System
2) Update the Profile Option: "Disable Self-Service Personal" = YES
This can be set at SITE and APPLICATION level
3) Navigate to the OAF page personalized (may be done using another user)
It should now open since personalizations are not taken into account
4. 4) Enter the personalization UI using the 'Personalize' link
5) Depending on the situation you have following options:
Cause of the failure is known (e.g. last change made)
Revert the personalization step causing the problem
Apply the changes
Cause of the failure is unknown
Click pencil "Manage Personalizations"
Now Deactivate or Delete the personalization document (*)
(*) The difference between Deactivate and Delete is that in the case of Deactivating the
personalization document in the MDS repository is not removed, while this is the case for
Delete. Especially when there are multiple personalization documents, but it's not clear which
causes the problem the 'Deactivate' allows these to be tested individually without the need to
reload or recreate the personalization documents.
6) Login again and select System Administrator responsibility
7) Update the Profile Option: "Disable Self-Service Personal" = NO (for the level it was set to
YES)
8) Retest the OAF page is rendered fine again
Method 3 - Temporarily disable all Personalizations when unable to login
The following pl/sql code will let you disable all OAF personalizations. This is useful in case
you did a personalization and then you are not allowed to login into the system.
Note: The caveat of this method however is that during the change of profile option mentioned
this makes *all* personalizations will be disabled so will also affect other pages. So only to be
used on TEST environment or during maintenance window for PROD environment.
1) Run the following select statement as APPS user:
DECLARE
stat boolean;
BEGIN
dbms_output.disable;
dbms_output.enable(100000);
stat := FND_PROFILE.SAVE('FND_DISABLE_OA_CUSTOMIZATIONS', 'Y', 'SITE');
IF stat THEN
dbms_output.put_line( 'Stat = TRUE - profile updated' );
5. ELSE
dbms_output.put_line( 'Stat = FALSE - profile NOT updated' );
END IF;
commit;
END;
2) You should now be able to login successfully.
3) Proceed to fix the personalization issue you had and then enable OAF personalizations again.
To do this run the following:
DECLARE
stat boolean;
BEGIN
dbms_output.disable;
dbms_output.enable(100000);
stat := FND_PROFILE.SAVE('FND_DISABLE_OA_CUSTOMIZATIONS', 'N', 'SITE');
IF stat THEN
dbms_output.put_line( 'Stat = TRUE - profile updated' );
ELSE
dbms_output.put_line( 'Stat = FALSE - profile NOT updated' );
END IF;
commit;
END;
Method 4 - Removing personalization document in the database using JDR_UTILS
package
This method only requires access to the database and must be used with great care to ensure the
correct document is deleted. For this method you need to know the document name of the OAF
page with the personalization (See Introduction section)
1) Login to SQLPlus as APPS user
2) Run the following commands to show the available personalization documents
SQL> set serverout on;
SQL> exec
jdr_utils.listcustomizations('/oracle/apps/<product>/<subcategor
ies>/<pagename>');
e.g.
6. SQL> exec
jdr_utils.listcustomizations('/oracle/apps/fnd/framework/navigat
e/webui/HomePG');
3) This returns the document names of the personalization document for this OAF page. For
example for SITE level on Homepage
/oracle/apps/fnd/framework/navigate/webui/customizations/site/0/
HomePG
4) Backup the personalization document by exporting it to a file (so it can be reloaded if needed).
Make sure you are backing up the correct document. It should have "/customizations/" in the
document name.
From the web server, use the OS command:
adjava -mx128m -nojit oracle.jrad.tools.xml.exporter.XMLExporter
/oracle/apps/<product>/<subcategories>/customizations/<personali
zationlevel>/<personalizationid>/ /<pagename>
-username apps
-password <appspwd>
-dbconnection
"(description=(address_list=(ADDRESS=(PROTOCOL=TCP)(HOST=<myHost
>)(PORT=<port>)))(CONNECT_DATA=(SID=<SID>)))"
-rootdir /tmp
This create an XML document in the /tmp directory, like
/tmp/oracle/apps/<product>/<subcategories>/<personalizationlevel
>/<personalizationid>/<pagename>.xml
5) Delete the personalization document. Be VERY careful you are deleting the personalization
and not the base document !
SQL> exec
jdr_utils.deletedocument('/oracle/apps/<product>/<subcategories>
/customizations/<personalizationlevel>/<personalizationid>/<page
name>');
SQL> commit;
For the home page example this is:
7. SQL> exec
jdr_utils.deletedocument('/oracle/apps/fnd/framework/navigate/we
bui/customizations/site/0/HomePG');
SQL> commit;
6) Restart Apache to ensure that Java caching is cleared
7) Retest the issue and confirm that OAF page is not accessible again
8) To restore the personalization document deleted, use the following command (optional)
-adjava -mx128m -nojit
oracle.jrad.tools.xml.importer.XMLImporter
/tmp/oracle/apps/<product>/<subcategories>/<personalizationlevel
>/<personalizationid>/<pagename>.xml
-username apps
-password apps
-dbconnection
"(description=(address_list=(ADDRESS=(PROTOCOL=TCP)(HOST=<myHost
>)(PORT=<port>)))(CONNECT_DATA=(SID=<SID>)))"
-rootdir /tmp