Typical DCL Command Procedure to run the program : $! $! DETERMINE DATE TO USE IN FOCUS ROUTINE. $! $ RUN_DATE = F$EXTRACT(0,4,F$CVTIME("YESTERDAY")) + - F$CVTIME("YESTERDAY","COMPARISON","MONTH") + - F$EXTRACT(8,2,F$CVTIME("YESTERDAY")) $! $! UPDATE COMMAND PROCEDURE WITH COMPUTED DATE & THEN EXECUTE. $! $ OPEN/READ INPUT_FILE SI$FEX:(FOCEXEC name).FEX $ OPEN/WRITE OUTPUT_FILE SI$FEX:(FOCEXEC name).TMP $! $READ_MORE: $! $ READ/END_OF_FILE=END_READ INPUT_FILE IN_RECORD $! $ IF F$EXTRACT(0,14,IN_RECORD) .EQS. "-SET &INDATE =" $ THEN $ OUTFILE_REC = "-SET &INDATE = " + "''''" + RUN_DATE + "''''" + ";" $ WRITE OUTPUT_FILE OUTFILE_REC $ ELSE $ WRITE OUTPUT_FILE IN_RECORD $ ENDIF $! $ GOTO READ_MORE $! $END_READ: $! $ CLOSE OUTPUT_FILE $ CLOSE INPUT_FILE $ RENAME/LOG SI$FEX:(FOCEXEC name).TMP SI$FEX:(FOCEXEC name).FEX $! $ DELETE SI$FEX:*.FTM;*/LOG $ DELETE SI$FEX:*.MAS;*/LOG $ DELETE SI$FEX:PLAY*.WP;*/LOG $ DEFINE FOC$DIR2 SI$DATA, SI$MFD $ SET DEFAULT SI$FEX $ FOCUS EXEC (FOCEXEC name) FIN $ CONVERT/APPEND SI$FEX:PLAY.FTM SI$DATA:AIB2FL.DAT $ MAIL/SUBJECT="(FOCEXEC name) - PARKING HOLD UPDATE" PLAY2.WP [recipient-name] $ EXIT FOCUS program : JOIN CLEAR * -* SET PAGE=NOPAGE SET LINES=999999 FILEDEF PLAY DISK PLAY.FTM APPEND FILEDEF AMFL010 DISK SI$DATA:AMFILE.DAT -* -SET &INDATE = '20001214'; -* -* Create The Batch Header -* -SET &HDRKEY = '$$$MSC908 PARK HOLD UPD YBO'; -INCLUDE (SIS Batch Header).SEG -* -* Get all current parking ticket entries -* DEFINE FILE BDFILE TR_DATE/A8 = EDIT(TRAN_DT); END TABLE FILE BDFILE SUM TRAN_AMT BY STU_ID ON TABLE HOLD AS BDTMP1 WHERE SUBCODE EQ '(subcode for parking ticket)'; WHERE TR_DATE EQ '&INDATE'; END -* -* Get all students that have at least one parking hold flag. -* TABLE FILE AMFL010 PRINT REASON BY STU_ID ON TABLE HOLD AS AMTEMP1 WHERE REASON EQ '4A'; END -* -* Remove duplicates -* DEFINE FILE AMTEMP1 THS_REC/A1=IF STU_ID NE LAST STU_ID THEN 'Y' ELSE 'N'; END TABLE FILE AMTEMP1 PRINT REASON BY STU_ID ON TABLE HOLD AS AMTEMP2 WHERE THS_REC EQ 'Y'; END -* -* Merge the two above lists to find those students that need to have -* the parking hold flag activated. -* MATCH FILE BDTMP1 PRINT TRAN_AMT BY STU_ID WHERE TRAN_AMT GT 0; RUN FILE AMTEMP2 PRINT REASON BY STU_ID AFTER MATCH HOLD OLD-NOT-NEW END -RUN -* -* Create batch transactions to update screen 448 accordingly. -* DEFINE FILE HOLD DEC_HOLD_DT/A8='&INDATE'; FMT_HOLD_DT/A8=EDIT(DEC_HOLD_DT,'$$$$99')|EDIT(DEC_HOLD_DT,'$$$$$$99')| EDIT(DEC_HOLD_DT,'9999'); -* OUT_RECORD1/A40=('16A'|STU_ID|' R'|FMT_HOLD_DT|'BO 4AG'); OUT_RECORD2/A40=('16A'|STU_ID|' T'|FMT_HOLD_DT|'BO 4AG'); END TABLE FILE HOLD PRINT OUT_RECORD1 ON TABLE SAVE AS PLAY END -* TABLE FILE HOLD PRINT OUT_RECORD2 ON TABLE SAVE AS PLAY END -* -* Create list of impacted students to send to the Business Office. -* JOIN STU_ID IN HOLD TO STU_ID IN AAFILE AS J1 TABLE FILE HOLD PRINT STU_NAME BY STU_ID AS 'Student,Number' ON TABLE SAVE AS PLAY2 FORMAT WP END JOIN CLEAR *

 

 

This page hosted by Get your own Free Homepage

1
Hosted by www.Geocities.ws