You are on page 1of 209

Preface

In this book I have explained about Oracle R12 – AOL
(Application Object Library) .a complete beginners guide
for oracle apps.
Hope this will be a great start for beginners.
Topic:

Oracle R12 – AOL
(Application Object Library)

Author:

Dinesh Kumar S

Email:

Dineshcse86@Gmail.Com

Official Post:

www.Planet-Source-Code.com

Oracle R12 - AOL by Dinesh Kumar S

1

Oracle Apps R12
e-Business Suite

Oracle R12 - AOL by Dinesh Kumar S

2

E-Business Suite Architecture
Client Tier

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

Oracle Apps 11i

Oracle Apps R12

3

File System in Oracle Apps

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

4

File System in 11i

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

Oracle R12 - AOL by Dinesh Kumar S

5

File System in R12

Oracle R12 - AOL by Dinesh Kumar S

6

Application Object Library
(AOL)

Oracle R12 - AOL by Dinesh Kumar S

7

Why AOL?



Collection of pre-built application components & facilities.
Contains shared components - database objects, forms, reports, libraries.
Coding standards use AOL.

Roles of AOL



AOL links all objects of Oracle application.
It stores and contains information and details about the data in file system.
It is the backbone of oracle apps, which integrates all the objects and derives a
relation between them.

Oracle R12 - AOL by Dinesh Kumar S

8

Oracle Security Architecture

FND user
Responsibility

Data Group

Request Group

Menu

Application

Concurrent Prog.
Concurrent
Prog.

Form & Sub functions

Oracle Schema

Executable

Forms

Oracle R12 - AOL by Dinesh Kumar S

9

FND Applications

Navigation

Application → Register

Oracle R12 - AOL by Dinesh Kumar S

10

FND user
Responsibility

Data Group

Request Group

Menu

Application

Concurrent Prog.
Concurrent
Prog.

Form & Sub functions

Oracle Schema

Executable

Forms

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

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

View the Existing Applications & its base path.

When creating Custom application.

Oracle R12 - AOL by Dinesh Kumar S

13

Below you can see the screen shot of oracle Purchasing Application definition.

Oracle R12 - AOL by Dinesh Kumar S

14

Oracle UserName
Table:

FND_ORACLE_USERID
~ ORACLE_ID

Navigation

Security → Oracle → Register

Oracle R12 - AOL by Dinesh Kumar S

15

FND user
Responsibility

Data Group

Request Group

Menu

Application

Concurrent Prog.
Concurrent
Prog.

Form & Sub functions

Oracle Schema

Executable

Forms

Oracle R12 - AOL by Dinesh Kumar S

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.

What if no ORACLE User name?
If you do not register and enable your ORACLE user name (or) if you disable a registered
ORACLE user name, your user cannot use Oracle Application Object Library features such
as menus and flex fields.
PASSWORD 

We need to enter Password while creating the ORACLE User name
Oracle User name Password should be Synchronized with Oracle Database.
(DATABASE PWD <-> APPLICATION PWD).

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

19

Default Oracle User-Names in oracle apps

Oracle R12 - AOL by Dinesh Kumar S

20

Data Group
Table:

Navigation

FND_DATA_GROUPS
~ DATA_GROUP_ID

Security → Oracle → DataGroup

Oracle R12 - AOL by Dinesh Kumar S

21

FND user
Responsibility

Data Group

Request Group

Menu

Application

Concurrent Prog.
Concurrent
Prog.

Form & Sub functions

Oracle Schema

Executable

Forms

Oracle R12 - AOL by Dinesh Kumar S

22

Data Group contains Applications associated with user names
Application includes Concurrent programs executes commands on application table
how to access application By using 'Username' && 'Password'
Role of username /ORACLE ID It determines the database tables and table privileges accessible by the corresponding application or
applications.
Oracle ID An application uses an ORACLE ID to access tables in the database. Each ORACLE ID allows
access to a predefined set of tables in the database.
Data Group
|
Application
(owns Concurrent pg)
|
Oracle Username ( DB Privilages - Select, Update, Delete )
|
Database
( Oralce 9i/10g/11g )
Oracle R12 - AOL by Dinesh Kumar S

23

Data Group Purpose 

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.

Using Data Group 

Using Data Group with Multiple Set of Books
Applications product (for example, Oracle Parables) that supports multiple sets of
books, where a different application is associated with each set of books.
For example, with two installations of Oracle Payables supporting two Sets of Books,
use data groups to indicate
which Oracle Payables Oracle username to access
from a certain General Ledger responsibility.

Using Data Group to Include Custom Application

Oracle R12 - AOL by Dinesh Kumar S

24

Can we Modify standard Data Group 

No, we cannot change / Delete Pre defined Values.
we can modify the Tool ORACLE username and description, or add new ApplicationORACLE username pairs to a Standard group.

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 ✔

