Home » Oracle » Oracle Apps Profile options

Oracle Apps Profile options

What is  Profile options in Oracle Apps

A set of changeable options that affect the way your application runs. The profile option acts like a Global Variable in Oracle, to provide flexibility in Oracle Applications

Two types of Profile options in Oracle Apps

System Profile Options: It is set by the System administrator. User cannot access it and Any change in the system profile becomes effective only when the user logs on again or change responsibility

Personal Profile Options: It is set by the System Administrator. Users can change the option values. Any changes become effective immediately

Profile Hierarchy
A profile option can be set at one or more levels, depending on its hierarchy type. Most profile options use the Security hierarchy type, meaning that they can potentially be set at the four levels: Site (lowest level), Application, Responsibility, and User (highest level).

Profile options in Oracle Apps

Some Important points about Profile Hierarchy
1) A value set at the higher level override the one set at the lower level
2)After implementation System Administrator sets the default profile values at the site level
3)Option values are dynamically set at the run time

Hierarchy Types
Hierarchy types enable system administrators to the group and set profile options according to their business needs or the needs of the installation.
There are several hierarchy types: Security, Organization, Server, and Server+Responsibility.

SecuritySecurity is the default hierarchy type. Profiles that use this hierarchy type follow the hierarchy: Site – Application – Responsibility – User. Note: Most profile options that existed before hierarchy type was introduced use Security.
OrganizationOrganization refers to the operating unit. For example, clerks in different organizations may need to have different values for a given profile option, depending on their organization, but clerks in the same organization would use the same value. The Organization hierarchy type allows system administrators to set a profile option at the organization level so that all users within that organization will use the profile option value set once at the organization level. Profiles using this hierarchy type follow the hierarchy Site – Organization – User.
Server

 

 

The Server hierarchy type is used when the system needs to determine the middle-tier server on which the user’s session is running. For example, the profile “Applications Web Agent” can be defined using the Server type. The setting of this profile option can differ for an internal server versus an external one. Cookie validation can then be done against the value of this profile option. Profiles using this hierarchy type follow the hierarchy Site – Server – User.
Server+Responsibility

 

 

The Server+Responsibility hierarchy type allows you to set distinct profile values for specific combinations of server and responsibility. When evaluating profile values to use, the value found with the most specific match across all levels is chosen. At any level, a special default value can be chosen in case no other specific match at that level is found.
Either or both of the responsibilities or servers may have specific values, or maybe the default value. For purposes of evaluating default matches, the server is considered to be at a lower level and less specific than the responsibility. When evaluating profile values at this Server+Responsibility level, the system first looks for a specific match for both the responsibility and server-level values. If no such match is found, it looks for a row matching responsibility and default for the server level. If no such match is found, it will next look for a row matching the server with default for the responsibility level. If no such match is found, it will continue up the hierarchy to the Site level.

Tables involved in Profile Option

FND_PROFILE_OPTIONS

See also  Oracle's Containers for J2EE (OC4J) in R12

FND_PROFILE_OPTIONS_TL

FND_PROFILE_OPTIONS_VALUES

How to check the Hierarchy type of the Profile Option

col SITE format a4 
col APPL format a4 
col RESP format a4 
col USER format a4 
col SRVR format a4 
col ORG format a3 
col svrp format a4 
set pagesize 100 
select unique profile_option_name, 
  hierarchy_type "Type", 
  WRITE_ALLOWED_FLAG, 
  READ_ALLOWED_FLAG, 
  SITE_ENABLED_FLAG || SITE_UPDATE_ALLOWED_FLAG "Site", 
  SERVERRESP_ENABLED_FLAG || SERVERRESP_UPDATE_ALLOWED_FLAG "SvRp", 
  SERVER_ENABLED_FLAG || SERVER_UPDATE_ALLOWED_FLAG "Srvr", 
  USER_ENABLED_FLAG || USER_UPDATE_ALLOWED_FLAG "User", 
  RESP_ENABLED_FLAG || RESP_UPDATE_ALLOWED_FLAG "Resp", 
  ORG_ENABLED_FLAG || ORG_UPDATE_ALLOWED_FLAG "Org", 
  APP_ENABLED_FLAG ||APP_UPDATE_ALLOWED_FLAG "Appl" 
from 
  fnd_profile_options 
where 
  profile_option_name in 
  ('APPS_WEB_AGENT','APPS_SERVLET_AGENT','APPS_JSP_AGENT','APPS_FRAMEWORK_AGENT', 
   'ICX_FORMS_LAUNCHER','ICX_DISCOVERER_LAUNCHER','ICX_DISCOVERER_VIEWER_LAUNCHER', 
   'HELP_WEB_AGENT','APPS_PORTAL','CZ_UIMGR_URL','ASO_CONFIGURATOR_URL', 
   'QP_PRICING_ENGINE_URL','TCF:HOST') 
   or hierarchy_type='SERVER' 
   or hierarchy_type='SERVRESP' 
