Typical DCL Command Procedure to run the program :

$!
$!  RE-UPD-SESS-STU.COM
$!
$!      Description:    Creates batch transactions to update students who are
$!			in course sections with an incorrect session code as
$!                      defined 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-STU"
$ WF "FIN"
$ WF "$ EXIT"
$ CLOSE FILE
$ @'COM_FILE'
$!
$!  MOVE RESULTING BATCH TRANSACTIONS TO MAINTENANCE CYCLE FEED FILE.
$!
$ CONVERT/APPEND SYS$LOGIN:FIXSES.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-STU
-*
-*input
-*      Term
-*
-*      This FOCUS program will update the session code for students 
-*      based upon the session entered for the course on screen 129.
-*      This is done via batch transactions.
-*
-*end doc
-*
SET LINES=999999
SET PAGE=OFF
JOIN CLEAR *
-SET &TERMIN='(input enrollment term)';
FILEDEF FIXSES DISK FIXSES.FTM APPEND LREC 80 RECFM F
-*
-*  Create The Batch Header
-*
DEFINE FILE AAFILE
BATCH_HEADER1/A35 = '$$$MSC518        STU SESS FIX   YSA';
BATCH_HEADER2/A45 = ' ';
END
TABLE FILE AAFILE
PRINT BATCH_HEADER1 AS ''
      BATCH_HEADER2 AS ''
BY STU_ID NOPRINT   
ON TABLE SAVE AS FIXSES   
IF RECORDLIMIT EQ 1  
END
-*
-*  Select students enrolled in courses for the input term
-*  that do not have a session code.
-*
TABLE FILE RTFILE
PRINT SECTION_ID SESSION_CODE BY STU_ID
ON TABLE HOLD AS RTTEMP1
WHERE SPE_STATUS NE 'D';
WHERE TERM EQ '&TERMIN';
WHERE RT020_ORDER LE STU_PGM_ENTRY_CNTR;
WHERE SESSION_CODE EQ '';
END
-*
-*  Check these courses against the section definition on
-*  screen 129 and pull out any where the session codes
-*  mismatch.
-*
DEFINE FILE RTTEMP1
JN_KEY/A16=('&TERMIN'|SECTION_ID);
END
TABLE FILE RTTEMP1
PRINT SECTION_ID SESSION_CODE STU_ID BY JN_KEY
ON TABLE HOLD AS RTTEMP2
END
-*
JOIN JN_KEY IN RTTEMP2 TO KEY IN RCFILE AS J1
TABLE FILE RTTEMP2
PRINT SECTION_ID SESSION_CODE SECT_SESSION STU_ID BY JN_KEY
ON TABLE HOLD AS RTTEMP3
WHERE SESSION_CODE NE SECT_SESSION; 
WHERE TERM EQ '&TERMIN';
END
-*
-*  Create batch transactions to update student's record
-*  for those courses that need to have the session
-*  code corrected. 
-*
DEFINE FILE RTTEMP3
BTH_TRANS/A80=('45B'|STU_ID|'MNT'|'&TERMIN'|SECTION_ID|
'                  '|SECT_SESSION);
END
TABLE FILE RTTEMP3
PRINT BTH_TRANS AS '' IN 1
ON TABLE SAVE AS FIXSES
END
JOIN CLEAR *

 

 

This page hosted by Get your own Free Homepage

Hosted by www.Geocities.ws

1