Register the application using "Application form".
Assign Oracle Usearname with Application.

Oracle R12 - AOL by Dinesh Kumar S

25

Standard Data Group associated with Oracle ID APPS

Oracle R12 - AOL by Dinesh Kumar S

26

Request Security Group (Or) Request Group
Table:

FND_REQUEST_GROUPS
~ APPLICATION_ID
~ REQUEST_GROUP_ID

Navigation: Security > Responsibility > Request

Oracle R12 - AOL by Dinesh Kumar S

27

FND user
Responsibility

Data Group

Request Group

Menu

Application

Concurrent Prog.
Concurrent
Prog.

Form & Sub functions

Oracle Schema

Executable

Forms

Oracle R12 - AOL by Dinesh Kumar S

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

Oracle R12 - AOL by Dinesh Kumar S

29

what do Request Group contains - Individual reports & Concurrent programs
- Request set ( Collection of reports & Concurrent pgs )
- Request set stage fns. ( Used to calculate status of stage withing request set )
Request group Levels (a) Responsibility Level
Request group assigned to "RESPONSIBILITY"
(b) Form Level
Request group assigned a "CODE" & that code is passed as a parameter in submit
request wiundow.
Using Codes in Request Group You can use the code as an argument passed from a menu to the
standard submission form.
A request group code is simply an argument that is passed from a menu to a customized
standard submission form
When a menu that calls the standard submission form uses the
code, that form lists only those programs in the request group
identified by the code.

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

31

Menus
Table:

FND_MENUS
~ MENU_ID

Navigation: Application > Menu

Oracle R12 - AOL by Dinesh Kumar S

32

FND user
Responsibility

Data Group

Request Group

Menu

Application

Concurrent Prog.
Concurrent
Prog.

Form & Sub functions

Oracle Schema

Executable

Forms

Oracle R12 - AOL by Dinesh Kumar S

33

Menus:


A menu is a hierarchical arrangement of functions and menus of functions.
Each responsibility has a menu assigned to it.
A Responsibility becomes "Full Access", when it includes all the per-defined
functions in application included in the menu attached.
As it follows a hierarchical structure, a sub menu should be defined first (Lowest
level sub-menu) and attached to main menu.

Sequence:

It specifies the sequence in which the menu entries are aligned.
A menu entry with lowest sequence number appears before menu with higher
sequence number.

To understand the menu, we will navigate menu of Purchasing Module.

Oracle R12 - AOL by Dinesh Kumar S

34

Purchasing Module

Oracle R12 - AOL by Dinesh Kumar S

35

To view the hierarchical structure click "View Tree"

Oracle R12 - AOL by Dinesh Kumar S

36

Oracle R12 - AOL by Dinesh Kumar S

37

Web Based
Functions

Form
Functions

Oracle R12 - AOL by Dinesh Kumar S

38

Level 1

Level 2

Oracle R12 - AOL by Dinesh Kumar S

39

Level 3

Oracle R12 - AOL by Dinesh Kumar S

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:

Application > Function

Oracle R12 - AOL by Dinesh Kumar S

41

FND user
Responsibility

Data Group

Request Group

Menu

Application

Concurrent Prog.
Concurrent
Prog.

Form & Sub functions

Oracle Schema

Executable

Forms

Oracle R12 - AOL by Dinesh Kumar S

42

Oracle R12 - AOL by Dinesh Kumar S

43

Now lets walk through the below functions in
purchasing module
1) PO Change History
2) Purchase Order

Root Menu

(Non Form Based)
(Form Based)

: Purchasing Super User GUI

Oracle R12 - AOL by Dinesh Kumar S

44

Purchase Order

(Form Based)

Sub Menu: Purchase Orders: Subfunctions

Oracle R12 - AOL by Dinesh Kumar S

45

Now we have identified the form function "Purchase Orders"

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

User Function Name :
Enter a unique name that describes your function. You see
this name when assigning functions to menus. This name appears in the
Top Ten List of the Navigator window.

Oracle R12 - AOL by Dinesh Kumar S

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.

Maintenance Mode Support:
Reserve for Future.
Context Dependence

:

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.

Oracle R12 - AOL by Dinesh Kumar S

49

Non Form Based Function: Sub Function

Oracle R12 - AOL by Dinesh Kumar S

50

Oracle R12 - AOL by Dinesh Kumar S

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

Oracle R12 - AOL by Dinesh Kumar S

53

FND user
Responsibility

Data Group

Request Group

Menu

Application

Concurrent Prog.
Concurrent
Prog.

Form & Sub functions

Oracle Schema

Executable

Forms

Oracle R12 - AOL by Dinesh Kumar S

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

Oracle R12 - AOL by Dinesh Kumar S

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

Oracle R12 - AOL by Dinesh Kumar S

56

