Application Object Library
(AOL)
AOL by Vinothkumar M 1
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.
AOL by Vinothkumar M 2
Agenda of AOL
FND user
Responsibility
Data Group Request Group Menu
Application Concurrent Prog. Form & Sub functions
Oracle
OracleSchema
Schema Executable Forms Forms
AOL by Vinothkumar M 3
FND
Applications
Navigation Application → Register
AOL by Vinothkumar M 4
FND user
Responsibility
Data Group Request Group Menu
Application Concurrent Prog. Form & Sub functions
Oracle Schema Executable Forms
AOL by Vinothkumar M 5
Below you can see the screen shot of oracle Purchasing Application
definition.
AOL by Vinothkumar M 6
Oracle
UserName
Table FND_ORACLE_USERID
: ~ ORACLE_ID
Navigation Security → Oracle →
Register
AOL by Vinothkumar M
15
FND user
Responsibility
Data Group Request Group Menu
Application Concurrent Prog. Form & Sub functions
Oracle
OracleSchema
Schema Executable Forms Forms
AOL by Vinothkumar M 8
Default Oracle User-Names in oracle
apps
AOL by Vinothkumar M 9
Data
Group
Table: FND_DATA_GROUPS
~ DATA_GROUP_ID
Navigation Security → Oracle → DataGroup
AOL by Vinothkumar M 10
FND user
Responsibility
Data Group Request Group Menu
Application Concurrent Prog. Form & Sub functions
Oracle Schema Executable Forms
AOL by Vinothkumar M 11
Menus
Tabl FND_MENUS
e: ~ MENU_ID Navigation: Application >
Menu
AOL by Vinothkumar M 2
3
FND user
Responsibility
Data Group Request Group Menu
Application Concurrent Prog. Form & Sub functions
Oracle Schema Executable Forms
AOL by Vinothkumar M 13
Menus:
• A menu is a hierarchical arrangement of
functions and submenus with functions.
Each responsibility has a menu assigned
to it.
• A Responsibility becomes "Full Access",
when it includes all the per-defined
functions in application that are included in
the menu attached.
• A sub menu should be defined first (Lowest
level sub-menu) and attached to main menu.
AOL by Vinothkumar M 14
Purchasing Module
AOL by Vinothkumar M 15
To view the hierarchical structure click "View
Tree"
AOL by Vinothkumar M 16
Web
Based
Functions
Form
Function
s
AOL by Vinothkumar M 17
Level 1
Level 2
AOL by Vinothkumar M 18
Level 3
AOL by Vinothkumar M
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
AOL by Vinothkumar M 20
FND user
Responsibility
Data Group Request Group Menu
Application Concurrent Prog. Form & Sub functions
Oracle
OracleSchema
Schema Executable Forms
AOL by Vinothkumar M 21
Purchase Order (Form
Based)
Sub Menu: Purchase Orders: Subfunctions
AOL by Vinothkumar M 22
Now we have identified the form function "Purchase
Orders"
What is a Function?
- A function is part of an application's functionality that is registered under
a unique name for the purpose of assigning it to a responsibility , or
excluding it from responsibility.
Types of Functions
~ form functions
~ non-form functions
AOL by Vinothkumar M 23
FORM Blocks::
DESCRIPTION-
Function :
Users do not see this unique function name. The
function name can be used to call the function
programmatically.
User Function Name :
Enter a unique name that describes the function. This name is
used when assigning functions to menus.
AOL by Vinothkumar M 24
PROPERTIES-
Typ :
e 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.
AOL by Vinothkumar M 25
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.
AOL by Vinothkumar M 26
Non Form Based Function: Sub
Function
AOL by Vinothkumar M 27
Responsibility
Table FND_RESPONSIBILITY
: ~ Application_ID
~ Responsibility_ID
FND_RESPONSIBILITY_TL
~ Application_ID
~ Responsibility_ID
~ Language
AOL by Vinothkumar M 28
FND user
Responsibility
Data Group Request Group Menu
Application Concurrent Prog. Form & Sub functions
Oracle
OracleSchema
Schema Executable Forms Forms
AOL by Vinothkumar M 29
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
AOL by Vinothkumar M 30
Oracle Application Responsibility:
AOL by Vinothkumar M 31
Web
Application
AOL by Vinothkumar M 32
Users
Tabl FND_USER
e: ~ USER_ID
AOL by Vinothkumar M 33
FND user
Responsibility
Responsibility
Data Group Request Group Menu
Application Concurrent Prog. Form & Sub functions
Oracle
OracleSchema
Schema Executable Forms Forms
AOL by Vinothkumar M 34
AOL by Vinothkumar M 35
Request Security Group (Or) Request
Group
Tabl FND_REQUEST_GROUPS Navigation: Security > Responsibility >
e: ~ APPLICATION_ID Request
~ REQUEST_GROUP_ID
AOL by Vinothkumar M 36
FND user
Responsibility
Data Group Request Group Menu
Application Concurrent Prog. Form & Sub functions
Oracle Schema Executable Forms
AOL by Vinothkumar M 37
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.
AOL by Vinothkumar M 38
Executable
Tabl FND_EXECUTABLES
e: ~ APPLICATION_ID
~ EXECUTABLE_ID
AOL by Vinothkumar M 39
FND user
Responsibility
Data Group Request Group Menu
Application Concurrent Prog. Form & Sub functions
Oracle
OracleSchema
Schema Executable Forms Forms
AOL by Vinothkumar M 40
Why?
To Map executable source file 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.
AOL by Vinothkumar M 41
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 The execution file is a PL/SQL stored
Procedure Java Stored procedure. The execution file is a Java
Procedure Java stored procedure.
Concurrent Program The execution file is a program written in
Multi Language Java.
SQL*Loade
Function The execution file is a function (MLS function) that
r SQL*Plus supports running concurrent programs in multiple
Spawned languages.
Immediate 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
Request Set Stage subroutine of the concurrent manager. We
Function 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.
AOL by Vinothkumar M 42
Lets Consider a sample Oracle Report
Executable
Location:
AOL by Vinothkumar M 43
Concurrent Program
Table: FND_CONCURRENT_PROGRAMS_TL
FND_CONCURRENT_PROGRAMS ~APPLICATION_ID
~APPLICATION_ID ~CONCURRENT_PROGRAM_ID
~CONCURRENT_PRO ~LANGUAGE
GRAM_ID
AOL by Vinothkumar M 75
FND user
Responsibility
Data Group Request Group Menu
Application Concurrent Prog. Form & Sub functions
Oracle
OracleSchema
Schema Executable Forms Forms
AOL by Vinothkumar M 45
Concurrent Program Parameters:
AOL by Vinothkumar M 46
Monitoring Requests
Navigation: System Administrator →
Requests
AOL by Vinothkumar M
89
Submitting a Requests:
AOL by Vinothkumar M 48
Two Types of Requests:
■
Single
■
Request
Request
Single Set
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
AOL by Vinothkumar M 49
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
AOL by Vinothkumar M 50
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
AOL by Vinothkumar M 51
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 3
Request 1 Request 2
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.
AOL by Vinothkumar M 52
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 1 Request 5
Request 3 Stage 4
Warning Request 4
AOL by Vinothkumar M 97
Stage 2
Creating Request Set:
Navigation: System Administrator → Concurrent →
Set
Method 1: Using Request Set
Wizard. Method 2: Manual Creation.
AOL by Vinothkumar M
98
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.
AOL by Vinothkumar M 55
Step 3: Select a “Decision” when the request sets ends with status
ERROR. .
Step 4: Enter the details of the request
set.. .
AOL by Vinothkumar M 56
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.
AOL by Vinothkumar M 57
Step 7: After clicking finish button, the following note will be displayed
to the user.
Step 8: Request Set Created
Successfully.
AOL by Vinothkumar M 58
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.
AOL by Vinothkumar M 59
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.
AOL by Vinothkumar M 60
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.
AOL by Vinothkumar M 61
Step 1: Enter Request Set
Details.
AOL by Vinothkumar M 62
Step 2: Define
Stages
AOL by Vinothkumar M 63
Step 3: Assigning Request/Concurrent Program for the Request in
a stage. Click “Requests” button.
AOL by Vinothkumar M 64
Step 4: Similarly repeat steps 2 to Step 3 to Define all Stages and associate
programs for each request.
Stage 2
Stage 3
AOL by Vinothkumar M 65
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.
AOL by Vinothkumar M 66
Step 6: Assign Request set to a Request
Group.
AOL by Vinothkumar M 67
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.
AOL by Vinothkumar M 68
Navigation: (Create User
Profile) Application
Developer → Profile
AOL by Vinothkumar M 69
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
Oracle R12 - AOL by Kumar S 70
Organization 10006
Dinesh
Value Sets
Reference: Oracle Flexfield Guide
AOL by Vinothkumar M 71
Valueset usage:
Valueset can be associated with below Application objects,
• KFF (Key flex fields)
•
• DFF (Descriptive flex fields)
•
•
• Concurrent Program Parameters
AOL by Vinothkumar M 72
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)
AOL by Vinothkumar M 73
AOL by Vinothkumar M 74
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.
AOL by Vinothkumar M 75
AOL by Vinothkumar M 76
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.
AOL by Vinothkumar M 77
AOL by Vinothkumar M 78
Edit Information:
AOL by Vinothkumar M 79
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.
AOL by Vinothkumar M 80
Edit Information:
AOL by Vinothkumar M 81
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
AOL by Vinothkumar M 82
Navigation: SYS ADMIN RESP → Application → Flexfield → Key →
Segments
AOL by Vinothkumar M 83
Flexfield segments
Note** in all the base tables you can see Segment Columns where the flexfield value
will be stored.
AOL by Vinothkumar M 84
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.
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.
AOL by Vinothkumar M
Enabling DFF in a Purchase Order form:
DFF
AOL by Vinothkumar M 86
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
AOL by Vinothkumar M 87
Step 2: Enable the DFF
Navigation: SYS ADMIN → Application → Flexfield → Descriptive → Segments
Unfreeze the flexfield
definition to enable
segment.
AOL by Vinothkumar M 88
Step 3: Enter the segment information as below
Now save the
changes.
AOL by Vinothkumar M 89
Click OK
Note** if you want any validation to be enabled, assign a value set else
leave it blank as it is optional.
AOL by Vinothkumar M 90
Step 4: Now freeze the flexfied after the changes.
AOL by Vinothkumar M 91
Flexfield successfully compiled
AOL by Vinothkumar M 92
Lets Query Purchase Order form
DFF Enabled
DFF Enabled
AOL by Vinothkumar M 93
AOL by Vinothkumar M 94