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 = '$$$MSC907 011 REM BOH FLDYBO'; -INCLUDE (SIS Batch Header).SEG -* -* Get all students that have the Business Office hold indicator -* set on screen 11. -* TABLE FILE AAFILE PRINT INFO_FLAG_22 BY STU_ID WHERE INFO_FLAG_22 EQ 'Y'; ON TABLE HOLD AS AATEMP1 END -* -* Get all students that have at least one Business Office hold flag. -* DEFINE FILE AMFL010 REASON_CD/A1=EDIT(REASON,'9'); END TABLE FILE AMFL010 PRINT REASON BY STU_ID ON TABLE HOLD AS AMTEMP3 WHERE REASON_CD EQ '4'; END -* -* Remove duplicates -* DEFINE FILE AMTEMP3 THS_REC/A1=IF STU_ID NE LAST STU_ID THEN 'Y' ELSE 'N'; END TABLE FILE AMTEMP3 PRINT REASON BY STU_ID ON TABLE HOLD AS AMTEMP4 WHERE THS_REC EQ 'Y'; END -* -* Merge the two above lists to find those students that have had the -* Business Office hold flag removed. -* MATCH FILE AATEMP1 PRINT INFO_FLAG_22 BY STU_ID RUN FILE AMTEMP4 PRINT REASON BY STU_ID AFTER MATCH HOLD OLD-NOT-NEW END -RUN -* -* Create batch transactions to update screen 11 accordingly. -* DEFINE FILE HOLD OUT_RECORD/A80=('10B'|STU_ID|' *'); END TABLE FILE HOLD PRINT OUT_RECORD ON TABLE SAVE AS PLAY END JOIN CLEAR *

 

 

This page hosted by Get your own Free Homepage

1
Hosted by www.Geocities.ws