How to submit request(Report+Template) using Shell Scripts?
Hi Friends,
How to submit request + Add layout using shell scripts..
If anybody has sample code..Can you please send me to [email protected]
Please help me..
Its Urgent.
Thanks and Regards,
A Swain
Message was edited by:
SwainA
Following is a package where the request is submitted and the layout is added.
Also check iin the other way by adding the layout first n then giving the request.
CREATE OR REPLACE PACKAGE BODY try
AS
PROCEDURE try_proc
errbuf OUT VARCHAR2,
retcode OUT NUMBER
IS
l_mode BOOLEAN;
l_request_id NUMBER;
xml_layout BOOLEAN;
BEGIN
fnd_file.put_line (fnd_file.output, 'USER_ID :' || fnd_global.user_id);
fnd_file.put_line (fnd_file.output, 'REQU_ID :' || fnd_global.resp_id);
fnd_file.put_line (fnd_file.output,
'RESP_APPL_ID :' || fnd_global.resp_appl_id
l_mode := fnd_request.set_mode (db_trigger => TRUE);
IF l_mode IS NOT NULL
THEN
fnd_file.put_line (fnd_file.output,
'Concurrent MODE Option is Success'
END IF;
-- if wrong paramters error recd give all 100 arguments as null
l_request_id :=
fnd_request.submit_request (application => 'app_short_name',
program => 'shortname',
sub_request => FALSE
fnd_file.put_line (fnd_file.output,
'Request_Id 1 is :' || l_request_id
xml_layout :=
fnd_request.add_layout (template_appl_name => 'SQLAP',
template_code => 'CAPINEF01',
template_language => 'en',
template_territory => 'US',
output_format => 'PDF'
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
fnd_file.put_line (fnd_file.LOG,
'Error in procedure package procedure :'
|| SUBSTR (SQLCODE, 1, 20)
|| ':'
|| SUBSTR (SQLERRM, 1, 250)
END try_proc;
END try;
Similar Messages
-
Problem-Report generation using shell script
Hi
We have the Production database and the Reporting database (copy of Production database),
both on Oracle 9.2.0.5 and Solaris 5.8. There is a package inside the Oracle database, which extracts some data from inside the
database, and would generate a report. A shell script has been created in Solaris which would
send in the parameters and call the pakage to generate the report. The parameters it is sending is
the name of report to be generated, and the location where it is to be generated, both hard-coded into
the script. The script is scheduled to run through crontab.
The problem we are facing is that, if we run the script for Reporting database, it successfully
generates the report. But if we use that script for Production database, it gives the error
"Invalid directory Path". I have tried using various other directory paths, even '/tmp'
and '/', but it still gives the same error when executed for Production dataabse.
Could somebody provide any ideas what might be going wrong.
The reasons it is to be executed on Prod db and not the Reporting database are unavoidable.
It anyway runs in off business hours and takes about 10secs to execute.
Please do let me know if there is any other info that I missed to provide here.
Thanks in advance...I will be just guessing because you didn't provide contents of script and package.
The "Invalid directory path" as you said could be ORA-29280 due non existent directory.
Try execute (as sys or system) select * from dba_directories; (or select * from all_directories; as user which the script is login to) on both databases and compare the results. If there is missing your important directory then create it using create directory <dirname>; (from sqlplus and don't forget to grant rights for user).
This error could come from shell script. In that case you should find resolution yourself because you didn't provide script source. -
How to schedule jobs in cron using shell script
Pls help me regarding that.
ThanksNot sure about what do you want exactly.
How to schedule jobs in cronhttp://www.adminschoice.com/docs/crontab.htm
http://www.rahul.net/raithel/MyBackPages/crontab.html
Nicolas. -
Dear All,
Kindly suggest how to submit request with default language as 'American English' in other language sessions (Ex: Arabic).
R12: 12.1.3
The issue is we created function using 'arabic' text in it, which runs perfect in the english session, but doesnt gets value in the arabic session.
So we decided to make the submit request with default language as 'American English'.
Below is the function. Kindly note that SEGMENT1 is not linked to any valueset.
CREATE OR REPLACE FUNCTION F_GET_OLD_LEAVE(P_PERSON_ID NUMBER)
RETURN NUMBER IS
V_DAYS NUMBER;
BEGIN
select
SUM(EXCD_DAYS)
INTO V_DAYS
FROM (
SELECT
-- NVL(SEGMENT5, 'تجاوز') Late_type,
-- SEGMENT1 NOTES,
-- ACTUAL_TERMINATION_DATE,
(CASE
WHEN NVL(SEGMENT5,'تجاوز') not in ( 'تجاوز' ,'إجازة غير مدفوعة') and segment1 not in ('إجازة غير مدفوعة') THEN 0
--WHEN SEGMENT1 like 'إجازة غير مدفوعة' THEN
--TO_DATE(to_date(SUBSTR(segment3, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR') -
--TO_DATE(to_date(SUBSTR(segment2, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR') +1
when segment1 not in('بدل نقدي','إجازة غير مدفوعة') and segment4 is null then
TRUNC(to_date(ACTUAL_TERMINATION_DATE,'DD/MM/RRRR'))- TO_DATE(to_date(SUBSTR(segment3, 1, 10),'DD/MM/YYYY'), 'DD/MM/RRRR')-1
when segment1 in('إجازة غير مدفوعة') and segment4 is null then
TRUNC(to_date(ACTUAL_TERMINATION_DATE,'DD/MM/RRRR'))- TO_DATE(to_date(SUBSTR(segment2, 1, 10),'DD/MM/YYYY'), 'DD/MM/RRRR')
WHEN SEGMENT1 <> 'إجازة غير مدفوعة' and
TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR') <
TO_DATE(to_date(SUBSTR(segment3, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')
THEN 0
WHEN SEGMENT1 <> 'إجازة غير مدفوعة' and
TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR') -
TO_DATE(to_date(SUBSTR(segment3, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR') <=1
THEN 0
WHEN SEGMENT1 like '%بدل نقدي%' then 0
-- TO_DATE(to_date(SUBSTR(segment2, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')
WHEN SEGMENT1 like '%إجازة سنوية%' and segment5 in( 'إجازة غير مدفوعة','تجاوز')and
TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR') -
TO_DATE(to_date(SUBSTR(segment3, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR') >=2
then
TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR') -
TO_DATE(to_date(SUBSTR(segment3, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR') -1
WHEN SEGMENT1 like '%إجازة حج%' and segment5 in('إجازة غير مدفوعة','تجاوز') and
TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR') -
TO_DATE(to_date(SUBSTR(segment3, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR') >=2
then
TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR') -
TO_DATE(to_date(SUBSTR(segment3, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR') -1
when SEGMENT1 LIKE '%إجازة غير مدفوعة%' AND
TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR') -
TO_DATE(to_date(SUBSTR(segment3, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')<=1
THEN
TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR') -
TO_DATE(to_date(SUBSTR(segment2, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')
when SEGMENT1 LIKE '%إجازة غير مدفوعة%' AND SEGMENT5 NOT IN('تجاوز','إجازة غير مدفوعة') AND
TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR') -
TO_DATE(to_date(SUBSTR(segment3, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')>=2
THEN
TO_DATE(to_date(SUBSTR(segment3, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR') -
TO_DATE(to_date(SUBSTR(segment2, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')+1
when SEGMENT1 LIKE '%إجازة غير مدفوعة%' AND SEGMENT5 IN('تجاوز','إجازة غير مدفوعة') AND
TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR') -
TO_DATE(to_date(SUBSTR(segment3, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')>=2
THEN
TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR') -
TO_DATE(to_date(SUBSTR(segment2, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')
WHEN
EXTRACT(YEAR FROM TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')) <>
EXTRACT(YEAR FROM TO_DATE(to_date(SUBSTR(segment3, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR'))
THEN
TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'),'DD/MM/RRRR') -
TO_DATE(to_date(SUBSTR(segment3, 1, 10),'YYYY/MM/DD'),'DD/MM/RRRR') - 2
WHEN
to_char(to_date(SUBSTR(SEGMENT3, 1, 10),'YYYY/MM/DD'),'DD/MM/YYYY') =
to_char(to_date(SUBSTR(SEGMENT4, 1, 10),'YYYY/MM/DD'),'DD/MM/YYYY')
THEN 0
WHEN
EXTRACT(DAY FROM TO_DATE(to_date(SUBSTR(segment3, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR'))= 31
THEN
TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR') -
TO_DATE(to_date(SUBSTR(segment3, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')-1
--------------------------------------------when enddate is NULL---------------------------------------------------------------------------------
-- WHEN segment3 IS NULL THEN round(TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'),'DD/MM/RRRR') -
-- TO_DATE(to_date(SUBSTR(segment2, 1, 10),'YYYY/MM/DD'),'DD/MM/RRRR'))
WHEN segment3 IS NULL THEN ((EXTRACT(MONTH FROM TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')) -
EXTRACT(MONTH FROM TO_DATE(to_date(SUBSTR(segment2, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR'))) * 30) +
(EXTRACT(DAY FROM TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')) -
EXTRACT(DAY FROM TO_DATE(to_date(SUBSTR(segment2, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')))
-----***********************************when segment1**********************************--------------------------
WHEN SEGMENT1 like '%صادف%' THEN ((EXTRACT(MONTH FROM TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')) -
EXTRACT(MONTH FROM TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR'))) * 0) +
(EXTRACT(DAY FROM TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')) -
EXTRACT(DAY FROM TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')))
WHEN
EXTRACT(YEAR FROM TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')) =
EXTRACT(YEAR FROM TO_DATE(to_date(SUBSTR(segment3, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR'))
THEN
((EXTRACT(MONTH FROM TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')) -
EXTRACT(MONTH FROM TO_DATE(to_date(SUBSTR(segment3, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR'))) * 30) +
(EXTRACT(DAY FROM TO_DATE(to_date(SUBSTR(segment4, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')) -
EXTRACT(DAY FROM TO_DATE(to_date(SUBSTR(segment3, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')))-1
ELSE 0
END )EXCD_DAYS
FROM HR.PER_ANALYSIS_CRITERIA C,
PER_ALL_PEOPLE_F PPF,
PER_PERIODS_OF_SERVICE PPPS,
PER_PERSON_ANALYSES T ,
fnd_id_flex_structures_vl f
WHERE 1 = 1
AND T.ANALYSIS_CRITERIA_ID = C.ANALYSIS_CRITERIA_ID
AND PPF.PERSON_ID = T.PERSON_ID
and ppps.PERSON_ID=ppf.person_id(+)
and ppps.ACTUAL_TERMINATION_DATE BETWEEN ppf.effective_start_date and nvl(ppf.effective_end_date, to_date('31/12/4712', 'DD/MM/YYYY'))
-- AND C.ID_FLEX_NUM = 50318
and c.id_flex_num = f.id_flex_num
AND f.id_flex_code = 'PEA'
and f.ID_FLEX_STRUCTURE_NAME = 'XX_Old_Leave_Details'
AND PPF.person_id = P_PERSON_ID
AND T.DATE_FROM>=( select
TO_DATE(to_date(SUBSTR(xx.global_value, 1, 10),'YYYY/MM/DD'), 'DD/MM/RRRR')
FROM
ff_globals_f xx
where xx.GLOBAL_NAME='XX_NEW_LEAVES_DATE_FROM'
AND SYSDATE BETWEEN XX.EFFECTIVE_START_DATE AND XX.EFFECTIVE_END_DATE)
and substr(c.segment1,1,10)>=
select substr(xx.global_value,1,10)
FROM
ff_globals_f xx
where xx.GLOBAL_NAME='XX_NEW_LEAVES_STD'
AND SYSDATE BETWEEN XX.EFFECTIVE_START_DATE AND XX.EFFECTIVE_END_DATE
RETURN NVL(V_DAYS, 0);
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
Thanks in Advance.
Regards,
Afzal.Dear All,
I found the solution for the above function.
In the same function I removed the static arabic values replacing with code values from the value set.
In my scenario there is a value set where some of these values exists, and other we can add there.
Kindly let me know if someone was successful by using the arabic text in the coding and defaulting the language in conc prog as English.
Thanks a lot.
Regards,
Afzal. -
How to get ORA errors in alertlog file using shell script.
Hi,
Can anyone tell me how to get all ORA errors between two particular times in an alertlog file using shell script.
ThanksHi,
You can define the alert log as an external table, and extract messages with SQL, very cool:
http://www.dba-oracle.com/t_oracle_alert_log_sql_external_tables.htm
If you want to write a shell script to scan the alert log, see here:
http://www.rampant-books.com/book_2007_1_shell_scripting.htm
#!/bin/ksh
# log monitoring script
# report all errors (and specific warnings) in the alert log
# which have occurred since the date
# and time in last_alerttime_$ORACLE_SID.txt
# parameters:
# 1) ORACLE_SID
# 2) optional alert exclusion file [default = alert_logmon.excl]
# exclude file format:
# error_number error_number
# error_number ...
# i.e. a string of numbers with the ORA- and any leading zeroes that appear
# e.g. (NB the examples are NOT normally excluded)
# ORA-07552 ORA-08006 ORA-12819
# ORA-01555 ORA-07553
BASEDIR=$(dirname $0)
if [ $# -lt 1 ]; then
echo "usage: $(basename) ORACLE_SID [exclude file]"
exit -1
fi
export ORACLE_SID=$1
if [ ! -z "$2" ]; then
EXCLFILE=$2
else
EXCLFILE=$BASEDIR/alert_logmon.excl
fi
LASTALERT=$BASEDIR/last_alerttime_$ORACLE_SID.txt
if [ ! -f $EXCLFILE ]; then
echo "alert exclusion ($EXCLFILE) file not found!"
exit -1
fi
# establish alert file location
export ORAENV_ASK=NO
export PATH=$PATH:/usr/local/bin
. oraenv
DPATH=`sqlplus -s "/ as sysdba" <<!EOF
set pages 0
set lines 160
set verify off
set feedback off
select replace(value,'?','$ORACLE_HOME')
from v\\\$parameter
where name = 'background_dump_dest';
!EOF
`
if [ ! -d "$DPATH" ]; then
echo "Script Error - bdump path found as $DPATH"
exit -1
fi
ALOG=${DPATH}/alert_${ORACLE_SID}.log
# now create awk file
cat > $BASEDIR/awkfile.awk<<!EOF
BEGIN {
# first get excluded error list
excldata="";
while (getline < "$EXCLFILE" > 0)
{ excldata=excldata " " \$0; }
print excldata
# get time of last error
if (getline < "$LASTALERT" < 1)
{ olddate = "00000000 00:00:00" }
else
{ olddate=\$0; }
errct = 0; errfound = 0;
{ if ( \$0 ~ /Sun/ || /Mon/ || /Tue/ || /Wed/ || /Thu/ || /Fri/ || /Sat/ )
{ if (dtconv(\$3, \$2, \$5, \$4) <= olddate)
{ # get next record from file
next; # get next record from file
# here we are now processing errors
OLDLINE=\$0; # store date, possibly of error, or else to be discarded
while (getline > 0)
{ if (\$0 ~ /Sun/ || /Mon/ || /Tue/ || /Wed/ || /Thu/ || /Fri/ || /Sat/ )
{ if (errfound > 0)
{ printf ("%s<BR>",OLDLINE); }
OLDLINE = \$0; # no error, clear and start again
errfound = 0;
# save the date for next run
olddate = dtconv(\$3, \$2, \$5, \$4);
continue;
OLDLINE = sprintf("%s<BR>%s",OLDLINE,\$0);
if ( \$0 ~ /ORA-/ || /[Ff]uzzy/ )
{ # extract the error
errloc=index(\$0,"ORA-")
if (errloc > 0)
{ oraerr=substr(\$0,errloc);
if (index(oraerr,":") < 1)
{ oraloc2=index(oraerr," ") }
else
{ oraloc2=index(oraerr,":") }
oraloc2=oraloc2-1;
oraerr=substr(oraerr,1,oraloc2);
if (index(excldata,oraerr) < 1)
{ errfound = errfound +1; }
else # treat fuzzy as errors
{ errfound = errfound +1; }
END {
if (errfound > 0)
{ printf ("%s<BR>",OLDLINE); }
print olddate > "$LASTALERT";
function dtconv (dd, mon, yyyy, tim, sortdate) {
mth=index("JanFebMarAprMayJunJulAugSepOctNovDec",mon);
if (mth < 1)
{ return "00000000 00:00:00" };
# now get month number - make to complete multiple of three and divide
mth=(mth+2)/3;
sortdate=sprintf("%04d%02d%02d %s",yyyy,mth,dd,tim);
return sortdate;
!EOF
ERRMESS=$(nawk -f $BASEDIR/awkfile.awk $ALOG)
ERRCT=$(echo $ERRMESS|awk 'BEGIN {RS="<BR>"} END {print NR}')
rm $LASTALERT
if [ $ERRCT -gt 1 ]; then
echo "$ERRCT Errors Found \n"
echo "$ERRMESS"|nawk 'BEGIN {FS="<BR>"}{for (i=1;NF>=i;i++) {print $i}}'
exit 2
fi -
How to submit a report ,Passing the internal tables from parent report
How to submit a report ,Passing the internal tables from the parent report ?
The SUBMIT statement executes a report from within a report. i.e. you could have a drill-down which
calls another report. Can only execute reports of type '1'.
*Code used to execute a report
SUBMIT Zreport.
*Code used to populate 'select-options' & execute report
DATA: seltab type table of rsparams,
seltab_wa like line of seltab.
seltab_wa-selname = 'PNPPERNR'.
seltab_wa-sign = 'I'.
seltab_wa-option = 'EQ'.
load each personnel number accessed from the structure into
parameters to be used in the report
loop at pnppernr.
seltab_wa-low = pnppernr-low.
append seltab_wa to seltab.
endloop.
SUBMIT zreport with selection-table seltab
via selection-screen.
*Code used to populate 'parameters' & execute report
SUBMIT zreport with p_param1 = 'value'
with p_param2 = 'value'.
Other additions for SUBMIT
*Submit report and return to current program afterwards
SUBMIT zreport AND RETURN.
*Submit report via its own selection screen
SUBMIT zreport VIA SELECTION-SCREEN.
*Submit report using selection screen variant
SUBMIT zreport USING SELECTION-SET 'VARIANT1'.
*Submit report but export resultant list to memory, rather than
*it being displayed on screen
SUBMIT zreport EXPORTING LIST TO MEMORY.
Once report has finished and control has returned to calling
program, use function modules LIST_FROM_MEMORY, WRITE_LIST and
DISPLAY_LIST to retrieve and display report.
*Example Code (Retrieving list from memory)
DATA BEGIN OF itab_list OCCURS 0.
INCLUDE STRUCTURE abaplist.
DATA END OF itab_list.
DATA: BEGIN OF vlist OCCURS 0,
filler1(01) TYPE c,
field1(06) TYPE c,
filler(08) TYPE c,
field2(10) TYPE c,
filler3(01) TYPE c,
field3(10) TYPE c,
filler4(01) TYPE c,
field4(3) TYPE c,
filler5(02) TYPE c,
field5(15) TYPE c,
filler6(02) TYPE c,
field6(30) TYPE c,
filler7(43) TYPE c,
field7(10) TYPE c,
END OF vlist.
SUBMIT zreport EXPORTING LIST TO MEMORY.
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = itab_list
EXCEPTIONS
not_found = 4
OTHERS = 8.
CALL FUNCTION 'LIST_TO_ASCI'
EXPORTING
list_index = -1
TABLES
listasci = vlist
listobject = itab_list
EXCEPTIONS
empty_list = 1
list_index_invalid = 2
OTHERS = 3.
IF sy-subrc NE '0'.
WRITE:/ 'LIST_TO_ASCI error !! ', sy-subrc.
ENDIF.
Submit report as job
*Submit report as job(i.e. in background)
data: jobname like tbtcjob-jobname value
' TRANSFER TRANSLATION'.
data: jobcount like tbtcjob-jobcount,
host like msxxlist-host.
data: begin of starttime.
include structure tbtcstrt.
data: end of starttime.
data: starttimeimmediate like btch0000-char1.
Job open
call function 'JOB_OPEN'
exporting
delanfrep = ' '
jobgroup = ' '
jobname = jobname
sdlstrtdt = sy-datum
sdlstrttm = sy-uzeit
importing
jobcount = jobcount
exceptions
cant_create_job = 01
invalid_job_data = 02
jobname_missing = 03.
if sy-subrc ne 0.
"error processing
endif.
Insert process into job
SUBMIT zreport and return
with p_param1 = 'value'
with p_param2 = 'value'
user sy-uname
via job jobname
number jobcount.
if sy-subrc > 0.
"error processing
endif.
Close job
starttime-sdlstrtdt = sy-datum + 1.
starttime-sdlstrttm = '220000'.
call function 'JOB_CLOSE'
exporting
event_id = starttime-eventid
event_param = starttime-eventparm
event_periodic = starttime-periodic
jobcount = jobcount
jobname = jobname
laststrtdt = starttime-laststrtdt
laststrttm = starttime-laststrttm
prddays = 1
prdhours = 0
prdmins = 0
prdmonths = 0
prdweeks = 0
sdlstrtdt = starttime-sdlstrtdt
sdlstrttm = starttime-sdlstrttm
strtimmed = starttimeimmediate
targetsystem = host
exceptions
cant_start_immediate = 01
invalid_startdate = 02
jobname_missing = 03
job_close_failed = 04
job_nosteps = 05
job_notex = 06
lock_failed = 07
others = 99.
if sy-subrc eq 0.
"error processing
endif. -
Passing flexfield from report wrapper to seeded report using shell script
I am unable to pass flexfield values from report wrapper to seeded report using shell script
below is the shell script that i am using to transfer GL Account High and GL Account Low to the seeded program Receipt Journal Report (ARXRJR). the flex fields get passed through the parameter v_param_12 and v_param_13. but all i am getting in the seeded report log file is the reporting level,reporting context,set_of_books,period, gl_date_low/high .
#TEST Program for Passing GL Account High and GL Account Low
v_user_name=`echo $3`
v_login_pwd=`echo $FCP_LOGIN`
v_prog_name=`echo TESTARXRJR`
echo 'v_prog_name: '$v_prog_name
# testing for passing the arguments from CM ...
if [ -z "$1" ]
then
echo "Please pass the first argument...."
exit 1
fi
v_request_id=`echo $4`
echo 'v_request_id: '$v_request_id
v_param_1=`echo $5`
echo 'v_param_1: '$v_param_1
v_param_2=`echo $6`
echo 'v_param_2: '$v_param_2
v_param_3=`echo $7`
echo 'v_param_3: '$v_param_3
v_param_4=`echo $8`
echo 'v_param_4: '$v_param_4
v_param_5="$9"
echo 'v_param_5: '$v_param_5
shift
v_param_6=`echo $9`
echo 'v_param_6: '$v_param_6
shift
v_param_7=`echo $9'`
echo 'v_param_7: '$v_param_7
shift
v_param_8=`echo "$9"`
echo 'v_param_8: '$v_param_8
shift
v_param_9=`echo $9`
echo 'v_param_9: '$v_param_9
shift
v_param_10=`echo $9`
echo 'v_param_10: '$v_param_10
shift
v_param_11=`echo $9`
echo 'v_param_11: '$v_param_11
shift
v_param_12=`echo $9`
echo 'v_param_12: '$v_param_12
shift
v_param_13=`echo $9`
echo 'v_param_13: '$v_param_13
shift
v_param_14=`echo $9`
echo 'v_param_14: '$v_param_14
shift
v_param_15=`echo $9`
echo 'v_param_15: '$v_param_15
shift
v_param_16=`echo $9`
echo 'v_param_16: '$v_param_16
shift
v_param_17=`echo $9`
echo 'v_param_17: '$v_param_17
shift
v_param_18=`echo $9`
echo 'v_param_18: '$v_param_18
shift
v_param_19=`echo $9`
echo 'v_param_19: '$v_param_19
shift
v_param_20=`echo $9`
echo 'v_param_20: '$v_param_20
shift
v_param_21=`echo $9`
echo 'v_param_21: '$v_param_21
shift
v_param_22=`echo $9`
echo 'v_param_22: '$v_param_22
shift
v_param_23=`echo $9`
echo 'v_param_23: '$v_param_23
echo "Executiong SQL to obtain org id and responsibility name"
(sqlplus -s /nolog <<end_of_sql
conn $v_login_pwd
set heading off
set echo off
set feedback off
SELECT 'ORGID:'||b.profile_option_value || ':' ||e.responsibility_name
FROM fnd_profile_options a,
fnd_profile_option_values b,
fnd_concurrent_requests c,
fnd_responsibility d,
fnd_responsibility_tl e
WHERE c.request_id = $v_request_id
AND c.responsibility_id = b.level_value
AND b.profile_option_id = a.profile_option_id
AND a.application_id = b.application_id
AND c.responsibility_application_id = d.application_id
AND d.application_id = e.application_id
AND a.profile_option_name = 'ORG_ID'
AND c.responsibility_id = d.responsibility_id
AND d.responsibility_id = e.responsibility_id;
exit
end_of_sql
) > a.log
v_var=`grep -iv "ORG_ID" a.log|sed 's/Connected.//'`
echo 'v_var: ' $v_var
v_org=`echo $v_var| awk 'FS=":" {print $2 }'`
v_resp_name=`echo $v_var | awk 'FS=":" {print $3}'`
echo 'v_org :'$v_org
echo 'v_resp_name :'$v_resp_name
echo 'Sumitting Receipt Journal Report...'
user_request=`CONCSUB $v_login_pwd GL "$v_resp_name" $v_user_name WAIT=Y CONCURRENT AR ARXRJR \
\"$v_param_3\"\
\"$v_param_4\"\
\"$v_param_5\"\
\"$v_param_6\"\
\"$v_param_7\"\
\"$v_param_8\"\
\"$v_param_9\"\
\"$v_param_10\"\
\"$v_param_11\"\
\"$v_param_12\"\
\"$v_param_13\"\
\"$v_param_14\"\
\"$v_param_15\"\
\"$v_param_16\"\
\"$v_param_17\"\
\"$v_param_18\"\
\"$v_param_19\"\
\"$v_param_20\"\
\"$v_param_21\"\
\"$v_param_22\"\
\"$v_param_23\"`
user_request=`echo $user_request|awk '{print $3}'`
echo Request is $user_request
trx_rep_file="$user_request"
echo 'trx_rep_file: '$trx_rep_file
sleep 10
for i in 1 2 3 4 5
do
if test -f $APPLCSF/$APPLLOG/l$user_request.req
then
if test [`grep -i '"Concurrent process completed successfully"' $APPLCSF/$APPLLOG/l$user_request.req`]
then
if test -f $APPLCSF/$APPLOUT/o$trx_rep_file.out
then
echo +++++++++++++++++++++++++++++++++
echo 'output file found'
echo ++++++++++++++++++++++++++++++++++++++
else
echo +++++++++++++++++++++++++++++++++++++++++
echo failure in Report listing production
echo +++++++++++++++++++++++++++++++++++++++
fi
break
else
echo +++++++++++++++++++++++++++++++++++++++
echo Job not Over Yet
echo +++++++++++++++++++++++++++++++++++++++++++++
fi
echo +++++++++++++++++++++++++++++++++++++++
echo File not found yet
echo ++++++++++++++++++++++++++++++++++++++
fi
sleep 10
done
echo ----------------------------------------------------------
echo Transaction Listing process over
echo ---------------------------------------------------------
echo ----------------------------------------------------------
echo Executing SQL to derive Search Pattern
echo ----------------------------------------------------------
v_pattern=`sqlplus -s /nolog <<EOF1
conn $v_login_pwd
set heading off
set echo off
set feedback off
SELECT 'SEARCH^'||meaning||'^'||attribute1||'^'||attribute2||'^'||attribute3
FROM fnd_lookup_values
WHERE lookup_type = '$v_param_2'
AND lookup_code = '$v_prog_name';
exit
EOF1`
echo 'v_pattern: '$v_pattern
v_pattern_n1=`echo $v_pattern|sed 's/Connected.//'|awk 'FS="^" {print $2}'`
echo 'v_pattern_n1: '$v_pattern_n1
v_pattern_n2=`echo $v_pattern|sed 's/Connected.//'|awk 'FS="^" {print $3}'`
echo 'v_pattern_n2: '$v_pattern_n2
v_pattern_n3=`echo $v_pattern|sed 's/Connected.//'|awk 'FS="^" {print $4}'`
echo 'v_pattern_n3: '$v_pattern_n3
v_pattern_n4=`echo $v_pattern|sed 's/Connected.//'|awk 'FS="^" {print $4}'|sed 's/ //'`
echo 'v_pattern_n4: '$v_pattern_n4
echo 'v_param_12: '$v_param_12
echo 'v_param_13: '$v_param_13
echo -----------------------------------
echo Deriving final output
echo ----------------------------------
v_var=`cat $APPLCSF/$APPLOUT/o$trx_rep_file.out | grep -i "$v_pattern_n1"|\
sed "s/(/-/g"|sed "s/)/ /g"|\
sed "s/$v_pattern_n1/$v_pattern_n2/g"|\
sed 's/ /~/g'|\
sed 's/~~*/~/g'|\
sed 's/ *//g'|\
sed 's/,//g'`
echo 'v_var: '$v_var
v_var_2=`cat $APPLCSF/$APPLOUT/o$trx_rep_file.out|grep -i "$v_pattern_n3"|\
uniq`
v_out_1=`echo "$v_var"|grep -i "$v_pattern_n2"|awk 'FS="~" {print $3}'`
echo 'v_out_1: '$v_out_1
echo 'v_var_2: '$v_var_2
echo ------------------------------------------------------------
v_out_2=`echo "$v_var_2"|grep -i "$v_pattern_n3"|awk 'FS=":" {print $2}'`
echo 'v_out_2: '$v_out_2
echo ----------------------------------------------
echo Process comleted
echo ----------------------------------------------------
echo ================================================================================
#---------------------------------------------------------------------------------------------------The name of this OTN group is "Database - General"
Your question relates to an unnamed application that might be E-Business Suite, or PeopleSoft, or Siebel, who can say.
Please re-ask your question in the appropriate applications forum and be sure to clearly name the full product name and version. We are not mind readers and we can not look over your shoulder. -
How we can call or execute a SHELL script through Oracle forms or Reports
How we can call or execute a SHELL script through Oracle forms or Reports.Its urgent.......
Use HOST command.
-
How to create custom report plugin using child region report metadata
Hi,
I want to ask for help on how to create custom report plugin using child region report metadata. My idea is to create a child region, a classic report and set the condition to never.
Then i will query the child report metadata from apex view and use it to create a custom report like using jquery jq-grid. Any idea how i can create a process that will use the child report
metadata? I dont know how i can create a process just like how apex work, how apex render report, coz i want it to be control using the standard apex report attribute. This plugin will
render according to the child report attribute.
Is there anybody here had ever done this?Hi Nicolette,
Thanks for the reply. I know where to find the metadata, just asking for idea on how the rendering process will be.
Start from determining column heading, column order until finish rendering the report. The same way how apex
render the classic report.
Previously this imy my rendering process:
FUNCTION GETCOLUMN(P_REGION IN APEX_PLUGIN.T_REGION,
P_PLUGIN IN APEX_PLUGIN.T_PLUGIN,
P_VALUE IN VARCHAR2) RETURN SYS.DBMS_SQL.DESC_TAB2 IS
VSQLHANDLER APEX_PLUGIN_UTIL.T_SQL_HANDLER;
VCOLCOUNT NUMBER;
VCOLNAMES VARCHAR2(2000);
VAJAXIDENTIFIER VARCHAR2(100);
VPAGESIZE TYPEATTR := P_REGION.ATTRIBUTE_04;
VJSCODE VARCHAR2(32767);
BEGIN
VSQLHANDLER := APEX_PLUGIN_UTIL.GET_SQL_HANDLER(P_SQL_STATEMENT => 'select * from s_emp',
P_MIN_COLUMNS => 1,
P_MAX_COLUMNS => 999,
P_COMPONENT_NAME => P_REGION.ID);
VCOLCOUNT := VSQLHANDLER.COLUMN_LIST.COUNT();
FOR I IN 1 .. VCOLCOUNT LOOP
VCOLNAMES := VCOLNAMES || '{name: "' ||
UPPER(VSQLHANDLER.COLUMN_LIST(I).COL_NAME) || '",';
END LOOP;
APEX_PLUGIN_UTIL.FREE_SQL_HANDLER(VSQLHANDLER);
RETURN VSQLHANDLER.COLUMN_LIST;
EXCEPTION
WHEN OTHERS THEN
APEX_PLUGIN_UTIL.FREE_SQL_HANDLER(VSQLHANDLER);
RAISE;
END GETCOLUMN;
So this is how i get the header for my report plugin. The same method is use to get the value / data for each column. This process is work. So now
i want to extend my plugin so that i will use all attributes from the child report to render my plugin. So the column header, column order, all will depend
on the child report. And the column display condition is set, it will also check the condition before render the column. Sounds like i want to reinvent
the normal apex rendering process but this is what i want to achieve.
I need help to find the correct logic for my render process. Don't want too much for starting, just want to render the plugin correctly, same with child report,
same columns alias, column ordering and column conditional display.
Thanks,
akulala -
How to write CLOB parameter in a file or XML using shell script?
I executed a oracle stored procedure using shell script. How can i get the OUT parameter of the procedure(CLOB) and write it in a file or XML in UNIX environment using shell script?
Edit/Delete MessageSQL> var c clob
SQL>
SQL> begin
2 select
3 DBMS_XMLGEN.getXML(
4 'select rownum, object_type, object_name from user_objects where rownum <= 5'
5 ) into :c
6 from dual;
7 end;
8 /
PL/SQL procedure successfully completed.
SQL>
SQL> set long 999999
SQL> set heading off
SQL> set pages 0
SQL> set feedback off
SQL> set termout off
SQL> set trimspool on
// following in the script is not echo'ed to screen
set echo off
spool /tmp/x.xml
select :c from dual;
spool off
SQL>
SQL> --// file size
SQL> !ls -l /tmp/x.xml
-rw-rw-r-- 1 billy billy 583 2011-12-22 13:35 /tmp/x.xml
SQL> --// file content
SQL> !cat /tmp/x.xml
<?xml version="1.0"?>
<ROWSET>
<ROW>
<ROWNUM>1</ROWNUM>
<OBJECT_TYPE>TABLE</OBJECT_TYPE>
<OBJECT_NAME>BONUS</OBJECT_NAME>
</ROW>
<ROW>
<ROWNUM>2</ROWNUM>
<OBJECT_TYPE>PROCEDURE</OBJECT_TYPE>
<OBJECT_NAME>CLOSEREFCURSOR</OBJECT_NAME>
</ROW>
<ROW>
<ROWNUM>3</ROWNUM>
<OBJECT_TYPE>TABLE</OBJECT_TYPE>
<OBJECT_NAME>DEPT</OBJECT_NAME>
</ROW>
<ROW>
<ROWNUM>4</ROWNUM>
<OBJECT_TYPE>TABLE</OBJECT_TYPE>
<OBJECT_NAME>EMP</OBJECT_NAME>
</ROW>
<ROW>
<ROWNUM>5</ROWNUM>
<OBJECT_TYPE>TABLE</OBJECT_TYPE>
<OBJECT_NAME>EMPTAB</OBJECT_NAME>
</ROW>
</ROWSET>
SQL> -
My question is that How to add a report into the SAP-SCRIPT .
by using PERFORM ......ENDPERFORM
I don't know how to used it .Hi Sandeep,
Please check this link
http://help.sap.com/saphelp_40b/helpdata/en/d1/803279454211d189710000e8322d00/content.htm
http://www.allinterview.com/showanswers/37425.html
Calling ABAP Subroutines: PERFORM
You can use the PERFORM command to call an ABAP subroutine (form) from any program, subject to the normal ABAP runtime authorization checking. You can use such calls to subroutines for carrying out calculations, for obtaining data from the database that is needed at display or print time, for formatting data, and so on.
PERFORM commands, like all control commands, are executed when a document is formatted for display or printing. Communication between a subroutine that you call and the document is by way of symbols whose values are set in the subroutine.
Syntax in a form window:
/: PERFORM <form> IN PROGRAM <prog>
/: USING &INVAR1&
/: USING &INVAR2&
/: CHANGING &OUTVAR1&
/: CHANGING &OUTVAR2&
/: ENDPERFORM
INVAR1 and INVAR2 are variable symbols and may be of any of the four SAPscript symbol types.
OUTVAR1 and OUTVAR2 are local text symbols and must therefore be character strings.
The ABAP subroutine called via the command line stated above must be defined in the ABAP report prog as follows:
FORM <form> TABLES IN_TAB STRUCTURE ITCSY
OUT_TAB STRUCTURE ITCSY.
ENDFORM.
The values of the SAPscript symbols passed with /: USING... are now stored in the internal table IN_TAB . Note that the system passes the values as character string to the subroutine, since the field Feld VALUE in structure ITCSY has the domain TDSYMVALUE (CHAR 80). See the example below on how to access the variables.
The internal table OUT_TAB contains names and values of the CHANGING parameters in the PERFORM statement. These parameters are local text symbols, that is, character fields. See the example below on how to return the variables within the subroutine.
From within a SAPscript form, a subroutine GET_BARCODE in the ABAP program QCJPERFO is called. Then the simple barcode contained there (u2018First pageu2019, u2018Next pageu2019, u2018Last pageu2019) is printed as local variable symbol.
Definition in the SAPscript form:
/: PERFORM GET_BARCODE IN PROGRAM QCJPERFO
/: USING &PAGE&
/: USING &NEXTPAGE&
/: CHANGING &BARCODE&
/: ENDPERFORM
/ &BARCODE&
Coding of the calling ABAP program:
REPORT QCJPERFO.
FORM GET_BARCODE TABLES IN_PAR STUCTURE ITCSY
OUT_PAR STRUCTURE ITCSY.
DATA: PAGNUM LIKE SY-TABIX, "page number
NEXTPAGE LIKE SY-TABIX. "number of next page
READ TABLE IN_PAR WITH KEY u2018PAGEu2019.
CHECK SY-SUBRC = 0.
PAGNUM = IN_PAR-VALUE.
READ TABLE IN_PAR WITH KEY u2018NEXTPAGEu2019.
CHECK SY-SUBRC = 0.
NEXTPAGE = IN_PAR-VALUE.
READ TABLE IN_PAR WITH KEY u2018BARCODEu2019.
CHECK SY-SUBRC = 0.
IF PAGNUM = 1.
OUT_PAR-VALUE = u2018|u2019. "First page
ELSE.
OUT_PAR-VALUE = u2018||u2019. "Next page
ENDIF.
IF NEXTPAGE = 0.
OUT_PAR-VALUE+2 = u2018Lu2019. "Flag: last page
ENDIF.
MODIFY OUT_PAR INDEX SY-TABIX.
ENDFORM.
Best regards,
raam -
How to Email Concurrent Program Output to Email using Shell Script
Hi All,
Have a Nice Day,
I have a tricky requirement and i was not able to achieve, let me explain my requirement
I have created a PLSQL Concurrent Program named "Approval Update". This will do update and it display the number of rows updated.
Now i need to take this concurrent program output and it needs to be send it to the person who submits this program as an email using shell scripts.
I have referred meta link note as well as some OTN posts but I was not able to achieve this.
Please help me to complete this As soon as possible, Thanks in advance for your help.
Let me know if you need more clarifications.
Regards,
CSKI don't have much idea in shell scripts all i want is, in my shell script i need to get the parent concurrent program output and that needs to be emailed to the intended person.
Please help to to get the shell script commands for this.I do not have any shell script to share, sorry! If you want the query to get the parent request_id so you can get the log/out file name/location from then please refer to:
REQUESTS.sql Script for Parent/Child Request IDs and Trace File IDs [ID 280295.1]
http://etrm.oracle.com/pls/et1211d9/etrm_pnav.show_object?c_name=FND_CONC_REQ_SUMMARY_V&c_owner=APPS&c_type=VIEW
http://etrm.oracle.com/pls/et1211d9/etrm_pnav.show_object?c_name=FND_CONCURRENT_REQUESTS&c_owner=APPLSYS&c_type=TABLE -- LOGFILE_NAME & OUTFILE_NAME
Thanks,
Hussein -
How to pick a message from a mail box using shell script
Hi
Can any one tell me how to pick a message from a mail box using shell script.
Thanks,
Suman.Hi Suman,
Can any one tell me how to pick a message from a mail box using shell script.Grep for the message and then either cut or awk for the text. . . Something like this:
ls -al /mail/directory | grep "$1"* | awk '{print $9}'
Jon emmons has working samples in his book on Oracle shell scripting . . .
Hope this helps . . .
Donald K. Burleson
Oracle Press author
Author of "Oracle Tuning: The Definitive Reference"
http://www.rampant-books.com/book_2005_1_awr_proactive_tuning.htm -
Calling a report from unix shell script
Hi,
I had to call a report from unix shell script.
May i know the procedure to accomplish this
Thanks in Advance
A.GopalFirst you should not include the whole path to your report in the call ...
Use like this:
/ora/u01/oracle/v101/as2/bin/rwrun.sh report=an_stati destype=file desname=/ora/u01/oracle/v101/as2/test.pdf desformat=pdf
In $ORACLE_HOME/bin/reports.sh:
1) Verify that you have updated the REPORTS_PATH variable to include your folder where you have the report in question
REPORTS_PATH=/ora/u20/app/qits/env1/run:$ORACLE_HOME/reports/templates:$ORACLE_HOME/reports/samples/demo: ....
2) Verify that the REPORTS_TMP variable is pointing to a valid location and that the oracle user has access to write on it.
After that, post the content of the tracefile located at $ORACLE_HOME/reports/logs/{in-process report server name folder}/rwserver.trc
If no file is present then it means that you need to enable trace in your reports's conf file.... go to the $ORACLE_HOME/reports/conf folder and and locate the .conf file that correspond to your in-process reports server name (as specified in the rwservelet.properties file)... open/edit the file to enable trace logs ..
i.e.
Change the following line:
<!--trace traceOpts="trace_all"/-->
to <trace traceOpts="trace_all"/>
Bounce the reports server and try to run the report again, this time the .trc file should be generated, post the content so that we can take a look. -
Executing crystal reports through a shell script
We are currently in the processing of building a POC using Crystal reports and was hoping to find a way to execute canned crystal reports via a shell script. The reason being we wanted to schedule the executing of the report through our scheduler where we would build in the dependencies.
Does anyone have a simple example on how to do that.What sort of shell script? Can you provide more info?
The only CR SDK is for .NET and Java.
- Ludek
Senior Support Engineer AGS Product Support, Global Support Center Canada
Follow us on Twitter
Maybe you are looking for
-
Option -splash and -Xmx result in "Unable to launch JVM" error
Hello everybody, we have a severe problem with launching our Java application using the "-splash:" and "-Xmx" command line options for which we cannot find any solution in the web. Our application needs a lot of heap space, so we usually set "-Xmx=92
-
How do you save a web PDF to the iPad2?
How do you save a web PDF to the iPad2? I want to have a camera manual on my iPad.
-
Is there a way to download apps that require ios 7 on my ios 6 iPod Touch?
So I came across this forum as many others, just trying to find some answers as to why I can't or how I could get ios 7 on my 4th gen ipod touch... So I guess the answer is no, not possible and I suppose I can understand the reason as someone stated
-
PDF files are not opening in IE!!!
Some PDF files are not displayed while opening in browser IE . The PDF files are generated through servlets (JWS 2.1). While analysing the problem we have found that the one request invokes the doget() method of the servelet more than once. This prob
-
Implementing Multi-agent system ..??
Hello, I have to build a multi agent system for information retrieval from a blog portal.. now the problem is that i'm not able to decide which agent library should i go for.. there are so many of them available ..jatlite, jade, aglets etc..what do u