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

Hosted by www.Geocities.ws

1