Profile Options provide flexibility to Oracle Apps. They are a key component of Oracle Applications.The profile option acts like a Global Variable in Oracle.These are provided to keep the application flexible. The business rules in various countries and various companies can be different. Hence the profile options are delivered by Oracle in such a manner to avoid hard-coding of logic, and to let the implementation team at site decide the values of those variables.
1. There are profile options which can turn the
debugging on, to generate debug messages. Say one of 1000 users reports a
problem, and hence you wish to enable debugging against just that specific
user. In this case you can “Turn On” the debugging profile option "again
that specific user".
2. There are profile options that control which user can give discount to their
customers at the time of data entry. You can set profile option "Discount
Allowed" to a value of either Yes or No against each Order Entry user.
3. Lets assume an Organization has department D1 and D2. Managers of both the
Departments have "HRMS Employee View" responsibility. But you do not
want Manager of D2 to be able to see the list of Employees in Organization D1.
Hence you can set a profile option against the username of each of these users.
The value assigned to such profile option will be "Name of the
Organization" for which they can see the employees. Of course, the SQL in
screen that displays list of employees will filter off the data based on
“logged in users profile option value”.
Let’s take an example. Let’s assume you are a developer in Oracle
Corporation building a screen in ERP. Let us further assume that you are
developing an Order Entry screen.
Assume that business requirements for your development work is:-
1. Screen should be flexible to ensure that different users of the screen can
give different levels of discounts. For example, a clerk Order Entry User can
give no more than 5% discount. But Sales Manager can enter an Order with 15%
2. There should not be any hard-coding regarding the maximum permissible
3. In the screen there will be a discount field.
4. When the discount value is entered in discount field, an error will be
raised if user violates the maximum permissible discount.
Here is how Oracle will code this screen
1. They will define a profile option named "XX Maximum Discount
2. The short name of this profile option is "XX_MAX_DISCOUNT"
2. In the when-validate-item of the discount field(assuming Oracle Forms),
following code will be written IF :oe_line_block.discount_value >
fnd_profile.value('XX_MAX_DISCOUNT') THEN message( 'You can’t give discount more than ' || fnd_profile.value('XX_MAX_DISCOUNT') || '%' ) ; raise form_trigger_failure ;-- I mean raise error after showing message END IF ;
Here is how, the client implementing Oracle Order Entry will configure their
1. Navigate to System administration and click on system profile menu.
2. For Clerk User(JOHN), set value of profile "XX Maximum Discount
Allowed" to 5
For Sales Manager User(SMITH), set value of profile "XX Maximum
Discount Allowed" to 15 Oracle apps tutorialsOracle apps Technical Tutorials Oracle apps BR100 MD50 MD70 profile options oracle apps material
This document talks about
the concurrent processing in oracle applications. It will give the step-by-step
procedure of creating concurrent programs in oracle applications. All types of
concurrent programs are described in detail. Concurrent programs can be
scheduled to run or manually run in oracle applications. In Oracle
Applications, concurrent processing simultaneously executes programs running in
the background with online operations to fully utilize your hardware capacity,
hence the name ‘Concurrent Processing’. You can write a program (called a
”concurrent program”) that runs as a concurrent process. Typically, you create
concurrent programs for long–running, data–intensive tasks, such as posting a
journal or generating a report.
A concurrent program is an
instance of an execution file, along with parameter definitions and
incompatibilities. Concurrent programs use concurrent program executables to
locate the correct execution file. Several concurrent programs may use the same
execution file to perform their specific tasks, each having different parameter
defaults and incompatibilities.
Concurrent Program Executable
A concurrent program
executable links an execution file or and the method used to execute it with a
defined concurrent program. Under Concurrent Processing, an execution method
may be a program written in a standard language, a reporting tool, or an
operating system language. An execution method can be
a PL/SQL Stored Procedure, an Oracle Tool such as Oracle Reports or SQL*Plus, a
spawned process, or an operating system host language.
Concurrent Program Execution File
A concurrent program
execution file is an operating system file or database stored procedure which
contains your application logic and can be executed by either invoking it
directly on the command line or by invoking a program which acts upon it. For
example, you run a Pro*C program by invoking it on the command line. You run a
SQL script by running SQL*Plus and passing the name of the SQL script without
the .sql extension.
Steps to Create a Concurrent Pro
1. Executable :
The first step in creating
a concurrent program in oracle applications is to create the concurrent program
executable. To do this, navigate to Application Developer responsibility after
you login to Oracle Applications. To login, you can take the help of the
‘Topic11 - Oracle Applications Login Document’.
To open the Executable form follow the below mentioned navigation path.
Application Developer à Concurrent à Executable.
Figure 1. Executable Form
Navigation You will see the form as
shown in figure 2 below.
Figure 2. Executable Form
- Enter executable name here. Enter any user friendly name. ii) Short
Name - Enter short name for your executable. This is used for
mapping the executable with the concurrent program. Usually executable name are
of 8 characters.
iii) Application - Give the application to which the
executable belongs to. E.g. you want some program to run from oracle payables
then account payables should be entered as application name.
iv) Description - Give the brief description of the
executable in this field.
v) Execution Method - Here you need to choose the
appropriate execution method for your executable. Following are the possible
execution methods which are commonly used in oracle applications.
·Oracle Reports –
used for the RDF reports
·Host – used
for shell scripts, basically the language of the host operating system
·PL/SQL Stored procedure – used to run the stored procedure through oracle applications
used to run the sql loader programs
·SQL*Plus - used to
run the anonymous PL/SQL blocks. It will get executed in the same fashion as
you are running on SQL Plus.
·Java Stored Procedure – The execution file is a Java stored procedure.
·Java Concurrent Program – Used for program written in Java.
·Spawned – used for
c or pro*c Program. Mainly used by standard oracle interfaces.
·Perl Concurrent Program – used for programs written in CGI Perl.
·Request Set Stage Function – PL/SQL stored function that can be used to calculate the
completion statuses of request set stages.
execution file is a program written to run as subroutine of the concurrent
manager. Oracle doesn’t recommend use of this executable type.
·Multi-Language function – execution file is an MLS function that supports running
concurrent program in multiple languages.
PL/SQL Stored Procedure,
Oracle Reports, Host, SQL*loader, SQL*Plus are the most commonly used
executable types. vi) Executable
File name – This should contain the name of the executable file.
In case of PL/SQL Stored procedure or Java Stored Procedure it should be the
fully defined name of the stored procedure.
vii) Subroutine Name – This field is only used when
executable type is spawned or immediate.
viii) Execution File Path -
ix) 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
2. Concurrent Program :
Once you have defined the
executable, the second step is to define the concurrent program. To define a
concurrent program, you need to open the form using the navigation path below. Navigation – Application
Developer -> Concurrent ->Program
Figure 4. Concurrent
Program Form Navigation The form would look like
as shown in the figure 4 below.
Figure 4. Concurrent
– Give user friendly name for your concurrent program. This name will be
displayed in Requests submission screen while submitting the requests.
ii) Short Name – Give short name for concurrent
program. This is used within the database tables in oracle applications. It’s a
common practice to have the Short name same for the executable and the
iii) Application – Give the application to which the
concurrent program belongs to. E.g you want some program to run from oracle
payables then account payables should be entered as application name.
iv) Description - Give the brief description of the
concurrent program. v) Executable
- Enter the short name of the executable (Defined in Executables Screen)
you want to attach to this concurrent program.
vi) Method - will be defaulted once you enter
executable short name
vii) Options - will be defaulted once you enter
executable short name Normally default values
are given for the other fields. Following is the significance of these fields. viii) Request
Type – Concurrent program can be associated to a predefined
request type so that only few concurrent managers can run the program. ix) Incrementor
– To be used by Oracle only. x) MLS
Function - This feature allows the program to be submitted once
by the user but runs it in the multiple languages.
xi) Use In SRS – Only when this check box is checked
the Concurrent Program would be available in Standard Request Submission
(SRS) through the request group.
xii) Allow Disable Value – This will allow the
disabled values in the value sets to be used while entering the values of the
parameters in the Concurrent Program. xiii) Run
Alone – Indicates that program is incompatible with all other
concurrent programs and should be run alone.
xiv) Enable Trace – This will enable the SQL trace
for the concurrent program and will generate the trace file when concurrent
program is run. Only used in development environments to check the performance
of the concurrent program. xv) Restart
on system Failure – This option is used to indicate that
concurrent program should automatically be started when concurrent manager is
restored after the system failure.
xvi) NLS Compliant – This box is checked if the
program allows for a user to submit request of the program that will reflect a
language and territory that are different from the language and territory that
the users are operating in. xvii) Output
Format – Format in which output should be printed. Possible
format values are
·PS (Post Script)
·PCL(HP’s Printer Control Language)
– Check to indicate that output should be automatically saved in an operating
xix) PRINT – Whether you want the output to be sent
to printer for printing.
xx) Column / Rows – Column and Row length of the
concurrent program output. Oracle Applications uses this information to decide
the print style.
xxi) Style Required – Print Style
xxii) Printer – A particular printer on which output
should be sent.
Save the data that you have entered using Ctrl+S or File à Save.
3. Concurrent Program Parameters :
The 3rd step in
defining concurrent program is to define the parameters. To do this, click on
the Parameters button as shown at the bottom the form in figure 4. The
following screen (figure 5) is displayed when you click on parameters button.
This screen is used to define the parameters in the concurrent program.
Figure 5. Parameter Window
– will be defaulted from Concurrent Program
ii) Application – will be defaulted from Concurrent
iii) Conflicts Domain - Enter the parameter which
will hold the value of the conflict domain of the program.
iv) Security Group - This field is for HRMS security
v) Seq – Enter sequence number for the parameter
vi) Parameter – name of the parameter, will be
displayed in parameter entry screen
vii) Description – description about the usage of the
viii) Enabled – check box to enable or disable the
parameter. Disable a parameter when you don’t want to use it.
ix) Value set – enter the name of the value set which
you want to use to validate the value enter in the parameter field.
x) Description – will be defaulted from value set
xi) Default Type – choose the default type for the
default value of the parameter. Possible default types are
The default value can be any literal value.
·Profile : The
default value is the current value in the user profile option defined in the
Default Value field. Use the profile option name, not the end–user name. You do
not need to include $PROFILE$.
·SQL Statement : The default value is determined by the SQL statement you
defined in the Default Value field.
·Segment : The
default value is the value entered in a prior segment of the same parameter
size – Enter the field length in characters for this parameter.
The user sees and fills in the field in the Parameters window of the Submit
xiii) Token - For a parameter in an Oracle Reports
program, the keyword or parameter appears here. The value is case insensitive.
For other types of programs, you can skip this field.
4. Incompatible Programs Window :
To navigate to this form,
click on the Incompatibilities button on the bottom of the form shown in figure
4. This window is used for defining the incompatibilities of the concurrent
program. Identify concurrent programs that should not run with your concurrent
program as they might interfere with its execution.
Figure 6. Incompatibilities
– Defaulted from Concurrent Programs Window
ii) Application – Defaulted from Concurrent Programs
Window iii) Application
– Application of the concurrent program which is incompatible to the defined
iv) Name – Name of the concurrent program which is
incompatible to the defined concurrent program.
v) Scope – Used to identify if concurrent program
is incompatible if the program or also with its child requests. vi) Type
- Enter Domain or Global. If you choose Domain, the incompatibility is resolved
at a domain-specific level. If you choose Global, then this concurrent program
will be considered globally incompatible with your concurrent program,
regardless of which domain it is running in.
5. Session Control :
To navigate to this form,
click on the Session Control button on the bottom of the form shown in figure
4. This is a new functionality given in 11.5.10 to control the database session
while executing concurrent program using following three parameters. The form
would look like as shown in figure 7.
Figure 7. Session Control
Group – resource consumer group of the concurrent program can
be specified. A resource consumer group defines a set of users who have similar
resource usage requirements. An overall resource plan specifies how resources
are distributed among the different resource consumer groups. Resource consumer
groups and resource plans provide a method for specifying how to partition
processing resources among different users. ii) Rollback
Segment – Rollback segment specified here would be used instead
of the default rollback segment. If you specify a rollback segment here, your
concurrent program must use the APIs FND_CONCURRENT.AF_COMMIT and
FND_CONCURRENT.AF_ROLLBACK to use the specified rollback segment. iii) Optimizer
mode - Optionally specify an optimizer mode. You can choose
ALL_ROWS, FIRST_ROWS, Rules, or Choose. You would specify an optimizer mode
only for a custom program that may not perform well with the default cost-based
optimizer (CBO) and needs tuning. You can use a different optimizer mode until
your program is tuned for CBO.
6. Copy to Window :
To navigate to this form,
click on the Copy To button on the bottom of the form shown in figure 4. This
window can be used to copy the definition of the concurrent program. Give the
program name to copy the definition.
Figure 8. Copy To Form
– Enter the program name to be copied
ii) Short Name – Short Name of the program to be
iii) Application – Application name of the concurrent
program to be copied
iv) Include Incompatible programs - Check this box
if you want incompatibilities to be copied
v) Include Parameters – Check this box if you want
parameters to be copied.