Blog dedicated to Oracle Applications (E-Business Suite) Technology; covers Apps Architecture, Administration and third party bolt-ons to Apps

Monday, April 21, 2008

Run a concurrent program from command line

It is very much possible to run a concurrent program from unix command line. Metalink Note 1031719.6 describes how to run some GL programs from command line. We can use these instructions as base for being able to run any concurrent program from command line.

Problem Description

How do you run Posting (GLPPOS), or other concurrent programs from the
command line?

Solution Description

You can run any GL program from the command line. Follow these steps:

1) Verify that you run this at a time when there are no incompatible
programs running. To find the incompatible programs:

Responsibility = System Administrator
GUI Navigation = Concurrent/Program/Define

Query on GLPPOS in the Short Name field.
Click on the Incompatibilities button.

2) Change the profile "Concurrent Hold Request" to Yes.

Responsibility = System Administrator
GUI Navigation = Profile/System

Query on the profile option 'Concurrent Hold Requests'.
Set it to Yes at the User level and Save.

3) Select a journal batch for posting. The request will be put on hold.

Responsibility = General Ledger Super User
GUI Navigation = Journals/Post

4) Go to the Concurrent Requests form and get the parameters for the
Posting concurrent process.

The parameters for posting are:

set of books id
chart of accounts id

5) Run posting from the command line.

$GL_TOP/bin/GLPPOS 0 Y X 2>

Where: : apps username and password
: The parameters for the program,
separated by spaces. For NULL parameters
you need to specify closed double quotes ("").
X : Indicates that you want to run the program
in debug mode. This can be any character and
is optional.
2> : Use this to redirect standard errors and
output to a file. File name is the output
file name it will create. It will be created
in your current directory, if a full path
is not specified. This is optional
but recommended.

If you go to the concurrent requests form and see in the
Parameters field: 1,101,2546, you would enter the following command
at the Unix prompt:

$GL_TOP/bin/GLPPOS 0 Y 1 101 2546 X 2>

6) Change the profile option 'Concurrent Hold Requests' back to its
original setting.

Be sure to run the program from a directory for which you have write
privileges. That is where the log and out files will be created.
Also make sure that you are in the proper application environment.

Here is an example of the command and the output you will see.

FIN107>$GL_TOP/bin/GLPPOS apps/apps 0 Y 8 50128 84 2 2> njpost2.out
DEBUG: started in debug_mode ......

FIN107> ls
L54536.log L54540.log O54536.out O54540.out njpost.out post.out
L54538.logL54542.log O54538.out O54542.out njpost2.out test
FIN107> more njpost2.out
Log filename : L54542.log
Report filename : O54542.out
glpmai() fnd_user_id is -1
glpmai() fnd_user_name is ANONYMOUS
glpmai() req_id is 0
glpmai() sob_id is 8

NOTE: In Release 11.5, selected General Ledger programs can be run in debug
mode by setting the profile option 'GL: Debug Mode' to Yes at the
appropriate level.
These programs are:
- GLCRVL - Revaluation
- GLPPOS - Posting
- GLTTRN - Translation
- GLCCON - Consolidation Transfer
- GLAMAS - Run MassAllocations

See Note 232669.1: 'How To Run Selected General Ledger Programs In Debug Mode
in R11.5' for more information.


satish c said...


How can i give access of a concurrent program to a single user. I do not want any other users to access this program

Vikram Das said...

Hi Satish,

One of my colleagues, Akhilesh Singh has answered this for you:

Very Simple
1. Exclude that program from its existing request set or request group
2.Create a new request group
3.Attach your concurrent program to this new request group.
4. attach this group to a new responsibility
5. Assign that responsibility to user
6. Ensure that the new request group has only one request.

- Vikram