Sie sind auf Seite 1von 6

Oracle EBS R12

How to List and Interpret OAF Personalization


Overview

The purpose of this document is to describe an option to review forms


personalizations made in OAF pages.

Content

How To Retrieve Programmatically ..............................................................................3


Script Output - Examples...............................................................................................4
Part 1: Soft Personalizations ......................................................................................4
Part 2: Hard Personalizations.....................................................................................6

Overview

OAF Personalizations are an easy and fully supported way to adapt a certain page in
Oracle EBS to fit better certain business needs.

With OAF Personalizations can do a lot, but not in all cases such a change can be seen
as easy. Personalizations can be very complex, especially when you use your own
custom code to change the underlying validations.

This HowTo concentrates on the option to validate which personalizations have been
added to the screens. It allows you to get a better understanding how to read a
personalization entry.

To review if a certain page has been personalized, use the “about this page” link.

Volker Eckardt, Oracle Corporation 12/02/2011


In the upcoming screen go to the tab ‘Personalization’, here you can find further
details. In the case below a personalization has been implemented in May 7, 2011, on
function level. The object customized is the user summary table.:

Volker Eckardt, Oracle Corporation 12/02/2011


How To Retrieve Programmatically
I am using a simple script to derive the OAF personalization’s.
set serverout on
DECLARE
CHUNK VARCHAR2(32000);
DOCID JDR_PATHS.PATH_DOCID%TYPE;
V_POS NUMBER; V_LEN NUMBER;
v_user_id varchar2(100);
V_USER_NAME VARCHAR2(100);
-- can be site, function, responsibility or user
V_LEVEL VARCHAR2(100);
-- example only
FULLNAME VARCHAR2(200);
CURSOR C1 IS
SELECT * FROM JDR_PATHS WHERE -- CREATED_BY != 'INTERNAL' AND
PATH_TYPE = 'DOCUMENT'
--
-- this date determines where to start
-- vvv
AND CREATION_DATE > SYSDATE - 300;
--

FUNCTION WHO (p_user_id varchar2) return varchar2


IS
v_user_name varchar2(100);
BEGIN
SELECT USER_NAME INTO V_USER_NAME FROM FND_USER WHERE USER_ID = P_USER_ID;
RETURN V_USER_NAME;
EXCEPTION WHEN OTHERS THEN
RETURN p_user_id;
end;

BEGIN
DBMS_OUTPUT.ENABLE(100000);
FOR R1 IN C1 LOOP
FULLNAME := JDR_MDS_INTERNAL.GETDOCUMENTNAME(R1.PATH_DOCID);
V_POS:= INSTR(FULLNAME,'/user/'); V_LEN:= LENGTH('/user/');
IF V_POS > 0 THEN
V_LEVEL := 'Single User';
V_USER_ID := SUBSTR(FULLNAME,V_POS+V_LEN,INSTR(SUBSTR(FULLNAME,V_POS+V_LEN),'/')-1);
v_user_name := who (V_USER_ID);
END IF;
V_POS:= INSTR(FULLNAME,'/responsibility/'); V_LEN:= length('/responsibility/');
IF V_POS > 0 THEN
V_LEVEL := 'Single Responsibility';
V_USER_ID := SUBSTR(FULLNAME,V_POS+V_LEN,INSTR(SUBSTR(FULLNAME,V_POS+V_LEN),'/')-1);
select responsibility_name into v_user_name from fnd_responsibility_vl where
responsibility_id = V_USER_ID;
END IF;
V_POS:= INSTR(FULLNAME,'/function/'); V_LEN:= LENGTH('/function/');
IF V_POS > 0 THEN
V_LEVEL := 'Single Function';
v_user_name := SUBSTR(FULLNAME,V_POS+V_LEN,INSTR(SUBSTR(FULLNAME,V_POS+V_LEN),'/')-1);
END IF;
V_POS:= INSTR(FULLNAME,'/site/');
IF V_POS > 0 THEN
V_LEVEL := 'Site';
v_user_name := Null;
END IF;
CHUNK := JDR_MDS_INTERNAL.EXPORTDOCUMENTASXML(FULLNAME);
IF INSTR(CHUNK,'replace with=') > 0 OR INSTR(CHUNK,'modifica') > 0
then
DBMS_OUTPUT.PUT_LINE(RPAD('-',80,'-'));
DBMS_OUTPUT.PUT_LINE('Path: '||FULLNAME);
DBMS_OUTPUT.PUT_LINE('Level: '||V_LEVEL);
IF V_USER_NAME IS NOT NULL THEN DBMS_OUTPUT.PUT_LINE('Name: '||V_USER_NAME); END IF;
DBMS_OUTPUT.PUT_LINE('Date: created='||R1.CREATION_DATE||',
last_updated='||R1.LAST_UPDATE_DATE);
DBMS_OUTPUT.PUT_LINE('Who: created='||who(r1.created_by)||',
last_updated='||who(r1.last_updated_by));
DBMS_OUTPUT.PUT_LINE(rpad('-',80,'-'));
DBMS_OUTPUT.PUT_LINE(CHUNK);
end if;
END LOOP;
-- DOCID := JDR_MDS_INTERNAL.GETDOCUMENTID(FULLNAME, TRUE, TRUE);
-- doc_id := 79030;
END;
/

Volker Eckardt, Oracle Corporation 12/02/2011


Script Output - Examples
Generally we divide between ‘soft’ and ‘hard’ personalizations. The ‘soft’ version just
moves a field around or sets a field to required, the ‘hard’ changes underlying code by
code substitution. Although also the softversion may have to be retested after standard
patching, the hard version is definitely a candidate for custom code review, because in
this case you have changed the page behaviour and this has to be reimplemented in
the latest shipped code again.

Part 1: Soft Personalizations

Example 1-1: Enable Region

In module PO, in Order area, the OrderlineDetails page has been touched 29th April
by INTERNAL (can be anyone).

He enabled the DetailsHdr area (rendered=true).

Example 1-2: Add default Search Criteria

In module OZF, tradeplanning, on user level (for RSPILLEM only) in the dashboard,
a default search criteria has been added to Party Name = Peugeot France.

Volker Eckardt, Oracle Corporation 12/02/2011


Example 1-3: Disable Elements

In a custom module XXTRV, in the request area of page Request details, three fields
have been disabled.

Example 1-4: Required Fields

In the Bank Area (IBY), on responsibility level ‘Purchasing Super User’, 4 fields have
been set to required.

Example 1-5: Field Prompts

In a custom module two prompts have been renamed.

Volker Eckardt, Oracle Corporation 12/02/2011


Example 1-6: Function Security

In the supplier area, a button “Create Site” has been disabled conditionally, based on
an existing function XXPOS_ALLOW_SITE_CREA. This button will become visible
if this function is assigned to you (via menu or grant).

Part 2: Hard Personalizations


Example 2-1: Substitute View Object

In this case the standard VO = View Object has been substituted with a custom VO.
Usually such a change adds additional columns, or makes the underlying view more
restrictive.

Example 2-2: Substitute Entity Object

Here the standard EO = Entity Object has been substituted with a custom EO.

Please contact me if you need any further explanation!

Oracle Corporation
Email: volker.eckardt@oracle.com
Linkedin: http://de.linkedin.com/pub/volker-eckardt/0/8a7/430

Volker Eckardt, Oracle Corporation 12/02/2011

Das könnte Ihnen auch gefallen