Sei sulla pagina 1di 7

4/28/2014 All about Host Concurrent Programs | Oracle Apps Notes

http://oracleappsnotes.wordpress.com/2012/02/21/all-about-host-concurrent-programs/ 1/7
Oracle Apps Notes
A collection of my random notes, primarily on Oracle Apps
All about Host Concurrent Programs
One of the things to remember while registering a host concurrent program is that the first five parameters are reserved by
Oracle E-Business Suite for its own use. The sixth parameter onwards is used for user-defined concurrent program
parameters. The first five parameters refer to the following:
$0: The shell script to be executed
$1: Oracle user/password
$2: Applications user_id
$3: Application user_name
$4: Concurrent program request_id
In addition to these, the environment variable FCP_LOGIN is also used to store the Oracle user/password. The steps
required to register a shell script as a concurrent program are:
1. Create the shell script in the $APPLBIN directory of the specific application top. In this example, I have created the script
under $CS_TOP/bin and named it myscr.prog(Oracle documentation mentions that the extension should be .prog). Its
contents are listed below:
2. Define the concurrent executable with Execution Method Host. In the Execution File Name field, specify the name of
the shell script without extension(myscr for this example)
3. Define the concurrent program with parameters as required. For this example, I have defined one parameter with default
value ABCDEF
4. Add the concurrent program to a request group
5. Make a symbolic link using the execution file name to fndcpesr, which is located in the $FND_TOP/$APPLBIN directory.
The symbolic link is created in the same directory as the shell script.
Ensure that all files have execute permissions to prevent any Permission denied errors. You should now be able to execute
1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
echo 'Printing parameters....'
echo '0:'$0
echo '1:'$1
echo '2:'$2
echo '3:'$3
echo '4:'$4
echo '5:'$5

echo 'FCPLOGIN:'$FCP_LOGIN
echo 'Finished printing parameters.'
1 [oracle@myapps bin]$ ln -s $FND_TOP/bin/fndcpesr myscr
4/28/2014 All about Host Concurrent Programs | Oracle Apps Notes
http://oracleappsnotes.wordpress.com/2012/02/21/all-about-host-concurrent-programs/ 2/7
the concurrent program which in turn will run the shell script. Executing the concurrent program for this example results in
a log file containing the following output. Note that the values of FCP_LOGIN, the reserved parameters and the user-
defined parameter are all printed.
Printing parameters.
0:/u01/oracle/visappl/cs/11.5.0/bin/myscr.prog
1:APPS/APPS
2:1001530
3:EBUSINESS
4:2721361
5:ABCDEF
FCPLOGIN:APPS/APPS
Finished printing parameters.
Return codes for host concurrent program
If the script traps an error, use the UNIX exit command exit 1 to return failure (status code 1) to the Concurrent Manager
running the program. Of course, code sections after the exit command will not be executed.
The concurrent program will complete with status Error and the log file will contain the following:
Printing parameters.
0:/u01/oracle/visappl/cs/11.5.0/bin/myscr.prog
1:APPS/APPS
2:1001530
3:EBUSINESS
4:2721405
5:ABCDEF
/u01/oracle/visappl/cs/11.5.0/bin/myscr
Program exited with status 1
There are no defined exit commands to return a warning status. However, it can be done by using the
FND_CONCURRENT.SET_COMPLETION_STATUS API to set the completion status of the request to Warning. Gareth
Roberts deserves a big Thank You for posting this on Oracle Forums.
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/sh
echo 'Printing parameters....'
echo '0:'$0
echo '1:'$1
echo '2:'$2
echo '3:'$3
echo '4:'$4
echo '5:'$5

exit 1

echo 'FCPLOGIN:'$FCP_LOGIN
echo 'Finished printing parameters.'
4/28/2014 All about Host Concurrent Programs | Oracle Apps Notes
http://oracleappsnotes.wordpress.com/2012/02/21/all-about-host-concurrent-programs/ 3/7
This solution makes use of a SQL script to initialize a session with the request_id of the concurrent program using
FND_GLOBAL.INITIALIZE and then sets the completion status. Upon execution, the concurrent program ends with a
Warning status and generates the following output:
Printing parameters.
0:/u01/oracle/visappl/cs/11.5.0/bin/myscr.prog
1:APPS/APPS
2:1001530
3:EBUSINESS
4:2721408
5:ABCDEF
FCPLOGIN:APPS/APPS
Finished printing parameters.
One important thing to notice is that echoing the parameters $1 and $FCP_LOGIN leads to the Oracle user/password being
written to the log file. This can be prevented by using the options ENCRYPT and SECURE while defining the concurrent
program. ENCRYPT signals the Concurrent Manager to pass the Oracle password in the environment variable FCP_LOGIN.
The Concurrent Manager leaves the password in the argument $1 blank. To prevent the password from being passed,
enter SECURE in the Execution Options field. With this change, Concurrent Manager does not pass the password to the
program.
For this example specifying SECURE in the concurrent program options:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/sh
echo 'Printing parameters....'
echo '0:'$0
echo '1:'$1
echo '2:'$2
echo '3:'$3
echo '4:'$4
echo '5:'$5

