Typical DCL Command Procedure to set up the program (1) :
$!
$! BO-ADJUST-MNT-DATE.COM
$!
$! Description: Creates batch transactions to adjust maintenance date
$! on screen SP1 for students whose classes were canceled
$! or who "no-showed".
$!
$! 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 SI$FOCUS"
$ WF "$ DEFINE FOC$DIR1 SI$DATA"
$ WF "$ DEFINE FOC$DIR2 SI$MFD"
$ WF "$ FOCUS"
$ WF "EXEC BO-ADJUST-MNT-DATE"
$ WF "FIN"
$ WF "$ EXIT"
$ CLOSE FILE
$ @'COM_FILE'
$!
$! MOVE RESULTING BATCH TRANSACTIONS TO MAINTENANCE CYCLE FEED FILE.
$!
$ CONVERT/APPEND SI$FOCUS:MNTFIX.FTM SI$DATA:AIB2FL.DAT
$!
$! RENAME HOLD FILE TO BE USED FOR LATER REPORT.
$!
$ RENAME SI$FOCUS:MNTFIX.FTM SI$FOCUS:MNTFIX.SAV;
$!
$! CLEAN UP SI$FOCUS: DIRECTORY.
$!
$ DELETE/LOG SI$FOCUS:*.FTM;*
$ DELETE/LOG SI$FOCUS:*.MAS;*
$ DELETE/LOG SI$FOCUS:*.WP;*
$ DELETE/LOG SYS$LOGIN:FOCTEMP.COM;*
$EXIT
FOCUS program (1) :
-*begin doc
-*
-*FEX: BO-ADJUST-MNT-DATE
-*
-*Input
-* Term
-* Maintenance Date To Adjust To
-*
-*
-* This procedure creates transactions to adjust the maintenance date
-* for students whose classes were cancelled or who "no-shows" a class.
-* This is done so refunds can be generated.
-*
-*end doc
-*
SET LINES=999999
SET PAGE=OFF
JOIN CLEAR *
-SET &TERMIN='(Input Enrollment Term)';
-SET &ADJDT='(Date (MMDDYYYY) One Day Before Beginning Of Input Term)';
FILEDEF MNTFIX DISK MNTFIX.FTM APPEND LREC 80 RECFM F
-*
-* Create The Batch Header
-*
DEFINE FILE AAFILE
BATCH_HEADER1/A35 = '$$$MSC508 MNT DATE FIX YSA';
BATCH_HEADER2/A45 = ' ';
END
TABLE FILE AAFILE
PRINT BATCH_HEADER1 AS ''
BATCH_HEADER2 AS ''
BY STU_ID NOPRINT
ON TABLE SAVE AS MNTFIX
IF RECORDLIMIT EQ 1
END
-*
-* Get session start and end date for term.
-*
FILEDEF ACFL055 DISK SI$DATA:ACFILE.DAT
TABLE FILE ACFL055
PRINT CLASS_END_DATE CLASS_BEGIN_DATE SESSION_CODE
ON TABLE SAVE AS TRMSEC
WHERE TERM_CODE_SES EQ '&TERMIN';
END
FILEDEF EXTFILE DISK TRMSEC.FTM
-RUN
-READ EXTFILE &ENDDEF.I8. &BEGDEF.I8. &SESDEF.A1.
-READ EXTFILE &ENDFST.I8. &BEGFST.I8. &SESFST.A1.
-READ EXTFILE &ENDSEC.I8. &BEGSEC.I8. &SESSEC.A1.
-*
-* Select students who dropped classes for the input term and
-* whose course maintenance date has not been adjusted on
-* screen SP1.
-*
-* Create batch transactions to adjust date.
-*
DEFINE FILE RTFILE
BTH_TRANS/A80=('45B'|STU_ID|'MNT'|'&TERMIN'|SECTION_ID|
' '|'&ADJDT');
END
TABLE FILE RTFILE
PRINT BTH_TRANS AS '' IN 1
ON TABLE SAVE AS MNTFIX
WHERE (STATUS_QUALIFIER EQ 'DB' OR 'DE');
WHERE TERM EQ '&TERMIN';
WHERE RT020_ORDER LE STU_PGM_ENTRY_CNTR;
WHERE SP_MNTDT GE &BEGDEF;
END
JOIN CLEAR *
Typical DCL Command Procedure to set up the program (2) :
$!
$! BO-LIST-REFUND.COM
$!
$! Description: Creates listing any refunds generated because
$! the maintenance date on screen SP1 was changed.
$!
$! CREATE TEMPORARY COMMAND PROCEDURE THE RUN FOCUS JOB.
$!
$ COPY SI$FOCUS:PUR.MFD SI$FOCUS:PUR.MAS;
$ WF := WRITE FILE
$ COM_FILE = "SYS$LOGIN:FOCTEMP.COM"
$!
$ OPEN/WRITE FILE 'COM_FILE'
$ WF "$ SET DEFAULT SI$FOCUS"
$ WF "$ DEFINE FOC$DIR1 SI$DATA"
$ WF "$ DEFINE FOC$DIR2 SI$MFD"
$ WF "$ FOCUS"
$ WF "EXEC BO-LIST-REFUND"
$ WF "FIN"
$ WF "$ EXIT"
$ CLOSE FILE
$ @'COM_FILE'
$!
$! MAIL RESULTING REPORT FILE.
$!
$ ON SEVERE_ERROR THEN GOTO ERR_TRAP
$ RENAME SI$FOCUS:REPORT.WP SI$FOCUS:REPORT.DOC
$ MAIL/SUBJECT="Student Balance List" SI$FOCUS:REPORT.DOC (OpenVMS User)
$!
$! CLEAN UP SI$FOCUS: DIRECTORY.
$!
$ERR_TRAP:
$ DELETE/LOG SI$FOCUS:*.FTM;*
$ DELETE/LOG SI$FOCUS:*.MAS;*
$ DELETE/LOG SI$FOCUS:*.WP;*
$ DELETE/LOG SI$FOCUS:REPORT.DOC;*
$ DELETE/LOG SYS$LOGIN:FOCTEMP.COM;*
$EXIT
FOCUS program (2) :
-*begin doc
-*
-*FEX: BO-LIST-REFUND
-*
-* This procedure creates a report of those students whose maintenance
-* date(s) have been adjusted.
-* This is done so refunds can be generated.
-*
-*end doc
-*
JOIN CLEAR *
-SET &TERM_IN='(Input Enrollment Term)';
FILEDEF PUR DISK SI$FOCUS:MNTFIX.SAV
TABLE FILE PUR
PRINT FUNC_PUR BY SSN_PUR
ON TABLE HOLD AS PRTEMP1
END
-*
-* "Tag" students that have a transaction of subcode 99999 (received
-* financial aid) on their billing records.
-*
JOIN BDKEY WITH SSN_PUR IN PRTEMP1 TO ALL MTCH_KEY1 IN BDFILE AS J1
DEFINE FILE PRTEMP1
BDKEY/A10=' '|SSN_PUR;
NPURGTRAN/I1=IF SUBCODE EQ '99999' THEN 1 ELSE 0;
END
TABLE FILE PRTEMP1
SUM NPURGTRAN BY SSN_PUR
ON TABLE HOLD AS PRTEMP2
WHERE TERM EQ '&TERM_IN';
END
-*
-* Retrieve student name for all individuals who are due a refund
-* (have a non-zero account balance and are not receiving financial aid).
-*
JOIN SSN_PUR IN PRTEMP2 TO STU_ID IN AAFILE AS J2
DEFINE FILE PRTEMP2
THS_REC/A1=IF SSN_PUR NE LAST SSN_PUR THEN 'Y' ELSE 'N';
END
TABLE FILE PRTEMP2
PRINT CURRENT_BAL BY STU_NAME BY SSN_PUR AS 'Student ID'
ON TABLE HOLD AS PRTEMP3
WHERE CURRENT_BAL NE 0;
WHERE THS_REC EQ 'Y';
WHERE NPURGTRAN EQ 0;
END
-*
-IF &RECORDS EQ 0 THEN GOTO STOPRUN;
-*
-* Produce report.
-*
TABLE FILE PRTEMP3
HEADING CENTER
"Report Name : BO-LIST-REFUND"
" "
"Student Balance List"
" "
PRINT CURRENT_BAL AS 'Current,Balance'
BY STU_NAME AS 'Student Name' BY SSN_PUR AS 'Student ID'
ON TABLE SAVE AS REPORT FORMAT WP
END
JOIN CLEAR *
-*
-GOTO EXIT;
-*
-* If no records selected, stop the program.
-*
-STOPRUN
-TYPE
-TYPE
-TYPE
-TYPE
-TYPE ********NO RECORDS FOUND********
-TYPE ************STOP RUN************
-TYPE
-TYPE
-TYPE
-TYPE
-EXIT
This page hosted by
Get your own Free Homepage