OpenVMS DCL Command Procedure :
Usage :
Include this DCL segment in the command procedure that specifies the parameters
for the SIS batch job :
$!
$ SAY :== "WRITE SYS$OUTPUT"
$ ASK :== READ/END=END/PROMPT=
.
.
$!
$! Submit program to run.
$!
$ SUBMIT_TIME = """TODAY + (submit time)"""
$ USER = F$EDIT(F$GETJPI("","USERNAME"),"UPCASE,COLLAPSE")
$!
$ PRM = "SI$DATA:(parameter file for program);"
$ PGM = "(program name)"
$ OUT_FILE = F$SEARCH(PRM)
$ PARM_LIST = "(SI$COM:(command procedure for program)," + PGM + "," + OUT_FILE + "," + PRM + ",0,0,0," + USER + ")"
$!
$ SUBMIT SISRUNJOB -
/LOG='PGM'.LOG/NOPRINT/NOTIFY -
/QUE=(batch queue) -
/AFTER='SUBMIT_TIME' -
/NAME= 'PGM' -
/PARAMETER = 'PARM_LIST'
$!
$ SHOW QUEUE (batch queue)
$ SAY " "
$ SAY " "
$ ASK "<RETURN> TO CONTINUE ... " SYS$COMMAND DUMMY
$!
$EXIT:
$!
$ SAY " "
$ SAY "All done..."
$ SAY " "
$!
$ SET DEFAULT SYS$LOGIN
$ EXIT
$!
$! SISRUNJOB.COM
$!
$! This command procedure will set up and run a SIS batch job.
$!
$ SET VERIFY
$ SET PROCESS/PRIVILEGES=ALL
$!
$! Execute the SIS batch job.
$!
$ @'P1'
$ ON ERROR THEN CONTINUE
$!
$! Get the user name information.
$!
$ SET VERIFY
$ PROCID = F$GETJPI("","PID")
$ NAME = F$GETJPI(PROCID,"USERNAME")
$ USERDIR = "SYS$LOGIN:[" + NAME + "]"
$ ON ERROR THEN GOTO NOJOB
$!
$! Get the SIS report name information.
$!
$ PRTFIL_1 = "Z$PRT:" + P2 + "RPT.PRT"
$ PRTFIL_2 = "Z$PRT:" + P2 + ".PRT"
$!
$! Specify processing for certain SIS batch jobs.
$!
$ IF P2 .EQS. "BBB302"
$ THEN
$ MAIL/SUBJECT="STATUS FILE - 1 ''P2'" Z$PRT:BBB302.PRT 'P8'
$ MAIL/SUBJECT="STATUS FILE - 2 ''P2'" Z$PRT:BBB312.PRT 'P8'
$ MAIL/SUBJECT="REPORT FILE ''P2'" Z$PRT:BBB312RPT.PRT 'P8'
$ COPY Z$PRT:BBB312RPT.PRT 'USERDIR'*.*.*
$ GOTO FINEXIT
$ ENDIF
$!
$! Process *RPT.PRT file if one exists.
$!
$ THERE = F$SEARCH(PRTFIL_1)
$ IF THERE .NES. ""
$ THEN
$ MAIL/SUBJECT="REPORT FILE ''P2'" 'PRTFIL_1' 'P8'
$ ON ERROR THEN CONTINUE
$ COPY 'PRTFIL_1' 'USERDIR'*.*.*
$ ON ERROR THEN CONTINUE
$ ENDIF
$!
$! Process *.PRT file if one exists.
$!
$ THERE = F$SEARCH(PRTFIL_2)
$ IF THERE .NES. "" THEN -
MAIL/SUBJECT="STATUS FILE ''P2'" 'PRTFIL_2' 'P8'
$!
$! Specify processing for SIS batch jobs that create only a *.RPT file.
$! This is done so user will be able to print them out via the menu.
$!
$ THERE1 = F$SEARCH(PRTFIL_1)
$ THERE2 = F$SEARCH(PRTFIL_2)
$ IF (THERE1 .EQS. "") .AND (THERE2 .NES. "")
$ THEN
$ NEWFILE = "SYS$LOGIN:" + P2 + "RPT.PRT;"
$ COPY 'PRTFIL_2' 'NEWFILE'
$ ENDIF
$!
$FINEXIT:
$!
$ EXIT
$!
$! Process a SIS batch job that aborted.
$!
$NOJOB:
$!
$ PRTFIL_2 = "Z$PRT:" + P2 + ".PRT"
$ THERE = F$SEARCH(PRTFIL_2)
$ IF THERE .NES. "" THEN -
MAIL/SUBJECT=" ERROR RUNNING JOB ''P2'" 'PRTFIL_2' 'P8'
$!
$ THIS_FILE = F$SEARCH("''P2'.LOG")
$ MAIL/SUBJECT=" ERROR RUNNING JOB ''P2'" 'THIS_FILE' 'P8'
$!
$ EXIT
This page hosted by
Get your own Free Homepage