order by hierarchy_type,profile_option_name; 
 

Example Output of Enabled QueryPROFILE_OPTION_NAME              Type     W R Site SvRp Srvr User Resp Org Appl 
-------------------------------- -------- - - ---- ---- ---- ---- ---- --- ---- 
FND_FUNCTION_VALIDATION_LEVEL    SERVER   Y Y YY   NN   YY   NN   NN   NN  NN 
FND_VALIDATION_LEVEL             SERVER   Y Y YY   NN   YY   NN   NN   NN  NN 
NODE_TRUST_LEVEL                 SERVER   Y Y YY   NN   YY   NN   NN   NN  NN 
OKS_SMTP_DOMAIN                  SERVER   Y Y YY   NN   YY   YN   NN   NN  NN 
UMX_REGISTER_HERE_HTMLPARAMS     SERVER   Y Y NN   NN   YY   NN   NN   NN  NN 
UMX_REGISTER_HERE_REGPARAMS      SERVER   Y Y NN   NN   YY   NN   NN   NN  NN 
UMX_REGISTER_HERE_REG_SRV        SERVER   Y Y NN   NN   YY   NN   NN   NN  NN 
APPS_FRAMEWORK_AGENT             SERVRESP Y Y YY   YY   NN   YY   NN   NN  NN 
APPS_JSP_AGENT                   SERVRESP Y Y YY   YY   NN   YY   NN   NN  NN 
APPS_PORTAL                      SERVRESP Y Y YY   YY   NN   YY   NN   NN  NN 
APPS_SERVLET_AGENT               SERVRESP Y Y YY   YY   NN   YY   NN   NN  NN 
APPS_WEB_AGENT                   SERVRESP Y Y YY   YY   NN   YY   NN   NN  NN 
ASO_CONFIGURATOR_URL             SERVRESP Y Y YY   YY   NN   YY   NN   NN  NN 
CZ_UIMGR_URL                     SERVRESP Y Y YY   YY   NN   YY   NN   NN  NN 
HELP_WEB_AGENT                   SERVRESP Y Y YY   YY   NN   YY   NN   NN  NN 
ICX_DISCOVERER_LAUNCHER          SERVRESP Y Y YY   YY   NN   YY   NN   NN  NN 
ICX_DISCOVERER_VIEWER_LAUNCHER   SERVRESP Y Y YY   YY   NN   YY   NN   NN  NN 
ICX_FORMS_LAUNCHER               SERVRESP Y Y YY   YY   NN   YY   NN   NN  NN 
QP_PRICING_ENGINE_URL            SERVRESP Y Y YY   YY   NN   YY   NN   NN  NN 
TCF:HOST                         SERVRESP Y Y YY   YY   NN   YY   NN   NN  NN 

20 rows selected.

The following query can be used to find the node information from FND_NODES

set pagesize 50 
col node_name format a15 
col server_id format a8 
col server_address format a15 
col platform_code format a4 
col webhost format a12 
col domain format a20 
col virtual_ip format a12 
set linesize 132 
select 
  node_id, 
  platform_code, 
  support_db D, 
  support_cp C, 
  support_admin A, 
  support_forms F, 
  support_web W, 
  node_name, 
  server_id, 
  server_address, 
  domain, 
  webhost, 
  virtual_ip 
from 
  fnd_nodes 
order by node_id;

How to check Profile Option values

We can either check it through front end   or backend sql query

See also  What is Oracle Enterprise Manager Grid Control

how to check profile values in oracle apps from frontend

Navigation for Front end

Go to system administrator responsibility  -> Profile -> System Profile Option

You can write the Profile option name and then query it

how to check profile options in oracle apps from backend

We can check Profile option through backend also using two method

(a) FND_PROFILE API
(b) Sql query to the profile option tables

Using FND_PROFILE API to check Site level Profile value

Site-level values of Profile can be found as

select FND_PROFILE.value('<profile_option_name') from dual;

select FND_PROFILE.value('APPS_AUTH_AGENT') from dual;

select FND_PROFILE.value('APPS_SSO_LDAP_SYNC') from dual;

select  fnd_profile.value('SIGNON_PASSWORD_LENGTH') from dual;

Profile_option_name is the name of Profile stored in the FND_PROFILE_OPTION table

Using Query to check site-level value