why Attribute control:
By using securing and excluding attributes, you can control user's access to data based on
their ID and their responsibility.
where?
They are first defined using the Web Applications Dictionary.
Attribute Security is applied @ 2 levels
(a) ROW LEVEL
(Securing Attributes)
(b) COLUMN LEVEL (Excluding Attributes)
Securing Attributes for Row-Level Security:
Securing attributes allow rows (records) of data to be visible to specified users or
responsibilities based on the specific data (attribute value) contained in the row.
Excluding Attributes for Column-Level Security:
Excluding attributes prevent certain columns of data from being visible to specified
responsibilities.

Oracle R12 - AOL by Dinesh Kumar S

57

Seeded Securing Attributes:

Attributes are defined using the Web Applications Dictionary.

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

For more information on Securing attributes please visit below link
http://download.oracle.com/docs/cd/A60725_05/html/comnls/us/aic/icxhsecr.htm

Oracle R12 - AOL by Dinesh Kumar S

58

Oracle Application Responsibility:

Oracle R12 - AOL by Dinesh Kumar S

59

Web Application

Oracle R12 - AOL by Dinesh Kumar S

60

Users
Table:

FND_USER
~ USER_ID

Oracle R12 - AOL by Dinesh Kumar S

61

FND user
Responsibility

Data Group

Request Group

Menu

Application

Concurrent Prog.
Concurrent
Prog.

Form & Sub functions

Oracle Schema

Executable

Forms

Oracle R12 - AOL by Dinesh Kumar S

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
user’s 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.

The password does not contain the username.

The password does not contain repeating characters.
3) Signon Password No Reuse profile option- set the minimum number of days that a user must wait before being allowed to
reuse a password.
4) Signon failure limit
- Number of times user is allowed to enter invalid credentials.
5) sign-on:audit level
- Tracking User activities
Direct Responsibilities Direct responsibilities are responsibilities assigned to the user directly.

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

65

Oracle R12 - AOL by Dinesh Kumar S

66

Oracle R12 - AOL by Dinesh Kumar S

67

Oracle R12 - AOL by Dinesh Kumar S

68

Executable
Table:

FND_EXECUTABLES
~ APPLICATION_ID
~ EXECUTABLE_ID

Oracle R12 - AOL by Dinesh Kumar S

69

FND user
Responsibility

Data Group

Request Group

Menu

Application

Concurrent Prog.
Concurrent
Prog.

Form & Sub functions

Oracle Schema

Executable

Forms

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

71

The possible execution methods are:
Host
Oracle Reports
PL/SQL Stored Procedure
Java Stored Procedure
Java Concurrent Program
Multi Language Function
SQL*Loader
SQL*Plus
Spawned
Immediate

Request Set Stage Function

The execution file is a host script.
The execution file is an Oracle Reports file.
The execution file is a PL/SQL stored procedure.
The execution file is a Java stored procedure.
The execution file is a program written in Java.
The execution file is a function (MLS function) that supports
running concurrent programs in multiple languages.
The execution file is a SQL script.
The execution file is a SQL*Plus script.
The execution file is a C or Pro*C program.
The execution file is a program written to run as a
subroutine of the concurrent manager. We recommend
against defining new immediate concurrent programs, and
suggest you use either a PL/SQL Stored Procedure or a
Spawned C Program instead.
PL/SQL Stored Function that can be used to calculate the
completion statuses of request set stages.

Oracle R12 - AOL by Dinesh Kumar S

72

Execution File NameName of the source file. Constraints in naming.
- Name entered here should match the file name exactly.

.

- 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.

Oracle R12 - AOL by Dinesh Kumar S

73

Lets Consider a sample Oracle Report Executable

Location:

Oracle R12 - AOL by Dinesh Kumar S

74

Concurrent Program
Table:
FND_CONCURRENT_PROGRAMS
~APPLICATION_ID
~CONCURRENT_PROGRAM_ID

FND_CONCURRENT_PROGRAMS_TL
~APPLICATION_ID
~CONCURRENT_PROGRAM_ID
~LANGUAGE

Oracle R12 - AOL by Dinesh Kumar S

75

FND user
Responsibility

Data Group

Request Group

Menu

Application

Concurrent Prog.
Concurrent
Prog.

Form & Sub functions

Oracle Schema

Executable

Forms

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

77

Standard Manager (SM)—
The SM functions to run any reports and batch jobs that have not been defined to run in
any specific product manager.
Examples of specific concurrent managers include the Inventory Manager, CRP Inquiry
Manager, and the Receivables Tax Manager.
Conflict Resolution Manager (CRM)—
The Conflict Resolution Manager (CRM) functions to check concurrent program definitions
for incompatibility rules. However, the ICM can be configured to take over the CRM's job
to resolve incompatibilities.
How to know ICM is started or not?
Using the OAM (Administrate Concurrent Manager).
Navigation: Login to the E-Business Home Page -> System Administrator -> Concurrent :
Manager/ Administer
How to start & stop the ICM ?
Log into Unix to apps login.
START Command: adcmctl.sh start apps/apps
Oracle R12 - AOL by Dinesh Kumar S

