Lets first discuss the below scenario
Being a developer, you have just developed a SQL script or a PL/SQL package procedure. The end user wants to be able to run this script ad-hoc or they wish to schedule this to run every night.
Question : How can an end-user be given control to run a script developed by a developer, given that an end user will never have access to apps password(and rightly so)?
Answer: This script can be attached to a Concurrent Program via a concurrent program executable. The user will then be given access to this Concurrent Program.
Question : But how will the end user or Oracle Apps make this script run every 10hours daily?
Answer : A concurrent program can be scheduled to run at desired intervals. The schedule is defined at the time of submission.
Question: What are the different types of scripts/programs that can be attached to concurrent programs?
Answer :
A sql script
A Sql*Loader program
Java program
Oracle Report
Pl/SQL program ( or call it a stored procedure/package procedure)
Host script, like a unix shell script
Pro*C/Spawned
Perl
Question: What are the basic steps when defining a concurrent program.
Answer: Broadly speaking there are three steps when developing a concurrent program in Oracle Apps
Step 1. Make Oracle Apps identify the executable
Step 2. Provide a handle to the executable by means of defining a concurrent program
Step 3. Make this concurrent program accesible to selected users via their responsibility.
Question: Please can you describe the above steps in detail
Answer:
Step 1. Make Oracle Apps identify the executable
In Oracle Apps we have something called as concurrent program executable. Concurrent program executable is defined to register a script or a procedure for its usage within oracle apps.
Step 2. Provide a handle to the executable by means of defining a Concurrent Program.
We need to define a concurrent program and attach that to the executable defined in above step.
Step 3. Make this concurrent program accesible to selected users via their responsibility.
We do this by adding the concurrent program to something called as request group. The request group is either associated with a responsibility or is passed in as a parameter to the function request form function. Don't worry if you do not understand this step, I will be writing a dedicated article to explain this step.
Question : Please explain the steps for defining a pl/sql concurrent program, with screenshots and with almost real life example?
Answer:
1. Create a table and a stored procedure in pl/sql
create table xx_hello_world_tab
(
message_text VARCHAR2(100)
,creation_date DATE
) ;
CREATE OR REPLACE PROCEDURE
xx_register_user_prc(errbuf OUT VARCHAR2,retcode OUT VARCHAR2) IS
BEGIN
INSERT INTO xx_hello_world_tab VALUES ('Hello World' ,SYSDATE);
END xx_register_user_prc;
SELECT * FROM xx_hello_world_tab ;
--Zero records will be returned here
2. Note the two parameters, namely errbuff and retcode
These parameters for used for the interaction between the concurrent program and the pl/sql Program. I suggest to the beginners not to spend much time on these parameters.
3. Define an executable attached to this procedure.
This can be done by navigating to the responsibility “Application Developer”, and selecting the menu /Concurrent/Executable
4. Define the concurrent program
This can be done by navigating to responsibility “Application Developer” and then selecting menu /Concurrent/Program
5. Attach this program to a report group.
Go to System Administrator responsibility, and select
/Security/Responsibility/Request
Now, we can navigate to the Receivables Manager and submit the concurrent request.

