Вы находитесь на странице: 1из 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)

Oracle R12 - AOL 1


Oracle Apps R12

e-Business Suite

Oracle R12 - AOL 2


E-Business Suite Architecture

Client Tier

Web Server Web Server


IAS Oracle Apps Server 10g R3
JServ OC4J

Application Concurrent Form 6i Concurrent Form 10g R2


Process Server Process Server
Tier

Admin Report 6i Admin Report 10g R2


Server Bi Publisher Server Bi Publisher

DB Tier

Oracle R12 - AOL 3


Oracle Apps 11i Oracle Apps R12
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 4


File System in 11i
Ora

IAS
Data 10.2.X APPL COMN 8.0.6 Server

Appl_Top
Oracle_Home Oracle_Home
Data_Top Oracle_Home (Apps Common_Top
Product Tech. Stack Tech. Stack
(DB Files) (Oracle DB 10g) files (Shared Files)
PO, INV, OM (Forms, Reports) (Apache, Jser)
etc.)

Database Tier Application Tier

Oracle R12 - AOL 5


File System in R12

Oracle R12 - AOL 6


Application Object Library
(AOL)

Oracle R12 - AOL 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 8


Oracle Security Architecture

FND user

Responsibility

Data Group Request Group Menu

Application Concurrent Prog. Form & Sub functions

Oracle Schema Executable Forms

Oracle R12 - AOL 9


FND Applications

Navigation Application → Register

Oracle R12 - AOL 10


FND user

Responsibility

Data Group Request Group Menu

Application Concurrent Prog. Form & Sub functions

Oracle Schema Executable Forms

Oracle R12 - AOL 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 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 13


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

Oracle R12 - AOL 14


Oracle UserName

Table: FND_ORACLE_USERID
~ ORACLE_ID

Navigation Security → Oracle → Register

Oracle R12 - AOL 15


FND user

Responsibility

Data Group Request Group Menu

Application Concurrent Prog. Form & Sub functions

Oracle Schema Executable Forms

Oracle R12 - AOL 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 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 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 19


Default Oracle User-Names in oracle apps

Oracle R12 - AOL 20


Data Group

Table: FND_DATA_GROUPS
~ DATA_GROUP_ID

Navigation Security → Oracle → DataGroup

Oracle R12 - AOL 21


FND user

Responsibility

Data Group Request Group Menu

Application Concurrent Prog. Form & Sub functions

Oracle Schema Executable Forms

Oracle R12 - AOL 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 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 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
Application-ORACLE 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 25


Standard Data Group associated with Oracle ID APPS

Oracle R12 - AOL 26


Request Security Group (Or) Request Group

Table: FND_REQUEST_GROUPS Navigation: Security > Responsibility > Request


~ APPLICATION_ID
~ REQUEST_GROUP_ID

Oracle R12 - AOL 27


FND user

Responsibility

Data Group Request Group Menu

Application Concurrent Prog. Form & Sub functions

Oracle Schema Executable Forms

Oracle R12 - AOL 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 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 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 31


Menus

Table: FND_MENUS
~ MENU_ID Navigation: Application > Menu

Oracle R12 - AOL 32


FND user

Responsibility

Data Group Request Group Menu

Application Concurrent Prog. Form & Sub functions

Oracle Schema Executable Forms

Oracle R12 - AOL 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 34


Purchasing Module

Oracle R12 - AOL 35


To view the hierarchical structure click "View Tree"

Oracle R12 - AOL 36


Oracle R12 - AOL 37
Web Based
Functions

Form
Functions

Oracle R12 - AOL 38


Level 1

Level 2

Oracle R12 - AOL 39


Level 3

Oracle R12 - AOL 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 41


FND user

Responsibility

Data Group Request Group Menu

Application Concurrent Prog. Form & Sub functions

Oracle Schema Executable Forms

Oracle R12 - AOL 42


Oracle R12 - AOL 43
Now lets walk through the below functions
in purchasing module