STOP Command: adcmctl.sh stop apps/apps

78

Navigation: Application Developer > Concurrent: Program

concurrent program window
Short Name: used to associate your concurrent program with a concurrent program
executable.
Application: determines what ORACLE user name your program runs in and where to
place the log and output files.
Enable: determines what ORACLE user name your program runs in and where to place
the log and output files.

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

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.

Request: Check box Options
SRS:
If a user wants to run Concurrent program in Standard Request Submission window, this options is
mandatory.
Allow Disabled Values:
Its options, If SRS is selected we can use this if needed.
This allows user to enter disabled/outdated values as parameters.
Run Alone:
If your program is incompatible with all programs in its logical database, including itself this option can
be choose
Enable Trace: This is a Trace option.
Restart on System Failure:
This option is selected by default, this is used when concurrent program should automatically be
restarted when the concurrent manager is restored after a system failure.
NLS Compliant:
Oracle R12
- AOL by
Kumar
S
This allows user to run concurrent program
defined
inDinesh
different
territory/Country.
If this option is blank82
then territory will default to the territory of the concurrent manager environment.

Output Window





Format:Valid output format are below.
HTML
PCL (HP's Printer Control Language)
PDF
PS (Post Script)
Text

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.

Oracle R12 - AOL by Dinesh Kumar S

83

Concurrent Program Parameters:

Oracle R12 - AOL by Dinesh Kumar S

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”.

Oracle R12 - AOL by Dinesh Kumar S

86

Default value::
Valid Values

Description

Constant

Any literal value we can assign.

Profile

The default value will be taken from user profile.

SQL Statement

Value based on any SQL query returning single value.

Segment

Same value will be copied from the prior segment of
parameter window.

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.

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

88

Monitoring Requests
Navigation: System Administrator → Requests

Oracle R12 - AOL by Dinesh Kumar S

89

In request window following actions can be performed.
VIEW
CHANGE
DIAGNOSE
OUTPUR

- View the status of your submitted requests
- Change processing options
- Diagnose errors
- View your request output

Concurrent Program Phase Codes
SELECT
FROM
WHERE

lookup_code,
meaning
fnd_lookup_values
lookup_type = 'CP_PHASE_CODE'
AND LANGUAGE = 'US'
AND enabled_flag = 'Y';

LOOKUP_CODE

MEANING

C

Completed

I

Inactive

P

Pending

R

Running
Oracle R12 - AOL by Dinesh Kumar S

90

Concurrent Program Status Codes
SELECT
FROM
WHERE

lookup_code, meaning
fnd_lookup_values
lookup_type = 'CP_STATUS_CODE'
AND LANGUAGE = 'US'
AND enabled_flag = 'Y';

Information about submitted requests can be found in
table: FND_CONC_REQ_SUMMARY_V

Value

Meaning

U

Disabled

W

Paused

X

Terminated

Z

Waiting

M

No Manager

Q

Standby

R

Normal

S

Suspended

T

Terminating

D

Cancelled

E

Error

F

Scheduled

G

Warning

H

On Hold

I

Normal

A

Waiting

B

Resuming

C

Normal

Oracle R12 - AOL by Dinesh Kumar S

91

Submitting a Requests:

Oracle R12 - AOL by Dinesh Kumar S

92

Two Types of Requests:
Single Request

Request Set
Single Request

If we want to execute a single concurrent program, we need to select type as Single
request.
Request Set
If we want to execute multiple concurrent program one by one in a sequence order,
we need to create a Request set and submit it using this type.
It is possible we can pass one concurrent programs output as input to another
concurrent program.
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

Steps to create Request set
Step 1: Creating Stages
Step 2: Linking Stages

Step 2
Create Request Set using 2 methods

(1) Request Set Wizard
(2) Manual Creation
Oracle R12 - AOL by Dinesh Kumar S

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

One by one [Sequence] Execution
When we want to run requests one by one in a sequence order, this execution
method is used.
Stage 1

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.

Oracle R12 - AOL by Dinesh Kumar S

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

Oracle R12 - AOL by Dinesh Kumar S

Stage 2

Request 5

Stage 4
97

Creating Request Set:
Navigation: System Administrator → Concurrent → Set
Method 1: Using Request Set Wizard.
Method 2: Manual Creation.

Oracle R12 - AOL by Dinesh Kumar S

98

Set: Define a name for your request set.
Set Code: This is used for internal purpose probably during coding.
Application: Specify the application to which request set belongs to.
Description: A brief description (or) Information about the request.
Owner: Its the user name who is defining the request set. It will be defaulted
automatically.

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

Method 1: Using Request set Wizard
Step 1: Click “Request Set Wizard Button”

Step 2: Select execution option for requests to be executed. In this case I'm
selecting Sequential order.

Oracle R12 - AOL by Dinesh Kumar S

100

Step 3: Select a “Decision” when the request sets ends with status ERROR. .

Step 4: Enter the details of the request set.. .

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

102

Step 7: After clicking finish button, the following note will be displayed to the user.

Step 8: Request Set Created Successfully.

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

105

Method 2: Manually Creating Request set
Considering the same programs in method 1. This time we are going to define separate
stage for each programs.

Stage 1

Stage 2

Stage 3

Stage 1: Buyer Listing.
Stage 2: Buyer's Requisition Action Reminder.
Stage 3: Item Detail's Listing.

Oracle R12 - AOL by Dinesh Kumar S

106

Step 1: Enter Request Set Details.

Oracle R12 - AOL by Dinesh Kumar S

107

Step 2: Define Stages

Oracle R12 - AOL by Dinesh Kumar S

108

Step 3: Assigning Request/Concurrent Program for the Request in a stage.
Click “Requests” button.

Oracle R12 - AOL by Dinesh Kumar S

109

Step 4: Similarly repeat steps 2 to Step 3 to Define all Stages and associate programs for
each request.
Stage 2

Stage 3

Oracle R12 - AOL by Dinesh Kumar S

110

Step 5: Link Stages by clicking “Link Stages” button.
If Stage 1 is success, it will execute stage 2.
If stage 2 is success, it will execute stage 3.

Oracle R12 - AOL by Dinesh Kumar S

111

Step 6: Assign Request set to a Request Group.

Oracle R12 - AOL by Dinesh Kumar S

112

Scheduling Requests / Request Sets

The request or request set can be scheduled using “SYSTEM ADMINISTRATION”
Responsibility.
Navigation:
Requests:
System Administration → Request Set → Schedule
Request Set:
System Administration → Requests → Schedule.
We can manage the schedules using System Administration responsibility.
Navigation: Manage Schedules

Oracle R12 - AOL by Dinesh Kumar S

113

Step 1: Select a Request to schedule.

Step 2: Select application name.

Oracle R12 - AOL by Dinesh Kumar S

114

Step 3: Defining Scheduling details.

If you want to
execute the
request
immediately click
option “As soon as
possible”.

Oracle R12 - AOL by Dinesh Kumar S

115

Step 4: Set Schedule Status Notification.

In case of Normal Completion, Warning or Error, a notification will be sent to the
Oracle User Email Address.

Oracle R12 - AOL by Dinesh Kumar S

116

Step 5: Request Output Delivery.
If the request output to be transmitted via Fax,Email, printer etc. the details
needs to be defined here.

Oracle R12 - AOL by Dinesh Kumar S

117

Step 6: Schedule Summary Details [Review Page].

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

120

Profile Types:

System Profile (Oracle Seeded Profile Options)
User Profile
(Custom Profile created by user)

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

Oracle R12 - AOL by Dinesh Kumar S

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:

Data Collection Set
Run Standard Concurrent Report
Using SQL Query

Option 1: Data Collection Set
1.Login to Oracle E-Business Suite
2.Select the responsibility "Oracle Diagnostics Tool" (see Note 358831.1
for details)
3.Select application "Oracle Application Object Library" from the
"Application" list of values
4.Click the "Advanced" tab
5.Scroll down to group "Data Collection"
Oracle R12 - AOL by Dinesh Kumar S

6.Select test name "Profile Options"

122

7.Input Parameters (* required)
Responsibility Id (LOV) *
Language Code *
Search Option *
Search Value *
8.Output contains
Product Installation Status and Patchset Level
Site Level Profile Options
Application Level Profile Options
Responsibility Level Profile Options
User Level Profile Options
References
Option 2: Run standard Concurrent Report
Run the standard concurrent report "User Profile Option Value" available from the "System
Administrator" responsibility.

Oracle R12 - AOL by Dinesh Kumar S

123

Option 3: Using SQL Query
SELECT po.user_profile_option_name,
po.profile_option_name "NAME" ,
DECODE (TO_CHAR (pov.level_id), '10001', 'SITE' , '10002', 'APP', '10003',
'RESP', '10004', 'USER', '???') "LEV",
DECODE (TO_CHAR (pov.level_id) , '10001', '', '10002',
app.application_short_name , '10003', rsp.responsibility_key, '10004', usr.user_name, '???')
"CONTEXT",
pov.profile_option_value "VALUE"
FROM fnd_profile_options_vl po,
fnd_profile_option_values pov,
fnd_user usr,
fnd_application app,
fnd_responsibility rsp
WHERE (po.profile_option_name = upper('&profil_name'))
AND pov.application_id = po.application_id
AND pov.profile_option_id = po.profile_option_id
AND usr.user_id(+) = pov.level_value
AND rsp.application_id(+) = pov.level_value_application_id
AND rsp.responsibility_id(+) = pov.level_value
AND app.application_id(+) = pov.level_value
ORDER BY "NAME", pov.level_id, "VALUE"
Oracle R12 - AOL by Dinesh Kumar S

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

and upper(p.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;

Table Used:
FND_PROFILE_OPTIONS
FND_PROFILE_OPTIONS_TL
FND_PROFILE_OPTION_VALUES
Navigation: (Set up Profile)
System Admin → Profile → System

Oracle R12 - AOL by Dinesh Kumar S

127

Navigation: (Create User Profile)
Application Developer → Profile

Oracle R12 - AOL by Dinesh Kumar S

128

Name: A unique name given to a profile.
Application: The name of the application to which the profile to be registered.
User Profile Name: This is the name your users see as their profile option.
Description: User can give the usage/purpose of the profile option (or) any other note.

Oracle R12 - AOL by Dinesh Kumar S

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

Hierarchy Type: Server

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.

Hierarchy Type: Server-Responsibility

We can control the value of a profile option for a particular combination of a server and
responsibility.

Oracle R12 - AOL by Dinesh Kumar S

131

Hierarchy Type: Organization

Organization refers to operating unit.
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.

Hierarchy Type: Security

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.

Oracle R12 - AOL by Dinesh Kumar S

Site >

132

Hierarchy type Access level

Define the characteristics of your profile option at each profile level.
Depending on the hierarchy type you chose for your profile, you can define the characteristics
at the Site, Application, Responsibility, Server, Server+Responsibility, Organization, and User
levels.

Note** provide access to each option at the Site level
User Access

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.

Oracle R12 - AOL by Dinesh Kumar S

133

Hierarchy Type & its Access Levels

Oracle R12 - AOL by Dinesh Kumar S

134

Oracle R12 - AOL by Dinesh Kumar S

135

Active Dates

Enter the dates on which the profile option becomes
active/inactive.

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

Oracle R12 - AOL by Dinesh Kumar S

136

Syntax:

Lets discuss the syntax part by part
SQL:

A SELECT statement that selects the rows to display in your LOV.
In the SQL statement you can specify column aliases, use an INTO clause to put values into
form fields.
Display database values without selecting them into form fields (by selecting values INTO
NULL).
Mix values to put into form fields with display only values in the same INTO clause

Oracle R12 - AOL by Dinesh Kumar S

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.

The HEADING option overrides the COLUMN lengths and aliases.

SQL=“SELECT FULL_NAME

,EMPLOYEE_NUMBER
INTO
:PROFILE_OPTION_VALUE
, :VISIBLE_OPTION_VALUE
FROM PER_ALL_PEOPLE_F
ORDER BY EMPLOYEE_NUMBER"

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

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

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

Oracle R12 - AOL by Dinesh Kumar S

140

Put parenthesis while concatenating multiple columns,

SQL=“SELECT (LAST_NAME || ‘:’ || FIRST_NAME)
,EMPLOYEE_NUMBER
INTO
:PROFILE_OPTION_VALUE
, :VISIBLE_OPTION_VALUE
FROM PER_ALL_PEOPLE_F

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“

COLUMN= “FULL_NAME(100) , EMPLOYEE_NUMBER(*) ”
Oracle R12 - AOL by Dinesh Kumar S

141

Include Spaces in Column Alias,
put a backslash and double quotes before and after the column alias, so that the LOV
routine recognizes the double quotes as real double quotes, rather than the end of your
parameter.

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) ”

Oracle R12 - AOL by Dinesh Kumar S

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“

COLUMN= “FULL_NAME(100) , EMPLOYEE_NUMBER(*) ”
TITLE=“*FND:MESSAGE_NAME”
Oracle R12 - AOL by Dinesh Kumar S

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“

COLUMN= “FULL_NAME(100) , EMPLOYEE_NUMBER(*) ”
HEADING=“*FND:MESSAGE_NAME(*)”
Oracle R12 - AOL by Dinesh Kumar S

144

Value Sets

Reference: Oracle Flexfield Guide

Oracle R12 - AOL by Dinesh Kumar S

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.

We can share/Use value sets,




Among segments in different flexfields
segments in different structures of the same flexfield
segments within the same flexfield structure.
Across key and descriptive flexfields.
Use value sets for report parameters for your reports that use the Standard Request
Submission feature.

Oracle R12 - AOL by Dinesh Kumar S

146

Value Set Name: A unique name given by user
Description: User defined description about the purpose/usage of value set.
List Type:

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

Guidelines for List type field,
§
§
§

Poplist - fewer than 10 values expected
List of Values - between 10 and 200 values expected
Long List of Values - more than 200 values expected

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.

Security Types are,
1.
2.
3.

No Security
Hierarchical Security
Non-Hierarchical Security

Oracle R12 - AOL by Dinesh Kumar S

148

No Security

All security is disabled for this value set.

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.

Oracle R12 - AOL by Dinesh Kumar S

149

Valueset usage:
Valueset can be associated with below Application objects,

KFF (Key flex fields)

DFF (Descriptive flex fields)

Concurrent Program Parameters

Oracle R12 - AOL by Dinesh Kumar S

150

Planning Values & Value Sets:
1)
2)
3)
4)