set linesize 140
set pagesize 132
col "PROFILE NAME" format A30
col "Update Time" format A22
col VALUE format a35;
col USER format a30;
col LEVEL format a6;
select
n.user_profile_option_name "PROFILE NAME",
decode(v.level_id, 10001,'Site',10002,'Application',10003,'Responsibility',10004,'User',10005,'Server',10006,'Organization','UnDef') "LEVEL",
v.profile_option_value VALUE,
to_char(v.LAST_UPDATE_DATE,'DD-MON-YYYY:hh24:mi:ss') "Update Time",
fu.user_name "USER"
from apps.fnd_profile_options p,
apps.fnd_profile_option_values v,
apps.fnd_profile_options_tl n,
apps.fnd_user fu
where p.profile_option_id = v.profile_option_id (+)
and p.profile_option_name = n.profile_option_name
AND v.last_updated_by=fu.user_id
and upper(n.user_profile_option_name) like upper('&profile_name%')
and v.level_id= 10004 ;

Here profile_name is the User profile name

Some other Important queries to check Profile

  1. Checking the Profile at a particular level

Using FND_PROFILE API

select fnd_profile.value_specific(‘<profile_option_name>’,'USER_ID','RESP_ID','APPL_ID','ORG_ID',’SERVER_ID’) from dual;

To check profile_option_value at the user level

select fnd_profile.value_specific('APPS_FRAMEWORK_AGENT','<User_id>') from dual;

Using a direct query to the table

set linesize 140
set pagesize 132
col "PROFILE NAME" format A30
col "Update Time" format A22
col VALUE format a35;
col USER format a30;
col LEVEL format a6;
select
n.user_profile_option_name "PROFILE NAME",
decode(v.level_id, 10001,'Site',10002,'Application',10003,'Responsibility',10004,'User',10005,'Server',10006,'Organization','UnDef') "LEVEL",
v.profile_option_value VALUE,
to_char(v.LAST_UPDATE_DATE,'DD-MON-YYYY:hh24:mi:ss') "Update Time",
fu.user_name "USER"
from apps.fnd_profile_options p,
apps.fnd_profile_option_values v,
apps.fnd_profile_options_tl n,
apps.fnd_user fu
where p.profile_option_id = v.profile_option_id (+)
and p.profile_option_name = n.profile_option_name
AND v.last_updated_by=fu.user_id
and upper(n.user_profile_option_name) like upper('&profile_name%')
and v.level_id= &level_id;

The above query will list the profile level values at the particular level.

See also  Top 10 Oracle Database Security Best Practices

We can add more filters to check the profile at the user level

set linesize 140
set pagesize 132
col "PROFILE NAME" format A30
col "Update Time" format A22
col VALUE format a35;
col USER format a30;
col LEVEL format a6;
select
n.user_profile_option_name "PROFILE NAME",
decode(v.level_id, 10001,'Site',10002,'Application',10003,'Responsibility',10004,'User',10005,'Server',10006,'Organization','UnDef') "LEVEL",
v.profile_option_value VALUE,
to_char(v.LAST_UPDATE_DATE,'DD-MON-YYYY:hh24:mi:ss') "Update Time",
fu.user_name "USER"
from apps.fnd_profile_options p,
apps.fnd_profile_option_values v,
apps.fnd_profile_options_tl n,
apps.fnd_user fu
where p.profile_option_id = v.profile_option_id (+)
and p.profile_option_name = n.profile_option_name
AND v.last_updated_by=fu.user_id
and upper(n.user_profile_option_name) like upper('&profile_name%')
and v.level_id= 10004 ;
and v.level_value=(select user_id from apps.fnd_user where user_name='&user');

2)  Checking profile changed in last 3 days

set linesize 140
set pagesize 132
col "PROFILE NAME" format A30
col "Update Time" format A22
col VALUE format a35;
col USER format a30;
col LEVEL format a6;
select
n.user_profile_option_name "PROFILE NAME",  p.profile_option_name,
decode(v.level_id, 10001,'Site',10002,'Application',10003,'Responsibility',10004,'User',10005,'Server',10006,'Organization','UnDef') "LEVEL",
v.profile_option_value VALUE,
to_char(v.LAST_UPDATE_DATE,'DD-MON-YYYY:hh24:mi:ss') "Update Time",
fu.user_name "USER"
,v.level_value
from apps.fnd_profile_options p,
apps.fnd_profile_option_values v,
apps.fnd_profile_options_tl n,
apps.fnd_user fu
where p.profile_option_id = v.profile_option_id (+)
and p.profile_option_name = n.profile_option_name
AND v.last_updated_by=fu.user_id
and v.last_update_date > sysdate -3
--and v.level_id= 10001;

3) Checking the Important login system profiles

select profile_option_value from apps.fnd_profile_option_values where level_id=10001 and PROFILE_OPTION_ID  in (select profile_option_id from apps.fnd_profile_options where profile_option_name in ('APPS_FRAMEWORK_AGENT','HELP_WEB_AGENT','APPS_JSP_AGENT','APPS_PORTAL',

'CZ_UIMGR_URL', 'ASO_CONFIGURATOR_URL','APPS_SERVLET_AGENT','APPS_WEB_AGENT'

,'ICX_FORMS_LAUNCHER')) ;

