Typical DCL Command Procedure to run the program :

$!
$!  RE-DUP-REQS.COM
$!
$!  This command procedure will create the batch transactions in order to
$!  copy the pre-reqs/co-reqs from the input course section to all other
$!  sections.
$!
$ SET NOVERIFY
$ SET NOCONTROL_Y
$ ASK := READ/PROMPT=
$ SAY := WRITE SYS$OUTPUT
$ CL :== SET TERMINAL/WIDTH=80
$! 
$!  Delete any hold files that may have been left over from previous runs. 
$! 
$ DELETE/LOG SYS$LOGIN:*.FTM;*
$! 
$ CL
$!
$!  Get current batch number.
$!
$ OPEN/READ num_file BTH_NUM_1288.DAT
$ READ num_file num_record
$ CLOSE num_file
$ batch_num = F$STRING(F$INTEGER(F$EXTRACT(0,3,num_record))+1)
$ IF batch_num .EQS. "599"
$ THEN
$	batch_num = "590"
$ ENDIF
$!
$!  Create batch transaction file and write out header record.
$!
$ OPEN/WRITE trans_file SYS$LOGIN:TRANSFILE.DOC
$ WRITE trans_file "$$$MSC" + batch_num + "        DUP SEC CNTRL  YRE"
$ CLOSE trans_file
$!
$!  Write out new batch number.
$!
$ OPEN/WRITE num_file BTH_NUM_1288.DAT
$ WRITE num_file batch_num
$ CLOSE num_file
$!
$!  Create course section list file.
$!
$ OPEN/WRITE crs_file SYS$LOGIN:CRSFILE.DOC
$ CLOSE crs_file
$! 
$!  Prompt for term. 
$!
$ENTER_PARM_TERM: 
$ READ SYS$COMMAND/TIME=60/END=EXIT_LOOP/ERROR=EXIT_LOOP/PROMPT= -   
  "Enter the five digit term to run the list for (CCYYX) >>> " TERMIN   
$ LEN_TERMIN = F$LENGTH(TERMIN) 
$ IF LEN_TERMIN .NE. 5 THEN GOTO ENTER_PARM_TERM 
$ TYP_TERMIN = F$TYPE(TERMIN) 
$ IF TYP_TERMIN .NES. "INTEGER" THEN GOTO ENTER_PARM_TERM
$! 
$!  Prompt for course section. 
$!
$ENTER_PARM_CRS: 
$ SAY ""
$ SAY "Enter the course section to duplicate pre-reqs/coreqs"
$ READ SYS$COMMAND/TIME=60/END=EXIT_LOOP/ERROR=EXIT_LOOP/PROMPT= -   
  "for (ex : ENG 10201) >>> " CRSIN   
$ LEN_CRSIN = F$LENGTH(CRSIN) 
$ IF LEN_CRSIN .NE. 9 THEN GOTO ENTER_PARM_CRS 
$ TYP_CRSIN = F$TYPE(CRSIN) 
$ IF TYP_CRSIN .NES. "STRING" THEN GOTO ENTER_PARM_CRS
$! 
$!  Add course section to list. 
$!
$ OPEN/APPEND crs_file SYS$LOGIN:CRSFILE.DOC
$ WRITE crs_file CRSIN
$ CLOSE crs_file
$! 
$!  Prompt user for more course sections. 
$!
$ CL
$ SAY ""
$ ASK "Enter in more courses [Y]? " SYS$COMMAND YN
$ IF YN .EQS. "" THEN YN = "Y"
$ IF YN .EQS. "Y" THEN GOTO ENTER_PARM_CRS
$! 
$!  Create/run FOCUS program for all course sections in list. 
$!
$ CL
$ SAY ""
$ SAY "Please wait while program executes..."
$ SAY ""
$ OPEN/READ crs_file SYS$LOGIN:CRSFILE.DOC
$!
$READ_LOOP_FST:
$!
$ DELETE/LOG SYS$LOGIN:*.FTM;*
$ READ/END_OF_FILE=EXIT_LOOP_LST crs_file crs_record
$ COM_FILE = "SYS$LOGIN:FOCTEMP.COM"
$!
$ OPEN/WRITE output_file 'COM_FILE' 
$! 
$ WRITE output_file "$ DEFINE FOC$DIR1 SI$DATA" 
$ WRITE output_file "$ DEFINE FOC$DIR2 SI$FEX,SI$MFD" 
$ WRITE output_file "$ SET DEFAULT SYS$LOGIN" 
$ WRITE output_file "$ FOCUS" 
$ WRITE output_file "EXEC SI$FOCUS:RE-DUP-REQS" 
$ WRITE output_file TERMIN  
$ WRITE output_file F$EXTRACT(0,9,crs_record)  
$ WRITE output_file "FIN" 
$ WRITE output_file "$ EXIT" 
$! 
$ CLOSE output_file 
$ SUBMIT/NOPRINT/NOTIFY 'COM_FILE'
$ SYNCHRONIZE FOCTEMP
$! 
$!  Check to see if hold files were created. 
$!
$ IF (F$SEARCH("SYS$LOGIN:RCTEMP1.FTM;*") .EQS. "") .OR. -
     (F$SEARCH("SYS$LOGIN:RCTEMP2.FTM;*") .EQS. "")
