Oracle R12 AOL (Application Object Library) - by Dinesh Kumar S
Oracle R12 AOL (Application Object Library) - by Dinesh Kumar S
Author:
Dinesh Kumar S
Email:
Official Post:
www.Planet-Source-Code.com
Web Server
IAS
JServ
Application
Tier
Web Server
Oracle Apps Server 10g R3
OC4J
Concurrent
Process
Form 6i
Server
Concurrent
Process
Form 10g R2
Server
Admin
Server
Report 6i
Bi Publisher
Admin
Server
Report 10g R2
Bi Publisher
DB Tier
Oracle R12 - AOL by Dinesh Kumar S
The following are the most important TOP level directories in oracle apps.
APPL_TOP
Contains Oracle Application Product directories such as PO, INV, OM, GL, AP, AR etc.
COMMON_TOP
Contains Common directory and files (log files, java libraries) which is shared across
different modules.
ORACLE_HOME
Contains technology Stack component such as Oracle DB (10g/11g), Oracle Developer
Suite (Forms, Reports) etc.
DATA_TOP
Contains Data files.
INST-TOP
It is new top in R12. It contains configuration files of application & technology stack to
share between multiple instances.
Oracle R12 - AOL by Dinesh Kumar S
Data
10.2.X
Ora
APPL
COMN
8.0.6
IAS
Server
Appl_Top
Data_Top
Oracle_Home
(DB Files)
(Oracle DB 10g)
Database Tier
(Apps
Product
files
PO, INV, OM
etc.)
Common_Top
(Shared Files)
Oracle_Home
Tech. Stack
Oracle_Home
Tech. Stack
(Forms, Reports)
(Apache, Jser)
Application Tier
Why AOL?
Roles of AOL
FND user
Responsibility
Data Group
Request Group
Menu
Application
Concurrent Prog.
Concurrent
Prog.
Oracle Schema
Executable
Forms
FND Applications
Navigation
Application Register
10
FND user
Responsibility
Data Group
Request Group
Menu
Application
Concurrent Prog.
Concurrent
Prog.
Oracle Schema
Executable
Forms
11
Table:
FND_APPLICATION
~ APPLICATION_ID
FND_APPLICATION_TL
~ APPLICATION_ID
~ LANGUAGE
Why?
To register your application name, application short name, application base path, and
application description with Oracle Application Object Library.
Oracle Application Object Library uses this information to identify application objects
such as responsibilities and forms as belonging to your application.
This identification with your custom application allows Oracle Applications to preserve
your application objects and customizations during upgrades.
Used Only When We are creating a custom application to isolate custom code and/or data from shipped
Oracle Applications.
12
Use of Short name Oracle Applications use the application short name as an internal key; for example, when
identifying forms, menus, concurrent programs and other application components. The
short name is stored in hidden fields while the name displays for users.
Use of Base path Its is the name of an environment variable that represents the top directory of your
application's directory tree. Oracle Applications searches specific directories beneath the
base path for your application's files and scripts.
SUMMARY ::
Used to
13
Below you can see the screen shot of oracle Purchasing Application definition.
14
Oracle UserName
Table:
FND_ORACLE_USERID
~ ORACLE_ID
Navigation
15
FND user
Responsibility
Data Group
Request Group
Menu
Application
Concurrent Prog.
Concurrent
Prog.
Oracle Schema
Executable
Forms
16
Why?
An ORACLE user name grants access privileges to the ORACLE database.
When?
The installation process always registers your ORACLE user name, so you need not
register it unless you create a custom application using Oracle Application Object
Library, (or).
To associate an additional ORACLE user name with Oracle Applications.
17
PRIVILEGE Why?
To restrict access to AOL features (menus, help text, and flex-fields) and its tables privilege is used.
Default value: Enabled
Privilege Types (a) Enabled:
An enabled ORACLE user name has full privileges (insert, query, update, and delete) to the
Oracle Application Object Library database tables.
(b) Restricted:
Restricted ORACLE user name has only query privileges to the Oracle Application Object Library
database tables.
This ORACLE user name can view Oracle Application Object Library data, but cannot insert,
update, or delete information.
(c) Disabled:
A disabled ORACLE user name has no privileges to the Oracle Application Object Library
database tables.
This ORACLE user name cannot insert, query, update, or delete Oracle Application Object
Library information and cannot use Oracle Application Object Library features.
18
Additional Privilege Types Two additional privilege types appear, associated with ORACLE user-names configured at
installation.
However, these types cannot be selected from your list of values.
(i) Public:
The installation process registered an ORACLE user-name with the Public privilege,
allowing all users to access the Application Sign-On Security form where they must
enter a valid Oracle Applications user-name and password.
(ii) Applsys:
The installation process registered the Oracle Application Object Library ORACLE
user-name with the Applsys privilege.
19
20
Data Group
Table:
Navigation
FND_DATA_GROUPS
~ DATA_GROUP_ID
21
FND user
Responsibility
Data Group
Request Group
Menu
Application
Concurrent Prog.
Concurrent
Prog.
Oracle Schema
Executable
Forms
22
23
Identifies Oracle user name when forms Connect to when you select responsibility.
Concurrent managers use a data group to match the application that owns a report or
concurrent program (submitted by a user of the responsibility) with a Oracle username.
24
Can we Define a new Data Group Yes, also you can copy a Data Group by defining new name.
How do we associate a new Application with a Data Group
25
26
FND_REQUEST_GROUPS
~ APPLICATION_ID
~ REQUEST_GROUP_ID
27
FND user
Responsibility
Data Group
Request Group
Menu
Application
Concurrent Prog.
Concurrent
Prog.
Oracle Schema
Executable
Forms
28
Request Security Used to specify reports, request sets & Concurrent programs
How to setup Request security By defining a "request Group"
Where 2 define Request Group form
Where 2 assign In Responsibility form
What Request Security Group Contains Reports, request sets & Concurrent programs
Is Request Security Group Contains requests & request sets frm diff. application yes, using Data Groups
Is user can run request sets with single request not in Request Security group yes, If and only if the Request Set is in Request security group
Restriction:
- user cannot edit requests
- user cannot stop specific request while running
- Can edit request set by deleting requests but not single request
29
30
SUMMARY::
Request Security Used to specify reports, request sets & Concurrent programs
Request Security Group When a request group is assigned to a responsibility, the request group is referred to as a request security
group.
31
Menus
Table:
FND_MENUS
~ MENU_ID
32
FND user
Responsibility
Data Group
Request Group
Menu
Application
Concurrent Prog.
Concurrent
Prog.
Oracle Schema
Executable
Forms
33
Menus:
Sequence:
34
Purchasing Module
35
36
37
Web Based
Functions
Form
Functions
38
Level 1
Level 2
39
Level 3
40
Form Functions
Table:
FND_FORM_FUNCTIONS
~ FUNCTION_ID
FND_FORM_FUNCTIONS_TL
~ FUNCTION_ID
~ LANGUAGE
FND_FORM
~ APPLICATION_ID
~ FORM_ID
FND_FORM_TL
~ APPLICATION_ID
~ FORM_ID
~ LANGUAGE
Navigation:
41
FND user
Responsibility
Data Group
Request Group
Menu
Application
Concurrent Prog.
Concurrent
Prog.
Oracle Schema
Executable
Forms
42
43
Root Menu
44
Purchase Order
(Form Based)
45
What is a Function?
- A function is a part of an application's functionality that is registered under a unique
name for the purpose of assigning it to, or excluding it from, a responsibility.
Types of Functions
~ form functions
~ non-form functions
We always refer
Form Functions
-->
Non-Form Functions -->
FORM
Sub-Functions
Oracle R12 - AOL by Dinesh Kumar S
46
FORM Blocks::
DESCRIPTIONFunction
:
Users do not see this unique function name. However, you
may use this name when calling your function pro-grammatically
47
PROPERTIES-
Type
:
Type is a free-form description of the function's use (function type will
be validated in a future version of this form). A function's type is passed back
when a developer tests the availability of a function. The developer can write code
that takes an action based on the function's type.
Some functions are controlled by profile options, that affect what the user can
perform within the current context. context dependence are Responsibility,
Organization, Security Group, None.
Oracle R12 - AOL by Dinesh Kumar S
48
Form-
Form /Application :
If you are defining a form function, select the name and application of your
form.
Parameters
:
Enter the parameters you wish to pass to your function. Separate parameters
with a space.
For a form function, if you specify the parameter QUERY_ONLY=YES, the
form opens in query-only mode. Oracle Application Object Library removes
this parameter from the list of form parameters before opening the form in
query-only mode.
49
50
51
WEB HOST-
Host Name
:
The URL (universal resource locator) or address required for your function consists of three
sections: the Host Name, Agent Name, and the HTML Call. The Host name is the IP address or alias of
the machine where the Web server is running.
Agent Name
:
The second section of your function URL is the Oracle Web Agent. The Oracle Web Agent determines
which database is used when running your function. Defaults to the last agent used.
Icon
:
Enter the name of the icon used for this function.
Secured
:
Secured is only required when your function is accessed by Oracle Work flow Checking Secured
enables recipients of a work flow E-Mail notification to respond using E-Mail.
Encrypt Parameters:
Checking Encrypt Parameters adds a layer of security to your function to ensure that a user cannot access
your function by altering the URL in their browser window.
Oracle R12 - AOL by Dinesh Kumar S
52
Responsibility
Table:
FND_RESPONSIBILITY
~ Application_ID
~ Responsibility_ID
FND_RESPONSIBILITY_TL
~ Application_ID
~ Responsibility_ID
~ Language
53
FND user
Responsibility
Data Group
Request Group
Menu
Application
Concurrent Prog.
Concurrent
Prog.
Oracle Schema
Executable
Forms
54
Why?
- It determines user
- access Oracle application or Self service web application
- which function, reports, concurrent program user can run.
About- Application Name and Responsibility name uniquily identifies the responsibility.
- Responsibility Key: unique name for a responsibility that is used by loader programs.
- A responsibility can be associated with only one Application.
Mandatory Fields:
- Effective Date From
- Data Group
- Name
- Application
- Menu
55
Menu Exclusions:
- The rules to restrict the application functionality accessible to a responsibility.
Type
When you exclude a function from a responsibility, all occurrences of that
function throughout the responsibility's menu structure are excluded.
When you exclude a menu, all of its menu entries, that is, all the functions and
menus of functions that it selects, are excluded.
HTML-Based Applications Security:
Oracle HTML-based applications use columns, rows and values in database tables to
define what information users can access.
Attribute Control:
Attributes are controlled by using
- Securing Attributes
- Exclude Attributes
56
57
Assign securing attribute values for each user, and for each securing attribute
assigned to all responsibilities for this user.
Seeded Securing attributes are assigned at two levels
(1) User Level
(2) Responsibility Level
Example: @ User level.
By default when an supplier/ contact / User is created Securing attribute is created
automatically.
Customer Contact:
Internal Contact:
Supplier Contact:
ICX_CUSTOMER_CONTACT_ID
ICX_HR_PERSON_ID
ICX_SUPPLIER_CONTACT_ID
58
59
Web Application
60
Users
Table:
FND_USER
~ USER_ID
61
FND user
Responsibility
Data Group
Request Group
Menu
Application
Concurrent Prog.
Concurrent
Prog.
Oracle Schema
Executable
Forms
62
Why Users An application user enters this user name to sign on to Oracle Applications
User-name Constraints must not contain more than one word
use only alphanumeric characters
Password Constraints 5 - 100 Characters
use only alphanumeric characters
Can we define same user again No,
First time login User need to change the password
Can System administrator access User Password can set an initial password or change an existing password, but cannot access the
users chosen password.
default Length of Password 5 characters
Oracle R12 - AOL by Dinesh Kumar S
63
Profile Options::
1) Signon Password Length
- set the minimum length of user password
2) Signon Password Hard to Guess
- Use to Set rules for Choosing password. The rules as below.
The password contains at least one letter and at least one number.
64
Responsibility
Select the name of a responsibility you wish to assign to this application user. A
responsibility is uniquely identified by application name and responsibility name.
Security Group
This field is for HRMS security only.
Can we Delete a Responsibility
You cannot delete a responsibility because this information helps to provide an audit trail.
You can deactivate a user's responsibility at any time by setting the End Date to the
current date.
65
66
67
68
Executable
Table:
FND_EXECUTABLES
~ APPLICATION_ID
~ EXECUTABLE_ID
69
FND user
Responsibility
Data Group
Request Group
Menu
Application
Concurrent Prog.
Concurrent
Prog.
Oracle Schema
Executable
Forms
70
Why?
To Map executable source file you want to use with concurrent programs.
Source File <---> Concurrent Program
How executable is Identified?
Application Name + Program Name = Executable
Execution MethodThe execution method cannot be changed once the concurrent program executable has
been assigned to one or more concurrent programs in the Concurrent Programs window.
71
72
- Do not include spaces or periods ( ) in the execution file name, unless the execution
method is PL/SQL stored procedure or Request Set Stage Function.
- The maximum size of an execution file name is 60 characters.
Subroutine Name Enter the name of your C or Pro*C program subroutine here. Constraints as below
- Do not use spaces or periods (.) in this field.
- Only immediate programs or spawned programs using the Unified C API use the
subroutine field.
Stage Function Parameters The Stage Function Parameters button opens a window that allows you to enter
parameters for the Request Set Stage Function. This button is only enabled when you
select Request Set Stage Function as your Execution Method.
73
Location:
74
Concurrent Program
Table:
FND_CONCURRENT_PROGRAMS
~APPLICATION_ID
~CONCURRENT_PROGRAM_ID
FND_CONCURRENT_PROGRAMS_TL
~APPLICATION_ID
~CONCURRENT_PROGRAM_ID
~LANGUAGE
75
FND user
Responsibility
Data Group
Request Group
Menu
Application
Concurrent Prog.
Concurrent
Prog.
Oracle Schema
Executable
Forms
76
Concurrent Manager
Why?
It govern and control the Concurrent program and slave concurrent managers.
How many Concurrent Managers?
The Oracle e-Business suite has three important master Concurrent Managers:
1) Internal Concurrent Manager (ICM)
2) Internal Concurrent Manager (SM)
3) Conflict Resolution Manager (CRM)
Internal Concurrent Manager (ICM)The master manager is called the Internal Concurrent Manager (ICM) because it controls
the behavior of all of the other managers, and because the ICM
is the boss, it must be
running before any other managers can be activated.
The main functions of the ICM are to start up and shutdown the individual concurrent
managers, and reset the other managers after one them has a failure.
77
78
79
Executable:
When the execute is selected automatically this section will be filled.
Executable: Options
In case of running Report Executable, we can choose options to print like Landscape /
portrait (or) we can control the dimension like pagesize etc.
Executable: Priority
The concurrent managers process requests for this program at the priority you assign
here.
If you do not assign a priority, the user's profile option Concurrent:Priority sets the
request's priority at submission time.
80
Request Block
Request: Type
Associate your program with a predefined request type. The request type can limit which concurrent
managers can run your concurrent program.
Request: Incrementor
Used only by oracle internal developers.
MLS Function: (Multilingual Concurrent Request)
It will allow the user to run the program multiple times.
Why Multiple times either we can schedule the concurrent program? this question arise to us.
Multiple times in this context means in multiple languages. So a single program can run in multiple
language.
Note**
Beginning with Release 12.1, MLS functions
support
multiple
Oracle R12can
- AOL
by Dinesh
Kumar Sterritories and numeric character 81
sets as well as multiple languages.
Output Window
Note**
An appropriate printer driver that handles HTML or
PDF files.
Save: Default option, this will save the output in OS format.
Print:
To send the output to printer to print the same.
Style:Portrait/Landscape options.
Printer:If u want to print the output to a specific printer choose this option.
Business Events Region
Concurrent programs can be integrated with the Business Event System in Oracle Workflow.
83
84
Conflict Domain:
If you want to restrict any data which cannot be simultaneously access or update by two
concurrent program conflict domain data should be mention.
Conflict domain data can be created in the form
Navigation: System Administrator Concurrent Conflict Domains
Security Group:
This filed can be used only for HRMS security.
Seq: To Specify the sequence in which program receives input values from concurrent
manager.
Parameter: The parameter variable name.
Description: Description of the parameter (or) detail info about the parameter.
OracleitR12
Kumar
S
Enabled: If a parameter is disabled
will- AOL
not by
beDinesh
visible
during
concurrent program
submission.
85
Value set::
If a parameter to be validated, a value set can be used. We can use only 3 types of value
sets.
i.
ii.
iii.
Independent
Table
Non-Validated
Since value set field is mandatory, what should be the value to be provided if no
validation required for the parameter?
For a non-validated parameter we can assign Default Value.
86
Default value::
Valid Values
Description
Constant
Profile
SQL Statement
Segment
Required: To make the parameter mandatory for the request this option is used.
Enable Security: If security rules enabled for the value set this option can be used.
Range: If we want to validate the parameter against another parameter we need to provide
range as low or high.
For Example, If we want to end date an employee record, we have 2 date parameters,
then we need to do following validation for Effective_Start_date. Set range to low with
respective to Effective_End_Date.
87
Display Size: This represents the field length of the parameter in request submission
window. By default all value sets have 240 chars as length. If more than that the
characters will be truncated.
Description: Value description of the parameter.
Concatenated Description Size: User see this value in the parameter description
window.
Token:
This is one of the important parameter when the execution file is of type reports. The
parameter name defined in the RDF should be given in this field.
88
Monitoring Requests
Navigation: System Administrator Requests
89
lookup_code,
meaning
fnd_lookup_values
lookup_type = 'CP_PHASE_CODE'
AND LANGUAGE = 'US'
AND enabled_flag = 'Y';
LOOKUP_CODE
MEANING
Completed
Inactive
Pending
Running
Oracle R12 - AOL by Dinesh Kumar S
90
lookup_code, meaning
fnd_lookup_values
lookup_type = 'CP_STATUS_CODE'
AND LANGUAGE = 'US'
AND enabled_flag = 'Y';
Value
Meaning
Disabled
Paused
Terminated
Waiting
No Manager
Standby
Normal
Suspended
Terminating
Cancelled
Error
Scheduled
Warning
On Hold
Normal
Waiting
Resuming
Normal
91
Submitting a Requests:
92
Request Set
Single Request
Request Set
SEQ
10
20
30
Oracle R12 - AOL by Dinesh Kumar S
93
Request Sets:
Execution of multiple concurrent program one by one or in parallel, with passing one
program output as input to other program in sequence or executing in a sequence order.
How to create Request set?
Step 1
Step 1
Step 1
Stage 1
Stage 2
Stage 3
Step 2
Step 2
Create Request Set using 2 methods
94
Stage Organization:
Requests can be organized in two ways,
(1) Parallel Execution
(2) One by one [Sequence] Execution
Parallel Execution:
When we want to run all the requests simultaneously (or) in Parallel within a stage parallel
execution method is used.
Note** This should be used only,
- If the requests within a stage doesn't have any dependency with other like one request
executing based on output of another etc.
Stage 1
Request 1
Request 2
Request 3
Request 4
Oracle R12 - AOL by Dinesh Kumar S
95
Stage 2
Request 1
Request 2
Stage 3
Request 3
Request 4
Note**
Not only Requests executes in order even stages executes in order. Unless
stage1 is completed stage 2 & stage 3 will not be executed.
A stage is not complete when all the requests within the stage are completed.
96
Stage Statuses:
A stage can be completed wit the following statuses.
(a) Success
(b) Warning
(c) Error
Linking Stages:
Based on the above statuses we can link stages (or) setup sequence of execution
of stages.
Stage 3
Error
Stage 1
Request 2
Success
Request 1
Warning
Request 3
Request 4
Stage 2
Request 5
Stage 4
97
98
Active Dates [From To]: These are the dates for which the request set will be active.
If the TO field is left blank represents it will be active forever.
Print Together: If this check box is checked, after completion of the request, the
details of all the request [together] will be sent to printer for printing.
Allow Incompatibility: It will allow the system administrator to specify lists of programs
incompatible with this request set.
Oracle R12 - AOL by Dinesh Kumar S
99
Step 2: Select execution option for requests to be executed. In this case I'm
selecting Sequential order.
100
Step 3: Select a Decision when the request sets ends with status ERROR. .
101
Step 5: Select option when Output should be generated for the request.
Step 6: Lists the concurrent programs in a sequence order of execution. Any concurrent
program of any application can be included.
102
Step 7: After clicking finish button, the following note will be displayed to the user.
103
Step 8: View the default stage details. Click Define stages button.
Since we have define the request set using wizard, by default all the request will be
created in single stage.
104
Step 9: To view how stages are linked click Link Stages button.
By Default, when the Stage statuses in WARNING or SUCCESS,
the option Stage to Proceed to On will be defaulted to same program name.
105
Stage 1
Stage 2
Stage 3
106
107
108
109
Step 4: Similarly repeat steps 2 to Step 3 to Define all Stages and associate programs for
each request.
Stage 2
Stage 3
110
111
112
113
114
If you want to
execute the
request
immediately click
option As soon as
possible.
115
116
117
118
Profile Options:
What is User Profile option ?
A Profile option is set of values/options, which is used to direct the functioning of Oracle application.
Why Profile Option?
- To control & manage transactions and activities in oracle application.
- To make the Oracle application flexible in the way it functions.
- Provides option to define custom rules for users.
Usage of Profile options.
Scenario 1: We have 100 users defined in oracle application, Consider all users have responsibility
US Self Service Purchasing. Now we have a new requirement, out of 100 only 30 should access the
responsibility and the responsibility should not be end dated for 70 users.
Scenario 2: We all know that system administrator responsibility have Admin privileges to
create/define new objects in oracle application. Also, we can assign this responsibilities to any number
of users say 100. Now business came up with an requirement, we need to provide access to only 20
users to assign secure responsibility to other users even though all have system admin responsibility.
Scenario 3: Consider I have a Purchasing Buyer responsibility, I want to provide read only access
i.e. users should not have access to modify/change/edit anything using that responsibility.
Scenario 4: Suppose we want to develop a customization and that custom logic should work only for
Organizations for which a custom profile is enabled at organization level. If we want to restrict further
within the Organization, we can restrict by setting the profile @ Responsibility level.
Oracle R12 - AOL by Dinesh Kumar S
119
Scenario 6: Consider in our manufacturing company, we have 1000 of customers who provides orders
frequently. In general, all the manufacturing company will have top level of customers. This
manufacturing company is using Oracle apps. In a manufacturing company we have lots of item
categories like high value items, mid-range items, low value items etc. Business came up with a
requirement, when any top level customer orders high value item the system should automatically
provide 15% discount for the customers. In this scenario we will define profile option common to top
level customers.
Scenario 7: Consider we have 20 requester s, who are given access to create requisitions. Now
business wants to provide access to each requester that they can only modify/change requisition
created by them and they should not be allowed to edit other requester s requisition..
Scenario 8: In oracle application we have a Debug functionality, suppose business wants to enable
this functionality only for Developers. This can be achieved via profile options.
Scenario 9: Consider, we have created a custom report, now business wants for execute this reports
only for certain organization. This can be achieved via profile options.
These are only some scenarios, we can use the profile option functionality to achieve any custom
functionality or even we can bypass oracle seeded functionality.
120
Profile Types:
Profile Levels:
Site Level
Application Level
Organization Level
Responsibility Level
User Level
Profile Hierarchy:
(High) User --> Responsibility --> Organization --> Application --> Site (Low)
Level
Level ID
Site
10001
Application
10002
Responsibility
10003
User
10004
Server
10005
Organization
10006
121
How To Check If a Profile Option Is Set In Oracle Applications? (Ref. Note: 470102.1)
We can check in 3 ways,
(1) Option 1:
(2) Option 2:
(3) Option 3:
122
123
124
How To List E-Business Suite Profile Option Values For All Levels Using SQLPlus?
(ref Note: 201945.1 )
1. Enable Spooling
2. Execute the script
set long 10000
set pagesize 500
set linesize 160
column SHORT_NAME format a30
column NAME format a40
column LEVEL_SET format a15
column CONTEXT format a30
column VALUE format a40
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')),
Oracle R12 - AOL by Dinesh Kumar S
'UnDef') LEVEL_SET,
125
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
Oracle R12 - AOL by Dinesh Kumar S
126
Table Used:
FND_PROFILE_OPTIONS
FND_PROFILE_OPTIONS_TL
FND_PROFILE_OPTION_VALUES
Navigation: (Set up Profile)
System Admin Profile System
127
128
129
Hierarchy Type:
Hierarchy types enable system administrators to group and set profile options according to
their business needs or the needs of the installation.
The default hierarchy type is Security.
Types of Hierarchy:
Server
Server + Responsibility
Organization
Security
Oracle R12 - AOL by Dinesh Kumar S
130
The Server hierarchy type is used when the system needs to determine the server on which the
user's session is running.
For Example, the profile "Applications Web Agent can be used for cookie validation, the setting
may be different for local servers and external servers.
We can control the value of a profile option for a particular combination of a server and
responsibility.
131
Profiles that use the Security hierarchy type follow the traditional hierarchy:
Application > Responsibility > User.
Profiles using the Server type use the hierarchy: Site > Server >User.
Profiles using the Organization type use the hierarchy: Site > Organization > User.
Site >
132
If you want your end user to be able to update profile option values in the Profile Values
window, you must provide user visible and updatable access at the User level here.
Visible - Indicate whether your system administrator can see your profile option while setting user
profile option values for the specified profile level.
Updatable - Indicate whether your system administrator can change the value of your profile
option while setting user profile option values for the profile level you select.
133
134
135
Active Dates
SQL Validation
If you want your profile option to provide a list of values (LOV) the following syntax to be
used in the SQL Validation field.
To validate your user profile option, select the profile option value into the fields.
i.
:PROFILE_OPTION_VALUE
ii.
:VISIBLE_OPTION_VALUE
136
Syntax:
137
If you specify more than one column in your COLUMN option, the LOV displays the columns in
the order you specify in your COLUMN statement
Column aliases cannot be longer than 30 characters. Larger identifiers will cause errors.
SQL=SELECT FULL_NAME
,EMPLOYEE_NUMBER
INTO
:PROFILE_OPTION_VALUE
, :VISIBLE_OPTION_VALUE
FROM PER_ALL_PEOPLE_F
ORDER BY EMPLOYEE_NUMBER"
138
Note**
You can use GROUP BY or HAVING clauses in your SQL statement, but only in your main query;
you cannot use them in sub-queries. You can use DISTINCT and ORDER BY clauses as you
would normally.
Set functions such as MIN(), MAX(), SUM(), and COUNT() can be used in the SELECT or HAVING
clause, but you cannot use them on the columns that you select into the
PROFILE_OPTION_VALUE or VISIBLE_OPTION_VALUE fields.
Though you can use a fairly complex WHERE clause and/or an ORDER BY clause in your SQL
definition, you cannot use UNION, INTERSECT, or MINUS in your main query. If you need a
UNION, INTERSECT, or MINUS to select the proper values, you should create a view on your
tables, then select from the view, or include these operators as part of a sub-query.
In addition, you cannot use a CONNECT BY or any other operation that would come after the
WHERE clause of a SELECT statement.
Finally, if you use OR clauses, you should enclose them in parentheses.
139
COLUMN:
Lists the names of columns (or column aliases) you want to display in your LOV window, the
order in which to display them, and their display widths.
If you specify more than one column in your COLUMN option, your LOV displays the columns in
the order you list them. This order can differ from the column order in your SQL statement.
You must specify column widths in the COLUMN= "..." parameter, although any column widths
you specify in the HEADING="..." option below override these values.
You can specify static or dynamic column widths in your COLUMN option.
o
Static column width by following the column name with the desired width.
Dynamic width column by placing an asterisk instead of a number in the parentheses
following the column name
140
ORDER BY EMPLOYEE_NUMBER"
Static & Dynamic Column width,
SQL=SELECT FULL_NAME
,EMPLOYEE_NUMBER
INTO
:PROFILE_OPTION_VALUE
, :VISIBLE_OPTION_VALUE
FROM PER_ALL_PEOPLE_F
ORDER BY EMPLOYEE_NUMBER
141
SQL=SELECT FULL_NAME
,EMPLOYEE_NUMBER
INTO
:PROFILE_OPTION_VALUE
, :VISIBLE_OPTION_VALUE
FROM PER_ALL_PEOPLE_F
ORDER BY EMPLOYEE_NUMBER
COLUMN= \EMPLOYEE
NAME\(100)
142
TITLE:
Text you want to display centered and highlighted on the top line of your LOV window i.e. the
window title message.
We can specify a Message Dictionary token in your LOV definition by providing the application
short name and the message name.
Any title starting with "*" is treated as a Message Dictionary name, and the message contents
are substituted for the title.
SQL=SELECT FULL_NAME
,EMPLOYEE_NUMBER
INTO
:PROFILE_OPTION_VALUE
, :VISIBLE_OPTION_VALUE
FROM PER_ALL_PEOPLE_F
Note**
FND: is Application Short Name
followed by message name.
ORDER BY EMPLOYEE_NUMBER
143
HEADING:
Lets you specify a list of column headings and column widths, separated by spaces or commas.
There should be one heading in the HEADING="..." parameter for each column in the
COLUMN="..." parameter.
We can suppress headings in your LOV window altogether by setting HEADING="N".
If you do not provide an explicit TITLE and HEADING in your SQL validation, your profile has
TITLE="user_profile_option_name" and HEADING="N" appended to the definition at runtime.
SQL=SELECT FULL_NAME
,EMPLOYEE_NUMBER
INTO
:PROFILE_OPTION_VALUE
, :VISIBLE_OPTION_VALUE
FROM PER_ALL_PEOPLE_F
ORDER BY EMPLOYEE_NUMBER
144
Value Sets
145
About Valueset:
Oracle Application Object Library uses values, value sets and validation tables as important
components of key flexfields, descriptive flexfields, and Standard Request Submission.
We define value sets first, either before or while you define your flexfield segment structures.
146
Choose List of Values if your value set should not provide the LongList feature in Oracle
Forms applications.
Choose Long List of Values if your value set should provide the LongList feature in Oracle
Forms Applications.
This feature requires a user to enter a partial segment value before the list of values
retrieves all available values.
You may not enable LongList for a value set that has a validation type of None.
Choose Poplist if your value set should not provide the LongList feature in Oracle Forms
applications, but should provide a poplist in Oracle Self-Service applications.
Oracle R12 - AOL by Dinesh Kumar S
147
Security Type:
Specify the Security Type you plan to use with any segments that use this value set.
Security does not apply to value sets of validation type None, Special, or Pair.
Flexfield value security is not available for Translatable Independent and Translatable
Dependent value sets.
No Security
Hierarchical Security
Non-Hierarchical Security
148
No Security
Hierarchical Security
Hierarchical security is enabled. With hierarchical security, the features of value security
and value hierarchies are combined. With this feature any security rule that applies to a
parent value also applies to its child values.
Within a hierarchical tree of values, a value is subject to a security rule if any parent above
it is subject to that security rule.
Non-Hierarchical Security
Security is enabled, but the rules of hierarchical security do not apply. That is, a security
rule that applies to a parent value does not "cascade down" to its child values.
149
Valueset usage:
Valueset can be associated with below Application objects,
150
Character
Date
DateTime
Number
Time
Standard Date
Standard DateTime
151
Maximum & minimum value for the value set can be given.
Choosing the maximum size for your value set depends on what flexfield you plan to use
with your value set.
Oracle Applications does not allow you to assign a value set whose values would not fit in
the flexfield table.
152
153
154
Decide whether your users need a predefined list of values from which to choose, or
whether they can enter any value that fits the value set formatting conditions.
If you want to provide a list of values, you choose from independent, dependent, or table
value sets.
If you do not want a list, use a non-validated (None) value set.
Once we have chosen to provide a list of values for a segment, then we choose whether to
use independent, dependent, or table validation.
Use a dependent set if you want your segment values to depend upon the value chosen in a
prior independent segment.
If we already have suitable values in an existing table, you should choose a table set.
Oracle R12 - AOL by Dinesh Kumar S
155
156
Note**
The Accounting Flexfield only supports Independent, Dependent, and Table validation.
We cannot change the validation type of an existing value set, since your changes affect all
flexfields and report parameters that use the same value set.
Oracle R12 - AOL by Dinesh Kumar S
157
Table: FND_FLEX_VALUE_SETS
Short Code
Validation Type
Special
Pair
Independent
Dependent
Transparent Dependent
Transparent Independent
None
Table
158
None:
When you want to allow users to enter any value and it meets the value set formatting
rules.
Because a None value set is not validated, a segment that uses this value set does not
provide a list of values for your users.
A segment that uses this value set (that is, a non-validated segment) cannot use
flexfield value security rules to restrict the values a user can enter.
159
160
Independent:
The meaning of a value in this value set does not depend on the value of any other
segment.
Independent values are stored in an Oracle AOL table.
161
162
Table:
It provides a predefined list of values like an independent set, but its values are stored in an
application table.
use a table-validated set when you have a table whose values are already maintained in an
application table.
Table validation also provides some advanced features such as allowing a segment to
depend upon multiple prior segments in the same structure.
163
164
Edit Information:
165
Dependent:
A dependent value set is similar to an independent value set, except that the available values in
the list and the meaning of a given value depend on which independent value was selected in a
prior segment of the flexfield structure.
You must define your independent value set before you define the dependent value set that
depends on it.
166
167
Edit Information:
168
169
170
Edit Information:
171
When you define a special validation value set, you specify two things:
For example, the Validate event occurs once a user enters a value, and your
function would validate that value.
We can use a special validation value set to let your users enter an entire key flexfield
combination within a single segment of a descriptive flexfield or report parameter.
For example, you may want to pass concatenated key flexfield segments as a parameter to a
report.
flexfield routines to perform flexfield data entry and validation functions on segment values
or report parameters.
172
Edit
Usage
Load
Status
Active
Active
173
Event Name
Validate
Usage
Calls routine whenever the users cursor leaves the segment or closes
the popup window, (or) whenever a default value is copied into the
segment or report parameter.
The Validate event also fires after a query to generate value
descriptions for queried values.
You usually use VALID(R) for your Validate event.
Status
Active
Insert/Update
--
Query
--
Edit/Edit
--
ListVal
--
174
:!ID
:!VALUE
:!MEANING
!DIR
:!ID
You can use :!ID to pass different information depending upon the circumstances,
For flexfield routines, :!ID can pass either a combination ID number of an entire
combination of segment values (key flexfields only)
It can pass a concatenated string of the individual flexfield segment values (either key or
descriptive flexfields).
Oracle R12 - AOL by Dinesh Kumar S
175
When you use :!ID to pass a concatenated string of individual segment values, :!ID should
contain the hidden ID values.
For a foreign key flexfield when using VALIDATE=FULL argument then,
Use ID=:!ID argument
Not Use DATA_FIELD=:!ID argument.
For a foreign key flexfield when using VALIDATE=PARTIAL (or NONE) argument then,
Use DATA_FIELD=:!ID
Not Use ID=:!ID argument
With the #FND POPIDR, LOADIDR, or VALIDR routines for range flexfields,
Use DATA_FIELD=:!ID
Not Use ID=:!ID
176
:!VALUE
:!MEANING
!DIR
Use !DIR for the NAVIGATE argument of key and descriptive flexfields routines.
!DIR allows the flexfields routines to determine the proper navigation direction when you
use a flexfield as a segment value set.
Do not use a colon when you specify !DIR for POPID or other flexfield routines.
Oracle R12 - AOL by Dinesh Kumar S
177
178
Data Entry
Data Query
Data Validation
179
180
181
Edit Information:
182
183
184
Bind Variable
Usage
:$FLEX$.value_set_name
:$PROFILES$.profile_option
:block.field
185
:$FLEX$.Value_ Set_Name
Value_Set_Name is the name of either the value set for a prior segment. The segment name of
a prior segment in the same flexfield. Parameter window that you want your validation table
based values to depend on.
The $FLEX$ mechanism uses the closest prior segment with either a matching value set name
or segment name (it looks for the value set name first, and uses the segment name second if
there are no matching value set names).
Value_Set_Name is casesensitive.
We can only use letters, numbers, and underscores (_) in your value set names if you want to
use them with a :$FLEX$.Value_Set_Name clause.
We cannot use quotes, spaces, or other special characters in these value set names.
You can specify more than one :$FLEX$.Value_Set_Name in a single WHERE clause, thereby
creating a segment whose list of possible values depends upon more than one previous
segment.
When you specify :$FLEX$.Value_Set_Name, you can also explicitly choose which column for
which you want :$FLEX$.Value_Set_Name to return a value. You do this by specifying :
$FLEX$.Value_Set_Name.OUTPUT, where OUTPUT can be ID, VALUE, or MEANING (to return the
186
value of the description column) Oracle R12 - AOL by Dinesh Kumar S
:block.field
block.field is the SQL*Forms/Oracle Forms name of a field on the form where your descriptive
flexfield appears.
Using this :block.field argument, however, gives you the same segments that would normally appear,
but changes the contents of the value set attached to the segment depending on
what appears in your :block.field.
In some cases, you may wish to use a :block.field value set instead of a descriptive flexfield reference
field with many different contextsensitive structures.
Note that if you use this argument, you must have the same :block.field on every form where a value
set based on this validation table could be used. For example, if the same flexfield appears on seven
forms, the all seven forms must have this block.field.
Similarly, if you share your value set among more than one flexfield, then all forms that use any of
those flexfields must have this block.field.
187
:$PROFILES$.profile_option
Profile_option_name is the internal option name of a user profile option such as CONC_COPIES
(for Concurrent:Report Copies) or GL_SET_OF_BKS_ID.
For example, you could define your WHERE clause as:
WHERE SET_OF_BOOKS_ID = :$PROFILES$.GL_SET_OF_BKS_ID
:NULL suffix
Use the :NULL suffix to make your bind variable optional, that is, allow null values.
Instead of :block.field, :$PROFILES$.Option_name, or :$FLEX$.Value_set_name, you would use
:block.field:NULL, $PROFILES$.Option_name:NULL, or :$Flex$.Value_set_name:NULL, respectively.
For example, if your value set name is Car_Maker_Name_Value_Set, you would use :
$FLEX$.Car_Maker_Name_Value_Set:NULL.
188
Flexfield
A flexfield is a field made up of subfields, or segments. A flexfield appears on your form as
a popup window that contains a prompt for each segment. Each segment has a name and
a set of valid values.
There are two types of flexfields:
(1) key flexfield
(2) Descriptive flexfield
189
Benefits of Flexfields
Flexfields provide you with the features you need to satisfy the following business needs:
Customize your applications to conform to your current business practice for accounting
codes, product codes, and other codes.
Customize your applications to capture data that would not otherwise be tracked by your
application.
Have "intelligent fields" that are fields comprised of one or more segments, where each
segment has both a value and a meaning.
Rely upon your application to validate the values and the combination of values that you
enter in intelligent fields.
Have the structure of an intelligent field change depending on data in your form or
application data.
Customize data fields to your meet your business needs without programming.
190
Key Flexfield
The Oracle Applications store these "codes" in key flexfields. Key flexfields are flexible enough to
let any organization use the code scheme they want, without programming.
When your organization initially installs Oracle Applications, you and your organization's
implementation team customize the key flexfields to incorporate code segments that are
meaningful to your business.
To run a business we follow a structure in Finance, Inventory, HRMS etc. For Example, consider
Bajaj Motor Vehicles, their head office is in Delhi and it has its other branches in Mumbai, Kolkata,
Chennai and Bangalore. In each center they have many branches say 100 branches each. Now lets
ask some questions to our self.
Is it possible for a person working in Delhi able to identify the location in chennai?
Practically it is not possible, because that person will not be familiar with the names in chennai
location.To avoid the confusion, every business should have a structure created as below.
Delhi.Chennai.LOCATION_1
Now the person will easily identify the location. So based on the business requirement the
structure will be created.
Will all the Oracle application modules have flexfield and do we need to create structure?
No, not all modules will have a structure or Key flexfield defined. Only Some modules have KFF.
When implementing Multi-Org you will be understanding it better.
Oracle R12 - AOL by Dinesh Kumar S
191
192
Flexfield segments
Note** in all the base tables you can see Segment Columns where the flexfield value
will be stored.
Oracle R12 - AOL by Dinesh Kumar S
193
For those application flexfields that support more than one structure (such as the multiple charts of
accounts in the Accounting Flexfield), you can create a new structure for your flexfield by inserting a
row. If you are defining the first structure for your flexfield, select the default flexfield structure that
appears automatically. If you are modifying an existing structure, use your cursor keys to select the
title of the flexfield structure you want.
194
Check the Enabled check box so that this structure may be used in your key flexfield. You cannot
delete structures from this window because they are referenced elsewhere in the system, but you can
disable them at any time. A structure must be enabled before it can be used.
Select the character you want to use to separate your flexfield segment values or descriptions. This
separator will appear whenever your application forms display concatenated segment values or
descriptions.
It is recommended that you do not use a character as your segment separator if you expect that
character to appear frequently in your segment values or descriptions.
If you do use a character that appears in your segment values or descriptions, then that character
will be preceded by a backslash (\) when it appears in a value or a description. A backslash in your
values will be preceded by another backslash.
195
Select the Cross-Validate Segments check box if you want to cross-validate multiple segments
using cross-validation rules. You can define cross-validation rules to describe valid
combinations using the Cross-Validation Rules form. Uncheck the box if you want to disable
any existing cross-validation rules
Indicate whether you want to freeze your rollup group definitions. If you do, you prevent
users from modifying rollup groups using the Segment Values form. You can freeze rollup
groups before or after you define your flexfield structure.
If you want to allow dynamic inserts, check the Allow Dynamic Inserts check box. You would
allow dynamic inserts of new valid combinations into your generic combinations table if you
want users to create new combinations from windows that do not use your combinations
table. You should prevent dynamic inserts if you want to enter new valid combinations only
from a single application window you create to maintain your specific combinations table.
You can update this field only if your application flexfield has been built to allow dynamic
inserts, and the flexfield has been defined in the Register Key Flexfields form with Dynamic
Inserts Feasible checked. Otherwise this field is display only.
Compile your frozen flexfield by choosing the Compile button. Your changes are saved
automatically when you compile.
196
197
Key flexfield by
Owing Application:
198
199
Descriptive Flexfield
Descriptive flexfields provide customizable "expansion space" on your forms. You can use descriptive flexfields
to track additional information, important and unique to your business, that would not otherwise be captured
by the form.
Descriptive flexfields can be context sensitive, where the information your application stores depends on other
values your users enter in other parts of the form.
A descriptive flexfield appears on a form as a single-character, unnamed field enclosed in brackets. Just like in a
key flexfield, a pop-up window appears when you move your cursor into a customized descriptive flexfield.
A DFF requires one column for each possible segment and one additional column in which to store structure
information (that is, the context value). The descriptive flexfield columns are usually named ATTRIBUTEn where
n is a number.
Oracle R12 - AOL by Dinesh Kumar S
200
DFF
201
202
203
204
Click OK
Note** if you want any validation to be enabled, assign a value set else
leave it blank as it is optional.
205
206
207
DFF Enabled
DFF Enabled
208
209