Choose Value format
Decide usage and need
Choose Validation Type
Plan to use Range features (value hierarchies, cross-validation rules, security rules etc.)

Step 1: Choosing Value format
Below are the different formats available,
•)
•)
•)
•)
•)
•)
•)

Character
Date
DateTime
Number
Time
Standard Date
Standard DateTime

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

152

This flow diagram
shows how Valueset
will behave based on
the format validation
setups.

Oracle R12 - AOL by Dinesh Kumar S

153

Oracle R12 - AOL by Dinesh Kumar S

154

Step 2: Decide Usage and Need

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

Value set Type compatibility chart with LOV

Oracle R12 - AOL by Dinesh Kumar S

156

Step 3: Choosing a Validation Type

There are 6 validation types available for Valueset,
1.
2.
3.
4.
5.
6.

None (not validated at all)
Independent
Dependent
Table
Special (advanced)
Pair (advanced)

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

U

Special

P

Pair

I

Independent

D

Dependent

Y

Transparent Dependent

X

Transparent Independent

N

None

F

Table

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

159

Oracle R12 - AOL by Dinesh Kumar S

160

Independent:

It provides a predefined list of values for a segment.

These values can have an associated description.

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.

Oracle R12 - AOL by Dinesh Kumar S

161

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

163

Oracle R12 - AOL by Dinesh Kumar S

