Pages

Thursday, June 2, 2011

How To Prevent the Profile Option MO: Operating Unit being set to NULL at Site Level

steps
1.Login to the application as SYSADMIN
2.Responsibility : System Administrator
3.Function: Profiles --> System
4.Choose from the menu: Help --> Diagnostics --> Custom Code --> Personalize
5.Create a new Rule
oSeq : 10
oDescription : MO: Operating Unit
oLevel : Function
oEnabled : [checked]
6.Specify the following Condition:
oTrigger Event : WHEN-VALIDATE-RECORD
oTrigger Object : PROFILE_VALUES
oCondition : :PROFILE_VALUES.PROFILE_OPTION_NAME = 'ORG_ID' AND :PROFILE_VALUES.SITE_VISIBLE_VALUE IS NULL
oProcessing Mode : Not in Enter-Query Mode
7.Assign the following Actions to the Rule:
oSeq : 10
oType : Message
oDescription : MO: Operating Unit
oLanguage : All
oEnabled : [checked]
oMessage Type : Error
oMessage Text : You must specify a profile option value at Site level for the profile option 'MO: Operating Unit'.
8.Save the changes
9.Close the System Profile Values form

Result
An error message will appear if an end user now tries to remove the profile option value.

Useful Queries

--Finding Invaled Objects
select count(*) from dba_objects where status ='INVALID'

--To Check which node is running what service
select * from fnd_nodes

--Information about the bugs fixed in Installation
select * from ad_bugs

--Information about the applied patches
select * from ad_applied_patches

--Stores values for various profile options
select * from fnd_profile_option_values

--Information about various profile options
select * from fnd_profile_options

--To Find database version
select * from v$version

--To Determine Oracle Apps 11i Version ?
select release_name from fnd_product_groups;

How to list E-Business Suite Profile Option values for all levels using SQLPlus

select p.profile_option_name SHORT_NAME,
       n.user_profile_option_name NAME,
       decode(v.level_id,
               10001, 'Site',
               10002, 'Application',
               10003, 'Responsibility',
               10004, 'User',
               10005, 'Server',
               10006, 'Org',
               10007, decode(to_char(v.level_value2), '-1', 'Responsibility',
                             decode(to_char(v.level_value), '-1', 'Server',
                             'Server+Resp')),
               'UnDef') LEVEL_SET,
       decode(to_char(v.level_id),
               '10001', '',
               '10002', app.application_short_name,
               '10003', rsp.responsibility_key,
               '10004', usr.user_name,
               '10005', svr.node_name,
               '10006', org.name,
               '10007', decode(to_char(v.level_value2), '-1', rsp.responsibility_key,
                          decode(to_char(v.level_value), '-1',
                            (select node_name from fnd_nodes
                             where node_id = v.level_value2),
                        (select node_name from fnd_nodes
                         where node_id = v.level_value2)||'-'||rsp.responsibility_key)),
               'UnDef') "CONTEXT",
       v.profile_option_value VALUE
from fnd_profile_options p,
     fnd_profile_option_values v,
     fnd_profile_options_tl n,
     fnd_user usr,
     fnd_application app,
     fnd_responsibility rsp,
     fnd_nodes svr,
     hr_operating_units org
where p.profile_option_id = v.profile_option_id (+)
  and p.profile_option_name = n.profile_option_name
  and upper(p.profile_option_name) in (
            select profile_option_name from fnd_profile_options_tl
            where  upper(profile_option_name) like upper('%&profile_name%')
            and    upper(profile_option_name) in (select profile_option_name
              from   fnd_profile_options_tl
              where  upper(user_profile_option_name) like upper('%&user_profile_name%')))
  and    usr.user_id (+) = v.level_value
  and    rsp.application_id (+) = v.level_value_application_id
  and    rsp.responsibility_id (+) = v.level_value
  and    app.application_id (+) = v.level_value
  and    svr.node_id (+) = v.level_value
  and    org.organization_id (+) = v.level_value
  order by short_name, user_profile_option_name, level_id, level_set;