Typical DCL Command Procedure to run the program :
$!
$ SET NOVERIFY
$ SAY :== "WRITE SYS$OUTPUT"
$ ASK :== READ/END=END/PROMPT=
$ CL :== SET TERMINAL/WIDTH=80
$!
$! Delete any hold files that may have been left over from previous runs.
$!
$ DELETE/LOG SYS$LOGIN:*.FTM;*
$!
$ CL
$!
$ SAY "This process will set up RBA150 (PRODUCE CLASS LISTS). "
$ SAY " "
$!
$! Prompt for term
$!
$ENTER_TERM:
$ READ SYS$COMMAND/TIME=60/END=EXIT/ERROR=EXIT/PROMPT= -
"Run Five Digit Term (CCYYX) >>> " TERMIN
$ LEN_TERM = F$LENGTH(TERMIN)
$ IF LEN_TERM .NE. 5 THEN GOTO ENTER_TERM
$ TYP_TERM = F$TYPE(TERMIN)
$ IF TYP_TERM .NES. "INTEGER" THEN GOTO ENTER_TERM
$!
$! Prompt for session
$!
$ENTER_SESS:
$ SAY " "
$ SAY "Please indicate which session to run class rosters for..."
$ READ SYS$COMMAND/TIME=60/END=EXIT/ERROR=EXIT/PROMPT= -
"Press <ENTER> to run for full semester courses >>> " SESSIN
$!
$ COM_FILE = "SYS$LOGIN:FOCTEMP.COM"
$ OPEN/WRITE output_file 'COM_FILE'
$!
$! Create transactions
$!
$ IF (SESSIN .EQS. "")
$ THEN
$ WRITE output_file "$ DEFINE FOC$DIR1 SI$DATA"
$ WRITE output_file "$ DEFINE FOC$DIR2 SI$FEX,SI$MFD"
$ WRITE output_file "$ SET DEFAULT SYS$LOGIN"
$ WRITE output_file "$ FOCUS"
$ WRITE output_file "EXEC SI$FOCUS:RE-RBA150-SESSALL TERMIN=" + TERMIN
$ WRITE output_file "FIN"
$ WRITE output_file "$ EXIT"
$ ELSE
$ WRITE output_file "$ DEFINE FOC$DIR1 SI$DATA"
$ WRITE output_file "$ DEFINE FOC$DIR2 SI$FEX,SI$MFD"
$ WRITE output_file "$ SET DEFAULT SYS$LOGIN"
$ WRITE output_file "$ FOCUS"
$ WRITE output_file "EXEC SI$FOCUS:RE-RBA150-WHCSESS TERMIN=" + TERMIN + ",WHCSESS=" + SESSIN
$ WRITE output_file "FIN"
$ WRITE output_file "$ EXIT"
$ ENDIF
$!
$ CLOSE output_file
$ SUBMIT/NOPRINT/NOTIFY 'COM_FILE'
$ SYNCHRONIZE FOCTEMP
$!
$! Create parameter file.
$!
$ OPEN/WRITE output_file SI$DATA:RBA150PRM.DAT
$!
$ output_record = "PGM=RBA150,TERM=" + F$EXTRACT(2,3,TERMIN) + ",RUNTYPE=S,COLLEGE=TS HS TR"
$ WRITE output_file output_record
$ CLOSE output_file
$!
$ CONVERT/APPEND SYS$LOGIN:RCTEMP.FTM SI$DATA:RBA150PRM.DAT
$!
$! Submit program to run.
$!
$ USER = F$EDIT(F$GETJPI("","USERNAME"),"UPCASE,COLLAPSE")
$!
$ PRM = "SI$DATA:RBA150PRM.DAT;"
$ PGM = "RBA150"
$ OUT_FILE = F$SEARCH(PRM)
$ PARM_LIST = "(SI$COM:RJA150," + PGM + "," + OUT_FILE + "," + PRM + ",0,0,0," + USER + ")"
$!
$ SUBMIT SISRUNJOB -
/LOG=LOG:'PGM'.LOG/NOPRINT/NOTIFY -
/QUE=(batch queue) -
/NAME= 'PGM' -
/PARAMETER = 'PARM_LIST'
$!
$ SHOW QUE (batch queue)
$ SAY " "
$ SAY " "
$ ASK "<RETURN> TO CONTINUE ... " SYS$COMMAND DUMMY
$!
$ SAY " "
$ SAY "Results will be sent via e-mail."
$ SAY " "
$!
$EXIT:
$!
$ SAY " "
$ SAY "All done..."
$ SAY " "
$!
$! CLEAN UP.
$!
$ DELETE/LOG SYS$LOGIN:*.FTM;*
$ DELETE/LOG SYS$LOGIN:*.MAS;*
$ DELETE/LOG SYS$LOGIN:*.WP;*
$ DELETE/LOG SYS$LOGIN:FOCTEMP.COM;*
$ SET DEFAULT SYS$LOGIN
$ EXIT
FOCUS program (1) :
-*begin doc
-*
-*FEX: RE-RBA150-SESSALL
-*
-*input
-* Term
-*
-* This FOCUS program will create the transactions for all full semester
-* classes to process via RBA150.
-*
-*end doc
-*
SET LINES=999999
SET PAGE=OFF
JOIN CLEAR *
DEFINE FILE RCFILE
OUT_REC/A30='SNAP'|SECTION_ID;
END
TABLE FILE RCFILE
PRINT OUT_REC BY SECTION_ID NOPRINT
ON TABLE SAVE AS RCTEMP
WHERE TERM EQ '&TERMIN';
WHERE COLLEGE NE 'CE';
WHERE SECT_SESSION EQ ' ';
WHERE SECT_STATUS NE 'X';
WHERE SECT_TALLY_ENRL GT 0;
END
JOIN CLEAR *
FOCUS program (2) :
-*begin doc
-*
-*FEX: RE-RBA150-WHCSESS
-*
-*input
-* Term
-*
-* This FOCUS program will create the transactions for the specified
-* session to process via RBA150.
-*
-*end doc
-*
SET LINES=999999
SET PAGE=OFF
JOIN CLEAR *
DEFINE FILE RCFILE
OUT_REC/A30='SNAP'|SECTION_ID;
END
TABLE FILE RCFILE
PRINT OUT_REC BY SECTION_ID NOPRINT
ON TABLE SAVE AS RCTEMP
WHERE TERM EQ '&TERMIN';
WHERE COLLEGE NE 'CE';
WHERE SECT_SESSION EQ '&WHCSESS';
WHERE SECT_STATUS NE 'X';
WHERE SECT_TALLY_ENRL GT 0;
END
JOIN CLEAR *
This page hosted by
Get your own Free Homepage