Typical DCL Command Procedure to run the program :
$!
$! FA_UNDC_CODE_2000.COM
$!
$! Description: Creates batch transactions to put UNDC code on screen
$! 306 for those who meet the criteria. This program
$! is for the 1999-2000 award year.
$!
$! CREATE TEMPORARY COMMAND PROCEDURE THE RUN FOCUS JOB.
$!
$ WF := WRITE FILE
$ COM_FILE = "SYS$LOGIN:FOCTEMP.COM"
$!
$ OPEN/WRITE FILE 'COM_FILE'
$ WF "$ SET DEFAULT SYS$LOGIN"
$ WF "$ DEFINE FOC$DIR1 SI$DATA"
$ WF "$ DEFINE FOC$DIR2 SI$MFD"
$ WF "$ FOCUS"
$ WF "EXEC SI$FOCUS:FA_UNDC_CODE_2000"
$ WF "FIN"
$ WF "$ EXIT"
$ CLOSE FILE
$ @'COM_FILE'
$!
$! MOVE RESULTING BATCH TRANSACTIONS TO MAINTENANCE CYCLE FEED FILE.
$!
$ CONVERT/APPEND SYS$LOGIN:FAUNDC.FTM SI$DATA:AIB2FL.DAT
$!
$! CLEAN UP.
$!
$ DELETE/LOG SYS$LOGIN:*.FTM;*
$ DELETE/LOG SYS$LOGIN:*.MAS;*
$ DELETE/LOG SYS$LOGIN:*.WP;*
$ DELETE/LOG SYS$LOGIN:FOCTEMP.COM;*
$EXIT
FOCUS program :
-*begin doc
-*
-*FEX: FA_UNDC_CODE
-*
-* This produces a list of students who need to have the
-* UNDC code placed on screen 306 for them. That is, those
-* who have an open matriculation for the academic/enrollment
-* year that have an ineligible major for financial aid.
-* The update is done through batch transactions.
-*
-*INPUT
-* AWD_YR : AWARD YEAR
-* AWD_PD : AWARD PERIOD
-* TERM : ENROLLMENT TERM
-*
-*end doc
-**********************************************************************
SET COMPUTE = OLD
SET PAGE = NOPAGE
SET LINES = 999999
-SET &AWD_YR = '2000';
-SET &AWD_PD = '2000A';
-SET &TERM1 = '19991';
-SET &TERM2 = '19993';
JOIN CLEAR *
FILEDEF FAUNDC DISK FAUNDC.FTM APPEND LREC 80 RECFM F
-*
-* Create The Batch Header
-*
DEFINE FILE AAFILE
BATCH_HEADER1/A40 = '$$$MSC511 UNDC IN FA UPD YFA ';
BATCH_HEADER2/A40 = ' ';
END
TABLE FILE AAFILE
PRINT BATCH_HEADER1 AS ''
BATCH_HEADER2 AS ''
BY STU_ID NOPRINT
ON TABLE SAVE AS FAUNDC
IF RECORDLIMIT EQ 1
END
-*
-* Select all students who are being tracked on screen 306.
-*
TABLE FILE STFILE
PRINT AWD_YR BY STU_ID
WHERE AWD_YR EQ '&AWD_YR';
WHERE TRK_FORM NE '';
WHERE TRK_CNTR GT 0;
ON TABLE HOLD AS STTEMP1
END
-*
-* Remove duplicates.
-*
DEFINE FILE STTEMP1
THS_REC/A1=IF STU_ID NE LAST STU_ID THEN 'Y' ELSE 'N';
END
TABLE FILE STTEMP1
PRINT AWD_YR BY STU_ID
WHERE THS_REC EQ 'Y';
ON TABLE HOLD AS SATEMP1
END
-*
-* Get all open matriculations for the academic/enrollment year that
-* have an ineligible major for financial aid.
-*
DEFINE FILE AAFILE
CHK_MJR/A2 = EDIT(MAJOR,'$$99');
CHK_MJR2/A2 = EDIT(MAJOR,'99$$');
END
TABLE FILE AAFILE
PRINT ENTRY_TERM BY STU_ID
ON TABLE HOLD AS AATEMP1
WHERE (ENTRY_TERM LE '&TERM2') AND (EXIT_TERM GE '&TERM1');
WHERE (CHK_MJR EQ 'UK') OR (CHK_MJR EQ 'UD') OR (CHK_MJR EQ 'UN') OR
(CHK_MJR EQ 'UT') OR (CHK_MJR EQ 'UW') OR (CHK_MJR EQ 'UP') OR
(MAJOR EQ 'GEDX') OR (CHK_MJR2 EQ 'CE') OR (MAJOR EQ 'CONT') OR
(CHK_MJR2 EQ 'JT') OR (MAJOR EQ 'BUSA') OR (CHK_MJR EQ 'BA');
WHERE AA060_ORDER LE AP_CNTR;
END
-*
-* Remove duplicates.
-*
DEFINE FILE AATEMP1
THS_REC/A1=IF STU_ID NE LAST STU_ID THEN 'Y' ELSE 'N';
END
TABLE FILE AATEMP1
PRINT ENTRY_TERM BY STU_ID
WHERE THS_REC EQ 'Y';
ON TABLE HOLD AS AATEMP2
END
-*
-* Get students who need to be tracked for UNDC.
-*
MATCH FILE SATEMP1
PRINT AWD_YR BY STU_ID
RUN
FILE AATEMP2
PRINT ENTRY_TERM BY STU_ID
AFTER MATCH HOLD OLD-AND-NEW
END
-RUN
-*
-* Elminate students already being tracked for UNDC.
-*
MATCH FILE HOLD
PRINT AWD_YR BY STU_ID
RUN
FILE STFILE
PRINT AWD_YR BY STU_ID
WHERE AWD_YR EQ '&AWD_YR';
WHERE TRK_FORM EQ 'UNDC';
WHERE ST020_ORDER LE TRK_CNTR;
AFTER MATCH HOLD OLD-NOT-NEW
END
-RUN
-*
-* Eliminate duplicates
-*
DEFINE FILE HOLD
THS_REC/A1=IF STU_ID NE LAST STU_ID THEN 'Y' ELSE 'N';
END
TABLE FILE HOLD
PRINT AWD_YR BY STU_ID
WHERE THS_REC EQ 'Y';
ON TABLE HOLD AS SATEMP4
END
-*
-* Elminate students that have a matriculation record with a valid major.
-*
-* Get all open matriculations for the academic/enrollment year that
-* have an eligible major for financial aid.
-*
DEFINE FILE AAFILE
CHK_MJR/A2 = EDIT(MAJOR,'$$99');
CHK_MJR2/A2 = EDIT(MAJOR,'99$$');
END
TABLE FILE AAFILE
PRINT ENTRY_TERM BY STU_ID
ON TABLE HOLD AS AATEMP3
WHERE (ENTRY_TERM LE '&TERM2') AND (EXIT_TERM GE '&TERM1');
WHERE (CHK_MJR NE 'UK') AND (CHK_MJR NE 'UD') AND (CHK_MJR NE 'UN') AND
(CHK_MJR NE 'UT') AND (CHK_MJR NE 'UW') AND (CHK_MJR NE 'UP') AND
(MAJOR NE 'GEDX') AND (CHK_MJR2 NE 'CE') AND (MAJOR NE 'CONT') AND
(CHK_MJR2 NE 'JT') AND (MAJOR NE 'BUSA') AND (CHK_MJR NE 'BA');
WHERE AA060_ORDER LE AP_CNTR;
END
-*
-* Remove duplicates.
-*
DEFINE FILE AATEMP3
THS_REC/A1=IF STU_ID NE LAST STU_ID THEN 'Y' ELSE 'N';
END
TABLE FILE AATEMP3
PRINT ENTRY_TERM BY STU_ID
WHERE THS_REC EQ 'Y';
ON TABLE HOLD AS AATEMP4
END
-*
MATCH FILE HOLD
PRINT AWD_YR BY STU_ID
RUN
FILE AATEMP4
PRINT ENTRY_TERM BY STU_ID
AFTER MATCH HOLD OLD-NOT-NEW
END
-RUN
-*
-* Create batch transactions to update screen 306.
-*
DEFINE FILE HOLD
BTH_TRANS/A80 = ('72B'|STU_ID|' &AWD_PD UNDC '|
' A');
END
TABLE FILE HOLD
PRINT BTH_TRANS AS '' BY STU_ID NOPRINT
ON TABLE SAVE AS FAUNDC
END
JOIN CLEAR *
This page hosted by
Get your own Free Homepage