164

Edit Information:

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

166

Oracle R12 - AOL by Dinesh Kumar S

167

Edit Information:

Oracle R12 - AOL by Dinesh Kumar S

168

Special and Pair Value Sets:


Special and pair value sets provide a mechanism to allow a "flexfield-within-a-flexfield".
These value sets are primarily used for Standard Request Submission parameters.
We do not generally use these value sets for normal flexfield segments.
Special validation value sets allow you to call key flexfield user exits to validate a flexfield
segment or report parameter using a flexfield–within–a–flexfield mechanism.

Oracle R12 - AOL by Dinesh Kumar S

169

Oracle Seeded Valueset: PO_SRS_ITEM

Oracle R12 - AOL by Dinesh Kumar S

170

Edit Information:

Oracle R12 - AOL by Dinesh Kumar S

171

When you define a special validation value set, you specify two things:

Event : The event is the time when your function occurs.
Function: It is your call to a key flexfield user exit

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.

Oracle R12 - AOL by Dinesh Kumar S

172

Special Validation: Events
Valid events include,
Event Name

Edit

Usage

Load



Status

when user’s cursor enters the segment in a data entry mode.
You usually use POPID(R) for your Edit event.

Active

Calls routine immediately after a query to populate your segment.
You usually use LOADID(R) for your Load event.
If you have a Load event, you must have a non–null ID field (a field
that contains the code combination ID number) or data field (a field
that contains the hidden ID numbers corresponding to the values of a
value set that uses a hidden ID column).
If you have a Load event, you must use :!ID (described below) with
either an ID field or data field.
Your user exit passes the contents of :!ID to your report or flexfield
instead of the contents of :!VALUE