1) PO Change History (Non Form Based)


2) Purchase Order (Form Based)

Root Menu : Purchasing Super User GUI

Oracle R12 - AOL 44


Purchase Order (Form Based)

Sub Menu: Purchase Orders: Subfunctions

Oracle R12 - AOL 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 --> FORM


Non-Form Functions --> Sub-Functions
Oracle R12 - AOL 46
FORM Blocks::

DESCRIPTION-

Function :
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 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 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 49


Non Form Based Function: Sub Function

Oracle R12 - AOL 50


Oracle R12 - AOL 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 52
Responsibility
Table: FND_RESPONSIBILITY
~ Application_ID
~ Responsibility_ID
FND_RESPONSIBILITY_TL
~ Application_ID
~ Responsibility_ID
~ Language

Oracle R12 - AOL 53


FND user

Responsibility

Data Group Request Group Menu

Application Concurrent Prog. Form & Sub functions

Oracle Schema Executable Forms

Oracle R12 - AOL 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 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 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 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: ICX_CUSTOMER_CONTACT_ID


Internal Contact: ICX_HR_PERSON_ID
Supplier Contact: 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 58


Oracle Application Responsibility:

Oracle R12 - AOL 59


Web Application

Oracle R12 - AOL 60


Users

Table: FND_USER
~ USER_ID

Oracle R12 - AOL 61


FND user

Responsibility

Data Group Request Group Menu

Application Concurrent Prog. Form & Sub functions

Oracle Schema Executable Forms

Oracle R12 - AOL 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 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 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 65


Oracle R12 - AOL 66
Oracle R12 - AOL 67
Oracle R12 - AOL 68
Executable

Table: FND_EXECUTABLES
~ APPLICATION_ID
~ EXECUTABLE_ID

Oracle R12 - AOL 69


FND user

Responsibility

Data Group Request Group Menu

Application Concurrent Prog. Form & Sub functions

Oracle Schema Executable Forms

Oracle R12 - AOL 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 Method-
The 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 71


The possible execution methods are:

Host The execution file is a host script.


Oracle Reports The execution file is an Oracle Reports file.
PL/SQL Stored Procedure The execution file is a PL/SQL stored procedure.
Java Stored Procedure The execution file is a Java stored procedure.
Java Concurrent Program The execution file is a program written in Java.
Multi Language Function The execution file is a function (MLS function) that supports
running concurrent programs in multiple languages.
SQL*Loader The execution file is a SQL script.
SQL*Plus The execution file is a SQL*Plus script.
Spawned The execution file is a C or Pro*C program.
Immediate 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.
Request Set Stage Function PL/SQL Stored Function that can be used to calculate the
completion statuses of request set stages.

Oracle R12 - AOL 72


Execution File Name-

Name 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 73


Lets Consider a sample Oracle Report Executable

Location:

Oracle R12 - AOL 74


Concurrent Program
Table: FND_CONCURRENT_PROGRAMS_TL
FND_CONCURRENT_PROGRAMS ~APPLICATION_ID
~APPLICATION_ID ~CONCURRENT_PROGRAM_ID
~CONCURRENT_PROGRAM_ID ~LANGUAGE

Oracle R12 - AOL 75


FND user

Responsibility

Data Group Request Group Menu

Application Concurrent Prog. Form & Sub functions

Oracle Schema Executable Forms

Oracle R12 - AOL 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 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 78
STOP Command: adcmctl.sh stop apps/apps
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 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 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 can support multiple territories and numeric character
sets as well as multiple languages. Oracle R12 - AOL 81
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:
OracleR12 -AOLby Dinesh Kumar S
This allows user to run concurrent program defined in different territory/Country . If
82
this option is blank 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 83


Concurrent Program Parameters:

Oracle R12 - AOL 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.
Enab led : If a par ameter is dis abl ed it will not be visibl e during c onc urrent progr am s ubmissi on.

