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

Hosted by www.Geocities.ws

1