Como posso listar a Oracle Apps opções de perfil em PL/SQL?
-
09-06-2019 - |
Pergunta
Eu administrar vários Oracle Apps ambiente, e, atualmente, verifique as opções de perfil em muitos ambientes através do carregamento de formulários em cada ambiente, e verificar manualmente cada variável, o que requer um monte de tempo.
Há um trecho de código que vai do perfil da lista de opções e em que nível e que elas são aplicadas?
Solução
Você vai querer para consulta APPLSYS.FND_PROFILE_OPTIONS
e FND_PROFILE_OPTION_VALUES
.Para uma abrangente de script que você pode pegar o SQL, veja aqui:http://tipsnscripts.com/?p=16
Outras dicas
Espero que isso irá ajudá-lo obter informações mais granular quando você tenta rastrear alterações feitas por usuários.
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%'))
Armado com o conhecimento de que as tabelas de voltar (graças Sten) e um pouco de uma edição criteriosa, eu vim com uma consulta que atende as minhas necessidades:
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;
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;