2008-09-16 4 views
0

Ich verwalte mehrere Oracle Apps-Umgebungen und überprüfe derzeit die Profiloptionen in vielen Umgebungen, indem Formulare in jeder Umgebung geladen und jede Variable manuell geprüft wird, was viel Zeit erfordert.Wie listet ich die Oracle Apps-Profiloptionen in PL/SQL auf?

Gibt es einen Codeschnipsel, der Profiloptionen aufzeigt und auf welcher Ebene und auf wen sie angewendet werden?

Antwort

1

Sie möchten APPLSYS.FND_PROFILE_OPTIONS und FND_PROFILE_OPTION_VALUES abfragen. Für ein umfassendes Skript, das Sie aus der SQL abholen können, schauen Sie hier: http://tipsnscripts.com/?p=16

0

Bewaffnet mit dem Wissen, welche Tabellen (dank Sten) und ein wenig vernünftigen Bearbeitung zu bekommen, habe ich mit einer Abfrage kommen die dazu dient, meine Bedürfnisse:

SELECT SUBSTR(e.profile_option_name,1,30) PROFILE, 
    DECODE(a.level_id,10001,'Site',10002,'Application',10003,'Responsibility',10004,'User') L, 
    DECODE(a.level_id,10001,'Site',10002,c.application_short_name,10003,b.responsibility_name,10004,d.user_name) LValue, 
    NVL(a.profile_option_value,'Is Null') Value, 
    SUBSTR(a.last_update_date,1,25) UPDATED_DATE 
FROM fnd_profile_option_values a 
INNER JOIN fnd_profile_options e ON a.profile_option_id = e.profile_option_id 
LEFT OUTER JOIN fnd_responsibility_tl b ON a.level_value = b.responsibility_id 
LEFT OUTER JOIN fnd_application c ON a.level_value = c.application_id 
LEFT OUTER JOIN fnd_user d ON a.level_value = d.user_id 
WHERE e.profile_option_name LIKE '%&1%' 
ORDER BY profile_option_name; 
0
SELECT SUBSTR(e.profile_option_name,1,30) PROFILE, 
    DECODE(a.level_id,10001,'Site',10002,'Application',10003,'Responsibility',10004,'User') L, 
    DECODE(a.level_id,10001,'Site',10002,c.application_short_name,10003,b.responsibility_name,10004,d.user_name) LValue, 
    NVL(a.profile_option_value,'Is Null') Value, 
    SUBSTR(a.last_update_date,1,25) UPDATED_DATE 
FROM fnd_profile_option_values a 
INNER JOIN fnd_profile_options e ON a.profile_option_id = e.profile_option_id 
LEFT OUTER JOIN fnd_responsibility_tl b ON a.level_value = b.responsibility_id 
LEFT OUTER JOIN fnd_application c ON a.level_value = c.application_id 
LEFT OUTER JOIN fnd_user d ON a.level_value = d.user_id 
WHERE e.profile_option_name LIKE '%&1%' 
ORDER BY profile_option_name; 
1

ich diese Hoffnung helfen Ihnen detailliertere Informationen zu erhalten, wenn Sie versuchen, Änderungen von Nutzern aufzuspüren.

SELECT FP.LEVEL_ID "Level ID", 
    FPO.PROFILE_OPTION_NAME "PROFILE NAME", 
    FP.LEVEL_VALUE "LEVEL VALUE", 
    DECODE (FP.LEVEL_ID, 
      10001, 
      'SITE', 
      10002, 
      'APPLICATION', 
      10003, 
      'RESPONSIBILITY', 
      10004, 
      'USER') 
     "LEVEL", 
    DECODE (FP.LEVEL_ID, 
      10001, 
      'SITE', 
      10002, 
      APPLICATION_SHORT_NAME, 
      10003, 
      RESPONSIBILITY_NAME, 
      10004, 
      FL.USER_NAME) 
     LVALUE, 
    FPO.USER_PROFILE_OPTION_NAME "PROFILE DESCRIPTION", 
    FP.PROFILE_OPTION_VALUE "PROFILE VALUE", 
    FU.USER_NAME "USER NAME", 
    FU.LAST_UPDATE_DATE 
FROM FND_PROFILE_OPTIONS_VL FPO, 
    FND_PROFILE_OPTION_VALUES FP, 
    FND_RESPONSIBILITY_TL, 
    FND_APPLICATION FA, 
    FND_USER FL, 
    FND_USER FU 
WHERE FPO.APPLICATION_ID = FP.APPLICATION_ID 
    AND FPO.PROFILE_OPTION_ID = FP.PROFILE_OPTION_ID 
    AND FP.LEVEL_VALUE = FL.USER_ID(+) 
    AND FP.LEVEL_VALUE = RESPONSIBILITY_ID(+) 
    AND FP.LEVEL_VALUE = FA.APPLICATION_ID(+) 
    AND FU.USER_ID = FP.LAST_UPDATED_BY 
    AND FP.PROFILE_OPTION_VALUE IS NOT NULL 
    AND (UPPER (FP.Profile_Option_Value) LIKE UPPER ('%&1%') 
      OR UPPER (FP.Profile_Option_Value) LIKE UPPER ('%&2%'))