MYSTATUS=`sqlplus -s $1 <<!
SET HEADING FEEDBACK OFF PAGESIZE 0
declare
l_result boolean;
l_session_id number;
begin
fnd_global.INITIALIZE(l_session_id, null, null, null,null, -1, null, null, null, null, $4, null,null,null,null,null,null,
l_result := fnd_concurrent.set_completion_status('WARNING','Review log file for details.');
commit;
end;
/
exit;
!`

echo 'FCPLOGIN:'$FCP_LOGIN
echo 'Finished printing parameters.'
4/28/2014 All about Host Concurrent Programs | Oracle Apps Notes
http://oracleappsnotes.wordpress.com/2012/02/21/all-about-host-concurrent-programs/ 4/7
and then running the concurrent program does not set the completion status to Warning since the Oracle user/password
is not passed and the SQL script cannot run. This can be observed from the contents of the log file.
Printing parameters.
0:/u01/oracle/visappl/cs/11.5.0/bin/myscr.prog
1:APPS/
2:1001530
3:EBUSINESS
4:2721412
5:ABCDEF
FCPLOGIN:
Finished printing parameters.
If we set the options field in the concurrent program to ENCRYPT
then the Oracle user/password will be passed only to $FCP_LOGIN and not to $1. We can change the SQL script to use
$FCP_LOGIN instead of $1 and execute the concurrent program. It will now complete with a Warning status since the
Oracle user/password was passed to the script through $FCP_LOGIN. This can be verified from the contents of the log file:
4/28/2014 All about Host Concurrent Programs | Oracle Apps Notes
http://oracleappsnotes.wordpress.com/2012/02/21/all-about-host-concurrent-programs/ 5/7
Printing parameters.
0:/u01/oracle/visappl/cs/11.5.0/bin/myscr.prog
1:APPS/
2:1001530
3:EBUSINESS
4:2721409
5:ABCDEF
FCPLOGIN:APPS/APPS
Finished printing parameters.
Note:
1. Use ${10}, ${11} instead of $10,$11 to refer to double-digit parameters
2. The FND_GLOBAL.INITIALIZE procedure is used to set new values for security globals during login or when the
responsibility is changed, it accepts the following parameters:
Share this:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
session_id in out number,
user_id in number,
resp_id in number,
resp_appl_id in number,
security_group_id in number,
site_id in number,
login_id in number,
conc_login_id in number,
prog_appl_id in number,
conc_program_id in number,
conc_request_id in number,
conc_priority_request in number,
form_id in number default null,
form_appl_id in number default null,
conc_process_id in number default null,
conc_queue_id in number default null,
queue_appl_id in number default null,
server_id in number default -1
You May Like
1.
About these ads
4/28/2014 All about Host Concurrent Programs | Oracle Apps Notes
http://oracleappsnotes.wordpress.com/2012/02/21/all-about-host-concurrent-programs/ 6/7
Oracle external tables A few examples Interacting with SQL and PL/SQL from shell scripts
5 responses to All about Host Concurrent Programs
Ramesh March 21, 2012 at 7:34 pm
Its really useful Articlethank you..!
Reply
siva August 30, 2012 at 6:28 am
good infor
Reply
Raju November 16, 2012 at 7:59 am
Thanks for that {10} help.
Reply
yczenia urodzinowe mieszne April 26, 2013 at 3:18 am
Interesting blog! Is your theme custom made or did you download it from somewhere?
A theme like yours with a few simple tweeks would really make my blog jump
out. Please let me know where you got your design. Appreciate
it
Email Facebook Twitter Google More
All Posts, AOL, API

Like
One blogger likes this.

Related
Interacting with SQL and PL/SQL
from shell scripts
Upgrade APEX 3.2.1 to 4.1.1 on
Oracle Database 11gR2
Calendar LOV for date
parameters in Concurrent
Programs - A workaround In "All Posts" In "APEX"
In "All Posts"
Follow
Follow Oracle Apps
Notes
Get every new post delivered
to your Inbox.
Join 31 other followers
Enter your email address
4/28/2014 All about Host Concurrent Programs | Oracle Apps Notes
http://oracleappsnotes.wordpress.com/2012/02/21/all-about-host-concurrent-programs/ 7/7
Reply
sarunraj April 8, 2014 at 1:55 am
good one!!
Reply
Top
Blog at WordPress.com. The zBench Theme.
Sign me up
Powered by WordPress.com

Potrebbero piacerti anche