$ THEN
$	GOTO READ_LOOP_FST 
$ ENDIF
$! 
$!  Create/append batch transactions to file. 
$!
$ OPEN/READ input_file SYS$LOGIN:RCTEMP2.FTM
$ OPEN/APPEND trans_file SYS$LOGIN:TRANSFILE.DOC
$!
$READ_LOOP_OUT:
$!
$ READ/END_OF_FILE=EXIT_LOOP_OUT input_file in_record 
$ OPEN/READ batch_file SYS$LOGIN:RCTEMP1.FTM
$ SEQ_NUM = F$INTEGER(F$EXTRACT(13,1,in_record))
$!
$READ_LOOP_IN:
$!
$ READ/END_OF_FILE=EXIT_LOOP_IN batch_file batch_record 
$!
$ output_record = "24M" + F$EXTRACT(0,11,in_record) + F$STRING(SEQ_NUM+1) + -
                  TERMIN + F$EXTRACT(11,3,batch_record) + -
                  F$EXTRACT(14,1,batch_record) + -
                  F$EXTRACT(15,5,batch_record) + -
                  F$EXTRACT(20,11,batch_record) + -
                  F$EXTRACT(31,1,batch_record) + -
                  F$EXTRACT(32,3,batch_record)
$ WRITE trans_file output_record
$!
$ SEQ_NUM = SEQ_NUM + 1
$!
$ GOTO READ_LOOP_IN
$!
$EXIT_LOOP_IN:
$!
$ CLOSE batch_file
$ GOTO READ_LOOP_OUT
$!
$EXIT_LOOP_OUT:
$!
$ CLOSE input_file
$ CLOSE trans_file
$ GOTO READ_LOOP_FST
$!
$EXIT_LOOP_LST:
$!
$ CLOSE crs_file
$ CONVERT/APPEND SYS$LOGIN:TRANSFILE.DOC SI$DATA:AIB2FL.DAT
$!
$ CL
$ SAY " "
$ SAY "The information on screen 131 (Section Registration Controls)"
$ SAY "will be updated overnight."
$ SAY " "
$ WAIT 00:00:05
$!
$EXIT_LOOP:
$!
$ SAY " " 
$ SAY "All done..." 
$ SAY " " 
$!
$!  CLEAN UP.
$!
$ DELETE/LOG SYS$LOGIN:*.FTM;*
$ DELETE/LOG SYS$LOGIN:*.MAS;*
$ DELETE/LOG SYS$LOGIN:*.WP;*
$ DELETE/LOG SYS$LOGIN:FOCTEMP.COM;*
$ DELETE/LOG SYS$LOGIN:TRANSFILE.DOC;*
$ DELETE/LOG SYS$LOGIN:CRSFILE.DOC;*
$ EXIT


FOCUS program :

-*begin doc 
-*
-*FEX:  RE-DUP-REQS 
-*
-*      This FOCUS request will create the batch transactions in order to
-*      duplicate the pre-reqs/co-reqs from one course section to all other
-*      course sections for a given term.
-*
-*INPUT
-*      TERM  : Term of input course section
-*      CRS   : Name of input course section 
-*
-*end doc
-**********************************************************************
SET PAGE = NOPAGE
SET LINES = 999999
JOIN CLEAR *
-PROMPT &TERM/A5.ENTER THE FIVE DIGIT TERM OF INPUT COURSE SECTION (CCYYX) :
-PROMPT &CRS/A9.ENTER THE NAME OF INPUT COURSE SECTION (EX : ENG 10201) :
-*
-*  Get pre-reqs/co-reqs from input course section. 
-*
DEFINE FILE RCFILE
ALP_SC/A3=EDIT(SCHD_SEAT_COUNT1);
END
TABLE FILE RCFILE
PRINT SCHD_CONTROL_NOTE1 SCHD_NOTE_CONTROL1 SCHD_ARGUMENT1
      SCHD_VALUE1 SCHD_RELATION1 ALP_SC
BY SECTION_ID
WHERE SECTION_ID EQ '&CRS';
WHERE TERM EQ '&TERM';
WHERE RC040_ORDER LE SCHEDULING_CNTR;
ON TABLE SAVE AS RCTEMP1
END
-*
-*  Get pre-reqs/co-reqs from input course section. 
-*
DEFINE FILE RCFILE
ALL_SEC/A7=EDIT(SECTION_ID,'9999999');
CHK_SEC/A7=EDIT('&CRS','9999999');
END
TABLE FILE RCFILE
PRINT SCHEDULING_CNTR BY SECTION_ID 
WHERE (ALL_SEC EQ CHK_SEC) AND (SECTION_ID NE '&CRS');
WHERE TERM EQ '&TERM';
ON TABLE SAVE AS RCTEMP2
END
-*
JOIN CLEAR *

 

 

This page hosted by Get your own Free Homepage

Hosted by www.Geocities.ws

1