Active

Oracle R12 - AOL by Dinesh Kumar S

173

Event Name

Validate

Usage

Calls routine whenever the user’s cursor leaves the segment or closes
the pop–up 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

Reserved for Future

--

Query

Reserved for Future

--

Edit/Edit

Reserved for Future

--

ListVal

Reserved for Future

--

Oracle R12 - AOL by Dinesh Kumar S

174

Special Validation: Function
Special validation provides several special arguments you can use to pass values to and from the
user exits,

:!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

Oracle R12 - AOL by Dinesh Kumar S

176

:!VALUE

Use :!VALUE to access the user’s input.
:!VALUE refers to the displayed values that appear in the flexfield window and in the
concatenated values field.
It contains the concatenated values for the flexfield your value set uses.

:!MEANING

Use :!MEANING to pass the concatenated descriptions of your flexfield values.
The value description appears as usual next to the flexfield segment value and in the
concatenated description field.

!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

Example: (Reference Flexfield Guide)
Suppose you want to let your users pass a single combination of concatenated
Accounting Flexfield segments as a parameter to a report. To let your user choose a
single combination, you must provide a key flexfield window from within the
report parameters window on the Run Reports form.
To do this, you simply define a value set with Special validation and use your familiar
flexfield user exits.
Since you want to pass an existing combination (that is, you want to pass the ID
number of the combination) and this is a foreign key flexfield, you use
VALIDATE=FULL and the ID=:!ID argument. You do not use the DATA_FIELD=:!ID
argument.

