Typical DCL Command Procedure to run the program :
$!
$! THIS COMMAND PROCEDURE RUNS THE FOCEXEC FOR THE
$! FINANCIAL AID COMMONLINE LOAN DISBURSEMENT
$! APPLICATION.
$!
$ DELETE SI$FEX:*.FTM;*/LOG
$ DELETE SI$FEX:*.MAS;*/LOG
$ DELETE SI$FEX:*.WP;*/LOG
$!
$ SAY :== "WRITE SYS$OUTPUT"
$!
$! Skip if no file to be processed.
$!
$ IF F$SEARCH("(Location & Name Of CommonLine Disbursement File)") .EQS. ""
$ THEN
$ SAY " "
$ SAY "NO COMMONLINE DISBURSEMENT FILE TO PROCESS..."
$ SAY " "
$ GOTO PGM_EXIT
$ ENDIF
$!
$! Rename file so it won't be processed again.
$!
$ RENAME (Location & Name Of CommonLine Disbursement File) -
S00492500.DAT;
$!
$ COPY SI$FEX:S004925.MFD SI$FEX:S004925.MAS;
$ DEFINE FOC$DIR2 SI$DATA, SI$MFD
$ SET DEFAULT SI$FEX
$ FOCUS
EXEC (FOCEXEC name) ENR_TRM=(Enrollment Term)
FIN
$!
$! E-mail resulting reports to Business Office.
$!
$ MAIL/SUBJECT="(FOCEXEC name) - Alternative Loan List" SI$FEX:PLAY1.WP -
(VMS mail id)
$!
$ WAIT 00:00:05
$ MAIL/SUBJECT="(FOCEXEC name) - Hours Exception List" SI$FEX:PLAY2.WP -
(VMS mail id)
$!
$ WAIT 00:00:05
$ MAIL/SUBJECT="(FOCEXEC name) - Loan Disbursement List" SI$FEX:PLAY3.WP -
(VMS mail id)
$!
$ CONVERT/APPEND SI$FEX:PLAY.FTM SI$DATA:AIB2FL.DAT
$!
$PGM_EXIT:
$!
$ EXIT
FOCUS program :
JOIN CLEAR *
SET PAGE = NOPAGE
SET LINES = 999999
-*
-* Create The Batch Header
-*
-SET &HDRKEY = '$$$FIN604 APPL LOAN AMT YFA';
-INCLUDE (SIS Batch Header).SEG
-*
-* Retrieve all student loan disbursements
-*
FILEDEF S004925 DISK S00492500.DAT
TABLE FILE S004925
PRINT DISB_FLD3 DISB_FLD4
BY DISB_FLD2
WHERE DISB_FLD1 EQ '@1N';
ON TABLE HOLD AS DISBTMP1
END
-*
-* Retrieve all non alternative loan disbursements
-*
JOIN DISB_FLD2 IN DISBTMP1 TO KEY IN AAFILE AS J1
TABLE FILE DISBTMP1
PRINT DISB_FLD4 STU_NAME
BY DISB_FLD2
WHERE DISB_FLD3 NE 'AL';
ON TABLE HOLD AS DISBTMP2
END
-*
-* Retrieve all alternative loan disbursements and send list of
-* those to Business Office
-*
DEFINE FILE DISBTMP1
NUM_AMT1/P9.2=EDIT(DISB_FLD4);
NUM_AMT2/P9.2=NUM_AMT1/100;
END
TABLE FILE DISBTMP1
"Alternative Loan List"
" "
PRINT NUM_AMT2 AS 'Loan Amount'
BY STU_NAME AS 'Student Name'
BY DISB_FLD2 AS 'Student Id'
WHERE DISB_FLD3 EQ 'AL';
ON TABLE SAVE AS PLAY1 FORMAT WP
ON TABLE COLUMN-TOTAL
END
-*
-* Check for number of enrolled hours for those students
-* receiving loan disbursements
-*
JOIN TEMP_KEY WITH DISB_FLD2 IN DISBTMP2 TO KEY IN RTFILE AS J2
DEFINE FILE DISBTMP2
TEMP_KEY/A14='&ENR_TRM'|DISB_FLD2;
END
TABLE FILE DISBTMP2
PRINT DISB_FLD4 STU_NAME CURR_ATTEMPTED_HRS
BY DISB_FLD2
WHERE CURR_ATTEMPTED_HRS GE 6;
WHERE TERM EQ '&ENR_TRM';
ON TABLE HOLD AS DISBTMP3
END
-*
-* Retrieve students who did not meet the enrolled hours criteria
-* for receiving loan disbursements and send list of those to Business
-* Office
-*
MATCH FILE DISBTMP2
PRINT DISB_FLD4 STU_NAME
BY DISB_FLD2
RUN
FILE DISBTMP3
PRINT DISB_FLD4 STU_NAME
BY DISB_FLD2
AFTER MATCH HOLD OLD-NOT-NEW
END
-RUN
-*
TABLE FILE HOLD
HEADING
"Students who are not enrolled for at least 6 hours or"
"who are not activated for the current term"
" "
PRINT DISB_FLD4 AS 'Loan Amount'
BY STU_NAME AS 'Student Name'
BY DISB_FLD2 AS 'Student Id'
ON TABLE SAVE AS PLAY2 FORMAT WP
END
-*
-* Create batch transactions to apply loan disbursements to student's
-* account and send list of those to Business Office
-*
DEFINE FILE DISBTMP3
BTH_TRANS/A80 = ('64A'|DISB_FLD2|'94000'|'&ENR_TRM'|' 00'|DISB_FLD4);
NUM_AMT1/P9.2=EDIT(DISB_FLD4);
NUM_AMT2/P9.2=NUM_AMT1/100;
END
TABLE FILE DISBTMP3
PRINT BTH_TRANS BY DISB_FLD2 NOPRINT
ON TABLE SAVE AS PLAY
END
-*
TABLE FILE DISBTMP3
"Students whose loan(s) were applied to their account"
" "
PRINT NUM_AMT2 AS 'Loan Amount'
BY STU_NAME AS 'Student Name'
BY DISB_FLD2 AS 'Student Id'
ON TABLE SAVE AS PLAY3 FORMAT WP
ON TABLE COLUMN-TOTAL
END
-*
JOIN CLEAR *
Master File Description (MFD) for S004925 :
FILE=S004925,SUFFIX=FIX
SEGNAME=ROOT
FIELDNAME=DISB_FLD1, ,A03,A03,$
FIELDNAME=COMPU_FILL01, ,A67,A67,$
FIELDNAME=DISB_FLD2, ,A09,A09,$
FIELDNAME=COMPU_FILL02, ,A99,A99,$
FIELDNAME=COMPU_FILL03, ,A99,A99,$
FIELDNAME=COMPU_FILL04, ,A18,A18,$
FIELDNAME=DISB_FLD3, ,A02,A02,$
FIELDNAME=COMPU_FILL05, ,A72,A72,$
FIELDNAME=DISB_LOAN_PD, ,A08,A08,$
FIELDNAME=COMPU_FILL06, ,A26,A26,$
FIELDNAME=DISB_FLD4, ,A07,A07,$
FIELDNAME=COMPU_FILL7, ,A70,A70,$
This page hosted by
Get your own Free Homepage