Typical DCL Command Procedure to run the program :
$!
$! RE-UPD-SESS-CRS.COM
$!
$! Description: Creates batch transactions to update course sections
$! with incorrect session code on screen 129.
$!
$! 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:RE-UPD-SESS-CRS"
$ WF "FIN"
$ WF "$ EXIT"
$ CLOSE FILE
$ @'COM_FILE'
$!
$! MOVE RESULTING BATCH TRANSACTIONS TO MAINTENANCE CYCLE FEED FILE.
$!
$ CONVERT/APPEND SYS$LOGIN:SECTFIX.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: RE-UPD-SESS-CRS
-*
-*input
-* Term
-*
-* This FOCUS program will update the session code on screen 129
-* based upon the dates entered for the term on the calendar table.
-* This is done via batch transactions.
-*
-*end doc
-*
SET LINES=999999
SET PAGE=OFF
JOIN CLEAR *
-SET &TERMIN='(input enrollment term)';
FILEDEF SECTFIX DISK SECTFIX.FTM APPEND LREC 120 RECFM F
-*
-* Create The Batch Header
-*
DEFINE FILE AAFILE
BATCH_HEADER1/A35 = '$$$MSC601 CRS SESS FIX YSA';
BATCH_HEADER2/A28 = ' ';
BATCH_HEADER3/A57 =
' ';
END
TABLE FILE AAFILE
PRINT BATCH_HEADER1 AS ''
BATCH_HEADER2 AS ''
BATCH_HEADER3 AS ''
BY STU_ID NOPRINT
ON TABLE SAVE AS SECTFIX
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.
-READ EXTFILE &ENDTRD.I8. &BEGTRD.I8. &SESTRD.A1.
-*
-* If course has start/end date indicating it is being held in a
-* session, but session code does not reflect this, create batch
-* transaction to update the session code.
-*
DEFINE FILE RCFILE
SESS_CD/A1=IF ((SECT_START_DT EQ &BEGFST) AND (SECT_END_DT EQ &ENDFST) AND
(TERM EQ '&TERMIN') AND (SECT_SESSION NE '&SESFST')) THEN '1'
ELSE IF ((SECT_START_DT EQ &BEGSEC) AND (SECT_END_DT EQ &ENDSEC) AND
(TERM EQ '&TERMIN') AND (SECT_SESSION NE '&SESSEC')) THEN '2'
ELSE IF ((SECT_START_DT EQ &BEGTRD) AND (SECT_END_DT EQ &ENDTRD) AND
(TERM EQ '&TERMIN') AND (SECT_SESSION NE '&SESTRD')) THEN '3'
ELSE IF ((SECT_START_DT EQ &BEGDEF) AND (SECT_END_DT EQ &ENDDEF) AND
(TERM EQ '&TERMIN') AND (SECT_SESSION NE '&SESDEF')) THEN '*';
-*
BTH_TRANS/A120 = ('22M'|SECTION_ID|' '|'&TERMIN'|' '|SESS_CD);
END
TABLE FILE RCFILE
PRINT BTH_TRANS BY SECTION_ID NOPRINT
ON TABLE SAVE AS SECTFIX
WHERE ((SECT_START_DT EQ &BEGFST) AND (SECT_END_DT EQ &ENDFST) AND
(TERM EQ '&TERMIN') AND (SECT_SESSION NE '&SESFST')) OR
((SECT_START_DT EQ &BEGSEC) AND (SECT_END_DT EQ &ENDSEC) AND
(TERM EQ '&TERMIN') AND (SECT_SESSION NE '&SESSEC')) OR
((SECT_START_DT EQ &BEGTRD) AND (SECT_END_DT EQ &ENDTRD) AND
(TERM EQ '&TERMIN') AND (SECT_SESSION NE '&SESTRD')) OR
((SECT_START_DT EQ &BEGDEF) AND (SECT_END_DT EQ &ENDDEF) AND
(TERM EQ '&TERMIN') AND (SECT_SESSION NE '&SESDEF'));
WHERE COLLEGE NE 'CE';
WHERE SECT_STATUS NE 'X';
WHERE SECT_TALLY_ENRL GT 0;
END
JOIN CLEAR *
This page hosted by
Get your own Free Homepage