Oracle R12 - AOL y Dinesh Kumar S 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. Independent
ii. Table
iii. 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 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 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 88


Monitoring Requests

Navigation: System Administrator → Requests

Oracle R12 - AOL 89


In request window following actions can be performed.

VIEW - View the status of your submitted requests


CHANGE - Change processing options
DIAGNOSE - Diagnose errors
OUTPUR - View your request output

Concurrent Program Phase Codes

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

LOOKUP_CODE MEANING

C Completed

I Inactive

P Pending

R Running Dinesh Kumar S 90


Concurrent Program Status Codes Value Meaning
U Disabled
SELECT lookup_code, meaning W Paused
FROM fnd_lookup_values
WHERE lookup_type = 'CP_STATUS_CODE' X Terminated
AND LANGUAGE = 'US' Z Waiting
AND enabled_flag = 'Y'; M No Manager
Q Standby
R Normal
Information about submitted requests can be found in
S Suspended
table: FND_CONC_REQ_SUMMARY_V
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 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 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


Steps to create Request set
Step 1: Creating Stages (1) Request Set Wizard
Step 2: Linking Stages
(2) Manual Creation

Oracle R12 - AOL 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
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 Stage 3

Request 1 Request 2 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 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
Request 2
Stage 1

Success Request 5
Request 1

Request 3 Stage 4
Warning Request 4
Oracle R12 - AOL by Dinesh Kumar S 97
Stage 2
Creating Request Set:

Navigation: System Administrator → Concurrent → Set

Method 1: Using Request Set Wizard.


Method 2: Manual Creation.

Oracle R12 - AOL 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 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 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 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 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 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 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 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 106


Step 1: Enter Request Set Details.

Oracle R12 - AOL 107


Step 2: Define Stages

Oracle R12 - AOL 108


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

Oracle R12 - AOL 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 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 111


Step 6: Assign Request set to a Request Group.

Oracle R12 - AOL 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 113


Step 1: Select a Request to schedule.

Step 2: Select application name.

Oracle R12 - AOL 114


Step 3: Defining Scheduling details.

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

Oracle R12 - AOL 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 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 117


Step 6: Schedule Summary Details [Review Page].

Oracle R12 - AOL 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 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 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
Kumar S 121
Organization 10006
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: Data Collection Set


(2) Option 2: Run Standard Concurrent Report
(3) Option 3: 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 122
6.Select test name "Profile Options"
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 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 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',
'Ser ver+R esp')), 125

Oracle R12 - AOL


'UnDef') LEVEL_SET,
decode(to_char(v.level_id),
'10001', '',
'10002', app.application_short_name,
'10003', rsp.responsibility_key,
'10004', usr.user_name,
'10005', svr.node_name,
'10006', org.name,
'10007', decode(to_char(v.level_value2), '-1',
rsp.responsibility_key, decode(to_char(v.level_value), '-1', (select
node_name from fnd_nodes
where node_id = v.level_value2),
(select node_name from fnd_nodes
where node_id = v.level_value2)||'-'||rsp.responsibility_key)),
'UnDef') "CONTEXT",
v.profile_option_value VALUE
from fnd_profile_options p,
fnd_profile_option_values v,
fnd_profile_options_tl n,
fnd_user usr,
fnd_application app,
fnd_responsibility rsp,
fnd_nodes svr,
hr_operating_units org
where p.profile_option_id = v.profile_option_id (+)
and p.profile_option_name = n.profile_option_name
Oracle R12 - AOL 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 127


Navigation: (Create User Profile)
Application Developer → Profile

Oracle R12 - AOL 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 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 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 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: Site >
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 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 133


Hierarchy Type & its Access Levels

Oracle R12 - AOL 134


Oracle R12 - AOL 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 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 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 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 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.

o
Dynamic width column by placing an asterisk instead of a number in the
parentheses following the column name

Oracle R12 - AOL 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 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 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 Note**


