Typical DCL Command Procedure to run the program :
$ DELETE SI$FEX:*.FTM;*/LOG
$ DELETE SI$FEX:*.MAS;*/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
$ EXIT
FOCUS program :
JOIN CLEAR *
-*
SET PAGE=NOPAGE
SET LINES=999999
FILEDEF PLAY DISK PLAY.FTM APPEND
FILEDEF AMFL010 DISK SI$DATA:AMFILE.DAT
-*
-* CREATE THE BATCH HEADER
-*
-SET &HDRKEY = '$$$MSC906 UPD 011 BOH FLDYBO';
-INCLUDE (SIS Batch Header).SEG
-*
-* Get all students who have a Business Office hold.
-*
DEFINE FILE AMFL010
REASON_CD/A1=EDIT(REASON,'9');
END
TABLE FILE AMFL010
PRINT REASON BY STU_ID
WHERE REASON_CD EQ '4';
ON TABLE HOLD AS AMTEMP1
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
-*
-* Get all students who have a Business Office hold, but do not
-* have a corresponding flag set on screen 11.
-*
MATCH FILE AAFILE
PRINT INFO_FLAG_22 BY STU_ID
WHERE INFO_FLAG_22 EQ '';
RUN
FILE AMTEMP2
PRINT REASON BY STU_ID
AFTER MATCH HOLD OLD-AND-NEW
END
-RUN
-*
-* Create batch transactions to update screen 11 accordingly.
-*
DEFINE FILE HOLD
OUT_RECORD/A80=('10B'|STU_ID|' Y');
END
TABLE FILE HOLD
PRINT OUT_RECORD
ON TABLE SAVE AS PLAY
END
JOIN CLEAR *
This page hosted by
Get your own Free Homepage