Oracle R12 - AOL by Dinesh Kumar S

178

Below Events are identified,


Data Entry
Data Query
Data Validation

Oracle R12 - AOL by Dinesh Kumar S

179

Oracle R12 - AOL by Dinesh Kumar S

180

Pair Validation Valueset

Oracle R12 - AOL by Dinesh Kumar S

181

Edit Information:

Oracle R12 - AOL by Dinesh Kumar S

182

Example Pair Validation:
Suppose you want to let your users pass a range of concatenated Accounting
Flexfield segments as parameters to a report. For example, you want to let your
users request a report on all combinations where the second segment
value is between 001 and 101, inclusive.
To let your user choose such a range, you must provide a key flexfield range window
from within the report parameters window on the Run Reports form. To do this, you
simply define a value set with Pair validation and use your familiar
range flexfield user exits to pass a range of concatenated segment values.
For a range flexfield, you use VALIDATE=PARTIAL (or NONE). Since you use a
range flexfield, you cannot use the ID=:!ID argument. You do not use
DATA_FIELD=:!ID in this example (hidden ID value sets are not allowed with the
Accounting Flexfield), so you do not need a Load event.

Oracle R12 - AOL by Dinesh Kumar S

183

Oracle R12 - AOL by Dinesh Kumar S

184

Using Variables with Special and Pair Validation

Bind Variable

Usage

:$FLEX$.value_set_name

Retrieves a value (the hidden ID value, if a hidden
ID value is defined) in a prior segment.

:$PROFILES$.profile_option

Retrieves the current value of a profile option. You
must specify the option name of the profile option,
such as GL_SET_OF_BKS_ID (which does not
contain the Accounting Flexfield structure
number).

:block.field

Gets the current value in a field. You must ensure
that this value set is only used for forms that have
the same block.field.

Oracle R12 - AOL by Dinesh Kumar S

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 case–sensitive.

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 context–sensitive 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.

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

188

Flexfield
A flexfield is a field made up of sub–fields, or segments. A flexfield appears on your form as
a pop–up 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

Oracle R12 - AOL by Dinesh Kumar S

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.

Query intelligent fields for very specific information.
Oracle R12 - AOL by Dinesh Kumar S

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

Navigation: SYS ADMIN RESP → Application → Flexfield → Key → Segments

Oracle R12 - AOL by Dinesh Kumar S

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

Application: Name of the application in which flexfield is defined.
Flexfield Title: This is the Key Flexfield Name that belongs to the application General
Ledger.

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.

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

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.

Oracle R12 - AOL by Dinesh Kumar S

196

Key flexfield by Name:

Oracle R12 - AOL by Dinesh Kumar S

197

Key flexfield by
Owing Application:

Oracle R12 - AOL by Dinesh Kumar S

198

Oracle R12 - AOL by Dinesh Kumar S

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.

DFF has 2 different types of segments,
Global segment is a segment that always appears in the descriptive flexfield pop–up window.
● Context–sensitive segment is a segment that may or may not appear depending upon what
other information is present in your form.

A descriptive flexfield can get context information from
Field in a form
● From a special field (a context field) inside the descriptive flexfield pop–up window.

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

Enabling DFF in a Purchase Order form:

DFF

Oracle R12 - AOL by Dinesh Kumar S

201

Step 1: Know the details of the DFF

Navigation: Help Menu → Diagnostics → Examine
Input Apps Username
Password

1

2

Give the Block & field
values as given

3

Oracle R12 - AOL by Dinesh Kumar S

202

Step 2: Enable the DFF

Navigation: SYS ADMIN → Application → Flexfield → Descriptive → Segments

Unfreeze the flexfield definition to
enable segment.
Oracle R12 - AOL by Dinesh Kumar S

203

Step 3: Enter the segment information as below

Now save the changes.
Oracle R12 - AOL by Dinesh Kumar S

204

Click OK

Note** if you want any validation to be enabled, assign a value set else
leave it blank as it is optional.

Oracle R12 - AOL by Dinesh Kumar S

205

Step 4: Now freeze the flexfied after the changes.

Oracle R12 - AOL by Dinesh Kumar S

206

Flexfield successfully compiled

Oracle R12 - AOL by Dinesh Kumar S

207

Lets Query Purchase Order form

DFF Enabled
DFF Enabled

Oracle R12 - AOL by Dinesh Kumar S

208

Hope this was a great learning

Oracle R12 - AOL by Dinesh Kumar S

209