,EMPLOYEE_NUMBER FND: is Application Short Name
INTO followed by message name.
:PROFILE_OPTION_VALUE
, :VISIBLE_OPTION_VALUE
FROM PER_ALL_PEOPLE_F
ORDER BY EMPLOYEE_NUMBER“
COLUMN= “FULL_NAME(100) , EMPLOYEE_NUMBER(*) ”
TITLE=“*FND:MESSAGE_NAME”
Oracle R12 - AOL 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 144
Value Sets

Reference: Oracle Flexfield Guide

Oracle R12 - AOL 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 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 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. No Security
2. Hierarchical Security
3. Non-Hierarchical Security

Oracle R12 - AOL 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 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 150


Planning Values & Value Sets:

1) Choose Value format


2) Decide usage and need
3) Choose Validation Type
4) 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 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 152


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

Oracle R12 - AOL 153


Oracle R12 - AOL 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 155


Value set Type compatibility chart with LOV

Oracle R12 - AOL 156


Step 3: Choosing a Validation Type

There are 6 validation types available for Valueset,

1. None (not validated at all)


2. Independent
3. Dependent
4. Table
5. Special (advanced)
6. 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 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 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 159


Oracle R12 - AOL 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 161


Oracle R12 - AOL 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 163


Oracle R12 - AOL 164
Edit Information:

Oracle R12 - AOL 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 166


Oracle R12 - AOL 167
Edit Information:

Oracle R12 - AOL 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 169


Oracle Seeded Valueset: PO_SRS_ITEM

Oracle R12 - AOL 170


Edit Information:

Oracle R12 - AOL 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 172


Special Validation: Events

Valid events include,

Event Name Usage Status


Edit •
when user’s cursor enters the segment in a data entry mode. Active
• You usually use POPID(R) for your Edit event.
Load •
Calls routine immediately after a query to populate your segment. Active
• 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

Oracle R12 - AOL 173


Event Name Usage Status

Validate • Calls routine whenever the user’s cursor leaves the segment or closes Active
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.

Insert/Update Reserved for Future --


Query Reserved for Future --
Edit/Edit Reserved for Future --
ListVal Reserved for Future --

Oracle R12 - AOL 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 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 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 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 178


Below Events are identified,

● Data Entry
● Data Query
● Data Validation

Oracle R12 - AOL 179


Oracle R12 - AOL 180
Pair Validation Valueset

Oracle R12 - AOL 181


Edit Information:

Oracle R12 - AOL 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 183


Oracle R12 - AOL 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 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
value of the description column) Oracle R12 - AOL 186
: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 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 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 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 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 191
Navigation: SYS ADMIN RESP → Application → Flexfield → Key → Segments

Oracle R12 - AOL 192


Flexfield segments

Note** in all the base tables you can see Segment Columns where the flexfield
value will be stored.
Oracle R12 - AOL 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 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 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 196


Key flexfield by Name:

Oracle R12 - AOL 197


Key flexfield by
Owing Application:

Oracle R12 - AOL 198


Oracle R12 - AOL 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 200
Enabling DFF in a Purchase Order form:

DFF

Oracle R12 - AOL 201


Step 1: Know the details of the DFF

Navigation: Help Menu → Diagnostics → Examine

1 Input Apps
Username Password

Give the Block & field


values as given
3

Oracle R12 - AOL 202


Step 2: Enable the DFF

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

Unfreeze the flexfield definition to


enable segment.

Oracle R12 - AOL 203


Step 3: Enter the segment information as below

Now save the changes.

Oracle R12 - AOL 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 205


Step 4: Now freeze the flexfied after the changes.

Oracle R12 - AOL 206


Flexfield successfully compiled

Oracle R12 - AOL 207


Lets Query Purchase Order form

DFF Enabled
DFF Enabled

Oracle R12 - AOL 208


Hope this was a great learning

Oracle R12 - AOL 209

Вам также может понравиться