This query can give you profile option values for all levels such as site, application, responsibility, user. This could serve as an example of WITH CLAUSE usage. This query could be useful when a user has
1. Two Responsibilities
2. Both responsibilities can execute a given function
3. Behavior of that function is different under different responsibilities. it may be due to profile option setting for his/her responsibilities.
WITH pov AS ( SELECT fpo.profile_option_name , fpot.user_profile_option_name , fpov.level_id , fpov.level_value , fpov.level_value_application_id , fpov.profile_option_value FROM apps.fnd_profile_options fpo , apps.fnd_profile_options_tl fpot , apps.fnd_profile_option_values fpov WHERE fpot.profile_option_name = fpo.profile_option_name AND fpot.language = USERENV('LANG') AND fpo.profile_option_id = fpov.profile_option_id AND fpo.application_id = fpov.application_id and fpo.end_date_active is null /* Add Your condition on profile option name(s) */ AND fpo.profile_option_name LIKE 'ONT%' /* End of Conditions */ ) SELECT pov.profile_option_name , user_profile_option_name , 'Level->site: ' , pov.profile_option_value FROM pov , fnd_application fa WHERE fa.application_id = pov.level_value AND pov.level_id = 10001 UNION SELECT pov.profile_option_name , user_profile_option_name , 'Level->Application: ' || fa.application_short_name , pov.profile_option_value FROM pov , fnd_application fa WHERE fa.application_id = pov.level_value AND pov.level_id = 10002 UNION SELECT pov.profile_option_name , user_profile_option_name , 'Level->Responsibility: ' || frt.responsibility_name , pov.profile_option_value FROM pov , apps.fnd_responsibility fr , apps.fnd_responsibility_tl frt WHERE pov.level_id = 10003 AND fr.application_id = pov.level_value_application_id AND fr.responsibility_id = pov.level_value AND frt.application_id = fr.application_id AND frt.responsibility_id = fr.responsibility_id AND frt.language = USERENV('LANG') UNION SELECT pov.profile_option_name , user_profile_option_name , 'Level->User: ' || fu.user_name , pov.profile_option_value FROM pov , fnd_user fu WHERE fu.user_id = pov.level_value AND pov.level_id = 10004
No comments:
Post a Comment