Typical DCL Command Procedure to run the program :  

$!
$!  FA_ADMS_CODE_2000.COM
$!
$!      Description:    Creates batch transactions to put ADMS 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_ADMS_CODE_2000"
$ WF "FIN"
$ WF "$ EXIT"
$ CLOSE FILE
$ @'COM_FILE'
$!
$!  MOVE RESULTING BATCH TRANSACTIONS TO MAINTENANCE CYCLE FEED FILE.
$!
$ CONVERT/APPEND SYS$LOGIN:FAADMS.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_ADMS_CODE
-*
-*      This produces a list of students who need to have the
-*      ADMS code placed on screen 306 for them.  Either they do   
-*      not have an active matriculation record for the
-*      academic/enrollment year, are not active in Admissions,
-*      or do not have an application on file.  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 FAADMS DISK FAADMS.FTM APPEND LREC 80 RECFM F
-*
-*  Create The Batch Header
-*
DEFINE FILE AAFILE
BATCH_HEADER1/A40 = '$$$MSC513        ADMS 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 FAADMS   
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
-*
-*  Select students not active in Admissions. 
-*
MATCH FILE SATEMP1
PRINT AWD_YR BY STU_ID
RUN
FILE MMFILE
PRINT MM_HOUS_STAT BY STU_ID
AFTER MATCH HOLD OLD-NOT-NEW
END
-RUN
-*
-*  Save results into hold file.
-*
TABLE FILE HOLD
PRINT AWD_YR BY STU_ID
ON TABLE HOLD AS SATEMP2
END
-*
-*  Select students who do not have an application on file.
-*
MATCH FILE SATEMP1
PRINT AWD_YR BY STU_ID
RUN
FILE MMFILE
PRINT AP_SEG_CNTR BY STU_ID
WHERE AP_SEG_CNTR EQ 0;
AFTER MATCH HOLD OLD-AND-NEW
END
-RUN
-*
-*  Save results into hold file.
-*
TABLE FILE HOLD
PRINT AWD_YR BY STU_ID
ON TABLE HOLD AS SATEMP9
END
-*
-*  Get all open matriculations for the academic/enrollment year.
-*
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 COLLEGE NE 'CE';
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
-*
-*  Select students who do not have an active matriculation.
-*
MATCH FILE SATEMP1
PRINT AWD_YR BY STU_ID
RUN
FILE AATEMP2
PRINT ENTRY_TERM BY STU_ID
AFTER MATCH HOLD OLD-NOT-NEW
END
-RUN
-*
-*  Save results into hold file.
-*
TABLE FILE HOLD
PRINT AWD_YR BY STU_ID
ON TABLE HOLD AS SATEMP3
END
-*
-*  Combine lists from above
-*
MATCH FILE SATEMP2
PRINT AWD_YR BY STU_ID
RUN
FILE SATEMP3
PRINT AWD_YR BY STU_ID
AFTER MATCH HOLD OLD-OR-NEW
END
-RUN
-*
MATCH FILE HOLD
PRINT AWD_YR BY STU_ID
RUN
FILE SATEMP9
PRINT AWD_YR BY STU_ID
AFTER MATCH HOLD OLD-OR-NEW
END
-RUN
-*
-*  Elminate students already being tracked for ADMS
-*
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 'ADMS';
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
-*
-*  Create batch transactions to update screen 306.
-*
DEFINE FILE SATEMP4
BTH_TRANS/A80 = ('72B'|STU_ID|'      &AWD_PD ADMS                      '|
'                   A');
END
TABLE FILE SATEMP4
PRINT BTH_TRANS AS '' BY STU_ID NOPRINT
ON TABLE SAVE AS FAADMS   
END
JOIN CLEAR *

 

 

This page hosted by Get your own Free Homepage

Hosted by www.Geocities.ws

1