How to change the  Profile options in Oracle Apps

We can change either through Front or backend

Navigation will remain the same for the Front end. We will discuss changing from Back-end also

Using FND_PROFILE API

  1. How to change Profile option at the user level through PLSQL
declare
retval boolean;
cursor cur is select * from fnd_user
where user_name= '&1'
begin
for rec in cur
loop
dbms_output.put_line ( rec.user_name );
retval:=fnd_profile.save('<profile_option_name’','<value>','USER',rec.user_id);
end loop;
end;
/

2) How to change the site level profile

Set serveroutput on
declare
dummy boolean;
begin
dummy := APPS.FND_PROFILE.SAVE(‘<profile_option_name>’,’<value>’ ,'SITE');
if not dummy then
dbms_output.put_line( 'Error setting the Profile option' );
end if;
end;
/

how to set profile options in oracle apps from the backend

This method requires more knowledge as you need to know the Profile_option_id

Changing the Profile value at the user level

update FND_PROFILE_OPTION_VALUES
set PROFILE_OPTION_VALUE=<value>
where PROFILE_OPTION_ID = &1
and level_value=(select user_id from fnd_user where user_name='&1')
and level_id=10004;

Changing the Profile value at the site level

update FND_PROFILE_OPTION_VALUES
set PROFILE_OPTION_VALUE=<value>
where PROFILE_OPTION_ID = &1
and level_id=10001;

How to put 10046 traces at the user level in Oracle apps using the Profile option

DECLARE
l_ret boolean;
l_user_id number;
BEGIN

select user_id
into l_user_id
from fnd_user
where user_name = '&&USER_NAME';

l_ret := fnd_profile.SAVE(X_NAME => 'FND_INIT_SQL',
X_VALUE => 'BEGIN FND_CTL.FND_SESS_CTL('''','''','''', ''TRUE'','''',''ALTER SESSION SET TRACEFILE_IDENTIFIER=''||''''''''||''&&USER_NAME'' ||''''''''||'' EVENTS =''||''''''''||'' 10046 TRACE NAME CONTEXT FOREVER, LEVEL 12 ''||''''''''); END;',
X_LEVEL_NAME => 'USER',
X_LEVEL_VALUE => l_user_id);
commit;

dbms_output.put_line('Profile has updated successfully');

EXCEPTION
when others then
dbms_output.put_line('Failed to update the profile: '||sqlerrm);
END;
/

How to delete the trace profile after the tracing is completed

DECLARE
l_ret boolean;
l_user_id number;
BEGIN

select user_id
into l_user_id
from fnd_user
where user_name = '&USER_NAME';

l_ret := fnd_profile.DELETE(X_NAME => 'FND_INIT_SQL',
X_LEVEL_NAME => 'USER',
X_LEVEL_VALUE => l_user_id);
commit;

dbms_output.put_line('Profile has erased successfully');

EXCEPTION
when others then
dbms_output.put_line('Failed to erase the profile: '||sqlerrm);
END;
/

I hope you must have liked the content on Profile options in Oracle Apps. Please do provide feedback

Related Articles

Oracle Concurrent Manager : How an E-Business Suite Concurrent Manager Process Works, Oracle Concurrent Manager, What is internal monitor, What are the service manager and troubleshooting
Autoconfig In Oracle R12: Check out this post for an in-depth discussion on Autoconfig in oracle apps R12, How autoconfig works in R12, log file location for autoconfig
oracle apps queries : This page contains the very useful and practical Top 30 Useful oracle apps queries for APPS DBA to help in day to day administration activities
oracle apps dba interview questions: You should not miss these 60 awesome oracle apps dba interview questions.Must read to succeed in interviews and jobs. Download also available

4 thoughts on “Oracle Apps Profile options”

    1. I dont see any option but you can create in DEV manually and then you can move to other environment using FNDLOAD in backend

      Download
      FNDLOAD apps/O Y DOWNLOAD $FND_TOP/patch/115/import/afscprof.lct <file_name.ldt> PROFILE PROFILE_NAME=”CUST_PROF_NAME” APPLICATION_SHORT_NAME=”CUST”
      Upload
      FNDLOAD apps/
      O Y UPLOAD $FND_TOP/patch/115/import/afscprof.lct <file_name.ldt>

      Check the link
      https://techgoeasy.com/fndload-command/

  1. I know some profile options are set by the system like during cloning. How do you tell which is set by whom? Trying to figure out why some things on test system point to the test system and some still point to production.

    1. There is column last_updated_by in the table FND_PROFILE_OPTION_VALUES. You can use that to determine if it is set by Autoinstall

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top