written by venkat , October 26, 2006
procedure xx_register_user_prc in apps schema and compile it or should i add it to any direcotry like AR_TOP/sql and then register it as a concurrent program
written by Anil Passi , November 15, 2006
you can schedule a concurrent request, so that you do not have to execute it manually.
If you want this done programmatically, then use api FND_REQUEST.SUBMIT_REQUEST
Thanks
anil
written by Cherry , November 15, 2006
Otherwise, any suggestion?
written by Cherry , November 15, 2006
Then, Can I call the OFA packages such as AutoCreate PO by writting a PL/SQL as a request in this case?
Is there any existing APIs which allow to do so?
Is it ok to call OFA packages directly? Any concern?
(sorry for too much questions, I am new to Oracle and OFA)
Thanks in advanced.
Cherry
written by Anil Passi , November 15, 2006
you can schedule a concurrent request, so that you do not have to execute it manually.
If you want this done programmatically, then use api FND_REQUEST.SUBMIT_REQUEST
Thanks
anil
written by Cherry , November 15, 2006
Otherwise, any suggestion?
written by Cherry , November 15, 2006
Then, Can I call the OFA packages such as AutoCreate PO by writting a PL/SQL as a request in this case?
Is there any existing APIs which allow to do so?
Is it ok to call OFA packages directly? Any concern?
(sorry for too much questions, I am new to Oracle and OFA)
Thanks in advanced.
Cherry
written by Eugene , November 18, 2006
Great site. I very new to Oracle Apps and learning a whole lot from it.
I have a question about concurrent program. We outsourced an implementation team for Oracle Financials and they told me that I have to generate text files with PO, Receipts, Items, .... data it them (Prod d/b on Windows). Then generated files need to be moved to the server where Financials installed (Linux sever).
Then, they said, the concurrent program will run to load moved files into Apps.
My question is: could I just add a call (via d/b link) to the package on prod server to generate files and move them to the apps server and then proceed with loading files? It seems to me that it would be a completed task. Your thoughts?
Thank you,
Eugene
written by Eugene , November 18, 2006
Great site. I very new to Oracle Apps and learning a whole lot from it.
I have a question about concurrent program. We outsourced an implementation team for Oracle Financials and they told me that I have to generate text files with PO, Receipts, Items, .... data it them (Prod d/b on Windows). Then generated files need to be moved to the server where Financials installed (Linux sever).
Then, they said, the concurrent program will run to load moved files into Apps.
My question is: could I just add a call (via d/b link) to the package on prod server to generate files and move them to the apps server and then proceed with loading files? It seems to me that it would be a completed task. Your thoughts?
Thank you,
Eugene
written by Anil Passi , November 19, 2006
I assume the following:-
-----------------------
1. You have some concurrent program definitions to be moved from one environment to another.
2. You wish to add a DB link from Prod box to a development box, so that those definitions can be accessed.
Assuming that I understood your qns correctly:-
1. I guess your outsourcing company is using FNDLOAD to download the concurrent program definitions.
FNDLOAD is described here
http://oracle.anilpassi.com/oracle-fndload-script-examples.html
FNDLOAD creates text files, that can be uploaded in a new environment.
2. You usually never create DB Links frm PRD to DEV environment.
The FNDLOAD link shows how to upload the program definitions too. You do not necessarily need to run a concurrent program, although FNDLOAD command also happens to be an executable of conc program itself.
Thanks,
Anil Passi
written by Anil Passi , November 19, 2006
I assume the following:-
-----------------------
1. You have some concurrent program definitions to be moved from one environment to another.
2. You wish to add a DB link from Prod box to a development box, so that those definitions can be accessed.
Assuming that I understood your qns correctly:-
1. I guess your outsourcing company is using FNDLOAD to download the concurrent program definitions.
FNDLOAD is described here
http://oracle.anilpassi.com/oracle-fndload-script-examples.html
FNDLOAD creates text files, that can be uploaded in a new environment.
2. You usually never create DB Links frm PRD to DEV environment.
The FNDLOAD link shows how to upload the program definitions too. You do not necessarily need to run a concurrent program, although FNDLOAD command also happens to be an executable of conc program itself.
Thanks,
Anil Passi
written by Anil Passi , November 26, 2006
You can certainly do all the steps in one single concurrent program. But for doing so, you need to write a Java Concurrent Program
Thanks
Anil Passi
written by Anil Passi , November 26, 2006
You can certainly do all the steps in one single concurrent program. But for doing so, you need to write a Java Concurrent Program
Thanks
Anil Passi
written by Hari , November 29, 2006
I am trying to execute a java program through oracle apps forms. I have created a java concurrent program and I have crated a request and submitted and once its completion I am getting an exception saying that
java.lang.ClassNotFoundException: testOracle.OracleTestProgramNew
at oracle.apps.fnd.cp.request.Run.main(Run.java:117)
I have set the JAVA_TOP and AF_CLASSPATH upto that testOracle parent Directory.
still I am getting the same exception.
could u please sugget me to where I must palce the java class file and its further settings?
Thanks in advance.
HariKrishana.
written by Anil Passi , November 29, 2006
Try to pass the classpath in options field of the concurrent program and try to run it standalone first.
Please note that, DO NOT USE $_TOP notation in classpath when specified from concurrent program options field.
Use notation as below:-
-cp /home/appsborg.zip:/home/xx/java/apps.zip
Put the exact paths and run again, let me know how it goes
thanks
anil passi
written by Hari , November 29, 2006
I am trying to execute a java program through oracle apps forms. I have created a java concurrent program and I have crated a request and submitted and once its completion I am getting an exception saying that
java.lang.ClassNotFoundException: testOracle.OracleTestProgramNew
at oracle.apps.fnd.cp.request.Run.main(Run.java:117)
I have set the JAVA_TOP and AF_CLASSPATH upto that testOracle parent Directory.
still I am getting the same exception.
could u please sugget me to where I must palce the java class file and its further settings?
Thanks in advance.
HariKrishana.
written by Anil Passi , November 29, 2006
Try to pass the classpath in options field of the concurrent program and try to run it standalone first.
Please note that, DO NOT USE $_TOP notation in classpath when specified from concurrent program options field.
Use notation as below:-
-cp /home/appsborg.zip:/home/xx/java/apps.zip
Put the exact paths and run again, let me know how it goes
thanks
anil passi
written by Anil Passi , December 18, 2006
To crack the interview you first need to crack the fundamentals.
Having said that, I suggest you read all possible articles on this site and also on similar other websites. I think ittoolbox has some very nice articles.
The more you read and understand, the better.
I think http://getappstraining.blogspo...index.html will be a good starting point.
Thanks,
Anil Passi
written by Anil Passi , December 18, 2006
To crack the interview you first need to crack the fundamentals.
Having said that, I suggest you read all possible articles on this site and also on similar other websites. I think ittoolbox has some very nice articles.
The more you read and understand, the better.
I think http://getappstraining.blogspo...index.html will be a good starting point.
Thanks,
Anil Passi
written by Anil Passi , December 25, 2006
You may also have a look at the dedicated article on Request Groups http://oracle.anilpassi.com/in...=27&show=1
Thanks,
AniL Passi
written by praveen , December 25, 2006
written by Anil Passi , December 25, 2006
You may also have a look at the dedicated article on Request Groups http://oracle.anilpassi.com/in...=27&show=1
Thanks,
AniL Passi
written by praveen , December 25, 2006
written by raj , January 25, 2007
Firstof all thanking u for such valuable information for starters,,i have aquestion..
can u help me how a formfunction in attached to a menu..
thanks
raj
written by Anil Passi , January 27, 2007
.
.
Hi Raj
Please refer to http://getappstraining.blogspo...their.html
thanks
anil
written by User , February 22, 2007
I just wanted to know, how to define parameters. What If my program requires 2 input parameters say empno,ename?
plz let me know
written by User , February 22, 2007
written by Anil Passi , March 06, 2007
To run a Concurrent program from Unix Shell you can use CONCSUB. A search on Metalink or google will give you the syntax.
To run a UNIX shell script as a concurrent program,you need to register this as Host Concurrent Program. Say you register an executable named XXCONC within XXPO Module.
on unix, do
1. cd $XXPO_TOP/bin
2. vi XXCONC.prog and edit and write script and save
3. ln -s $FND_TOP/bin/fndcpesr XXCONC
4. ls -l XXCONC
Thanks
Anil Passi
written by Tony , April 18, 2007
Want to know the answer to
why do we attach program to a specific application only
Thanks in Advance
written by Anil Passi , April 18, 2007
To find the answer, please see the discussion at bottom part of page
http://getappstraining.blogspot.com/2006/10/oracle-apps-training-index.html
The same question as posted by you has been discussed there.
Thanks
Anil
written by Anil Passi , April 20, 2007
To find the answer, please see the discussion at bottom part of page
http://getappstraining.blogspot.com/2006/10/oracle-apps-training-index.html
The same question as posted by you has been discussed there.
Thanks
Anil
written by Ajay , May 02, 2007
Can i get anyexample of Perl Concurrent program. I am new to perl.
Regards,
Ajay Kunde
written by swati , June 01, 2007
I have a requirement to enter list of values in a concurrent program parameter like comma separated values.
Is it possible?
Thanks,
Swati
written by Anil Passi , June 20, 2007
Please do the following
1. Create a new package procedure for conc program
with two out parameters.
2. Register this as executable for conc program
3. Within this new procedure, you can execute POOL_ASSIGNMENT. The last three out variables can be displayed in log file or logged into some tables for error reporting.
Thanks,
Anil Passi
written by prem , June 28, 2007
What is the differnce between the (Concurrent program) SQL Loader program which is having executable method as Host and the one which is having the executable method as SQL*Loader.
written by nagender , August 18, 2007
I am new to oracle apps and I would like to know about the submission of concurrent prog ufrom pl/sql.
I know that fnd_request.submit_request(parameters) helps in this, but i don't know how to use it.
Can u please give the syntax of that parameters and what all should be passed for this API to call the concurrent prog.
Thanks,
Nagender
written by nagender , August 18, 2007
I am new to oracle apps and I would like to know about the submission of concurrent prog from pl/sql.
I know that fnd_request.submit_request(parameters) helps in this, but i don't know how to use it.
Can u please give the syntax of that parameters and what all should be passed for this API to call the concurrent prog.
Thanks,
Nagender
written by Subrata Das , September 05, 2007
It is very good initiative from your end. needs more on XML publishers.
written by Sandhyakashyap , September 17, 2007
written by madhu , October 25, 2007
Your Article is too Good and its very useful.
Regards
Madhuri
written by sai d , October 29, 2007
great post first of all. but i have a question
is it possible for one seeded concurrent program to be the trigger of another custom one without disturbing the seeded program? if yes how? im really confused as to how to do this!
written by Samuel Schwartz , November 13, 2007
In oracle apps => concurrent requests window we have the option to schedule a request and save the schedule also.
I have a requirement. By using a plsql script I have to create a schedule, attach it to a concurrent request so that it runs periodically. Also I should be able to update and cancel an existing schedule.
I have to create around 4 functions (create schedule, submit request, update schedule and cancel schedule). Can I use fnd_request package routines ? If yes, which ones ?
Pls suggest.
P.S : I tried to use Fnd_Request.Set_Repeat_Options. It creates a default release class on its own and so I am unable to specify a schedule name.
Thanks,
Sam
written by hari Kishan , December 04, 2007
written by Sten Vesterli , January 15, 2008
ln N;D_TOP%inndcpesr.exe XXCONC.exe
NTFS under Windows 2003 server does not support symbolic links
to individual files - that's why it's a hard link. Also remember
to call the link .exe - otherwise, Windows will refuse to
execute it.
written by anonymous , January 16, 2008
I was new to oracle apps.how can i see where all the records are get saved when we save them.plz help me.
written by vasavi , January 17, 2008
I was new to oracle apps.how can i see where all the records are get saved when we save them.plz help me.And also plz can u tell me the books which i can refer to make my basics strong in apps.
written by Manish Sharad , January 22, 2008
Its a good effort from your side, appriciated.
I just want help regarding what is the best documentation or the braindump test questions for the the OCP expert exams, i am planning to appear exam code 1ZO-232 system Admin, for Oracle Business Suite.
Thanks
written by Shekar Suman , January 23, 2008
written by Shekar Suman , January 23, 2008
written by sreekanth munagala , March 17, 2008
I have some queries regarding this article.
In the screen we get while defining executable,
there is one option called SHORTNAME.
Why do we need this SHORTNAME?
what is the difference between executable and execution file name?
written by Anil Passi- , April 26, 2008
Shortname is the identifier of the concurrent executable, lets say a tag.
The actual executable could be a java file or pl/sql etc.
Name of that actual physiscal executable may or may not be the same as tag of the program, i.e. short name
Thanks
Anil
written by TUAN , May 19, 2008
What happen if we define the printer name, print style, print type ect in our PROCEDURE? Will it over write the printer information in the concurrent program submitt form?
written by Santosh Sharma , May 27, 2008
We have a workflow which we want to schedule to execute on the last friday of every month.
We've tried all the permutations and combinations in the Schedule Request form, in the periodic section, if we select last day and Friday, the request is scheduled for each friday and also on the last day.... On clicking the Apply saved schedules button we get
a LOV of some saved schedules. This list has an entry which says "Last working day on or before 15th of every month". This is similar to our requirement. But on selecting this option, we can't determine how this schedule has been defined.
Want your help in getting this request scheduled. Thanks in advance.
Regards,
Santosh
written by Erick T , July 28, 2008
Thanks in advance
written by Erick T , July 28, 2008
Best Regards
written by koppulasandhya , August 21, 2008
Is it possible to access the out_chr_err_buf and out_num_ret_code parameters after the concurrent request is completed?
To be more clear, suppose if I submit the request using fnd_request.submit_request and assign some value to out_chr_err_buf will I be Able to use that value after the concurrent request is completed?
Thanks & Regards,
Sandhya
written by PreethiS , June 29, 2009
I have a request set, which has 2 concurrent programs, one of them is a report and the other is unix script to email the report generated in 1st request.
The report takes the first and last dates of the previous month as its parameters.
I scheduled to run this request set on the first of every month and to increment its date parameters, but unfortunately its not incrementing the date parameters of the 1st request in this set and it is taking the parameters when it was first scheduled.
The set was first scheduled to run on 1st May, so it would take 1st April and 30th April as its parameters for the 1st request. Then again when it ran on the 1st of June, it again took the same params as 1st and 30th April even though the Increment date parameters check box is selected when scheduled.
Thanks,
Preethi.
written by venki R , November 19, 2009
i have written an even alert which will trigger my concurrent program.here i want to pass a the output parameter of the alert as input to the concurrent program and inturn the same parameter to my pl/sql stored procedure.
please help me out in this regard.
thanks
R.Venki
written by Sravana , September 27, 2010
My requirement is to pick up multiple files from one unix server and process them using a concurrent program. For one file it is working fine. When I run the concurrent program, it is successfully picking up the data from the specified Unix location and processing it successfully. Now I need to pick up multiple files from the same location based on the starting 4 letters. Could you please let me know how to do it? Thanks in advance.
This concurrent program picks up inpun file and passes this as input to a control file. So, please help me on how to read multiple input files and send these as input to the control file.
Thanks
Sravani
written by Vikrant , April 07, 2011
can anyone please help me in writing a plsql procedure for submitting a concurrent program.
written by MUDS , September 19, 2011
You can execute a PL/SQL procedure using concurrent program but you cannot write a PL/SQL procedure to execute a concurrent program
| < Prev | Next > |
|---|





procedure xx_register_user_prc in apps schema and compile it or should i add it to any direcotry like AR_TOP/sql and then register it as a concurrent program