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

Hosted by www.Geocities.ws

1