Typical DCL Command Procedure to run the program for day courses :
$!  THIS COMMAND PROCEDURE RUNS THE FOCEXECS TO PRODUCE THE 
$!  MASTER SCHEDULE FOR THE PUBLIC INFORMATION OFFICE.
$!  ONLY DAY COURSES ARE INCLUDED.
$!
$ DELETE SI$FOCUS:*.FTM;*/LOG
$ DELETE SI$FOCUS:*.MAS;*/LOG
$ DELETE SI$FOCUS:*.WP;*/LOG
$ DELETE SI$FOCUS:COUSRT.DOC;*/LOG
$ DELETE SI$FOCUS:EMPTY_PLAY.DOC;*/LOG
$ COPY SI$FOCUS:COUSRT.MFD; SI$FOCUS:COUSRT.MAS; /LOG
$ COPY SI$FOCUS:SISDBD.MFD; SI$FOCUS:SISDBD.MAS; /LOG
$ COPY SI$FOCUS:SCH.MFD; SI$FOCUS:SCH.MAS; /LOG
$ COPY SI$FOCUS:EMPTY_FILE.DOC; SI$FOCUS:EMPTY_PLAY.DOC; /LOG
$ DEFINE FOC$DIR1 SI$DATA
$ SET DEFAULT SI$FOCUS
$ FOCUS
EXEC (FOCEXEC name #1) INTERM=(Enrollment term), BGNDT=(Beginning Course date in YYMMDD format), ENDDT=(Ending Course date in YYMMDD format)
FIN
$ STA1 = F$SEARCH ("SI$FOCUS:RCTEMP1.FTM;*",1)
$ STA2 = F$SEARCH ("SI$FOCUS:RCTEMP2.FTM;*",2)
$ STA3 = F$SEARCH ("SI$FOCUS:RCTEMP3.FTM;*",3)
$ STA4 = F$SEARCH ("SI$FOCUS:RCTEMP4.FTM;*",4)
$ IF (STA1 .NES. "") THEN CONVERT/APPEND RCTEMP1.FTM EMPTY_PLAY.DOC
$ IF (STA2 .NES. "") THEN CONVERT/APPEND RCTEMP2.FTM EMPTY_PLAY.DOC
$ IF (STA3 .NES. "") THEN CONVERT/APPEND RCTEMP3.FTM EMPTY_PLAY.DOC
$ IF (STA4 .NES. "") THEN CONVERT/APPEND RCTEMP4.FTM EMPTY_PLAY.DOC
$ SORT/KEY=(POSITION=1,SIZE=11)/KEY=(POSITION=94,SIZE=7,DESCENDING) -
    EMPTY_PLAY.DOC COUSRT.DOC
$ SET DEFAULT SI$FOCUS
$ FOCUS
EXEC (FOCEXEC name #2) INTERM=(Enrollment term)
FIN
$ COPY SI$FOCUS:TEMP.FTM SYS$LOGIN:DAYALL.DOC; /LOG
$ COPY SI$FOCUS:D_SUBJ.FTM SI$FOCUS:D_SUBJ.DOC;/LOG
$ EXIT
FOCUS program #1 :
-*  THIS FOCEXEC WILL PULL OUT THE ACTIVE DAY CURRICULUM COURSES
-*  IN ORDER TO PRODUCE THE MASTER SCHEDULE FOR THE PUBLIC
-*  INFORMATION OFFICE.
-*  
-*  VARIABLES USED :
-*    INTERM : THE TERM TO PULL COURSES FROM
-*    BGNDT  : THE BEGINNING DATE FOR THE INPUT TERM.
-*    ENDDT  : THE ENDING DATE FOR THE INPUT TERM.
-*
JOIN CLEAR *
SET LINES=999999
SET PAGE=NOPAGE
DEFINE FILE RCFILE
FIRST_HOUR_PART/A2=EDIT(MEET_BGN1_RC,'99$$$$');
WHOLE_HOUR_PART/A4=EDIT(MEET_BGN1_RC,'9999$$');
TIME_PART/A2=EDIT(MEET_BGN1_RC,'$$$$99');
COURSE_NUM/I3 = EDIT(CRS_NUM_RC);
END
TABLE FILE RCFILE
PRINT CRS_SUBJ_RC CRS_NUM_RC CRS_SECT_RC SECT_TTL_RC
      MEET_DAY1_RC MEET_BGN1_RC MEET_END1_RC MEET_BLDG1RC
      MEET_RM1_RC SCHD_NAME_RC MIN_HRS_RC 
      MEET_DAY2_RC MEET_BGN2_RC MEET_END2_RC MEET_BLDG2RC 
      MEET_RM2_RC MEET_DAY3_RC MEET_BGN3_RC MEET_END3_RC
      MEET_BLDG3RC MEET_RM3_RC CRS_BGN_RC CRS_END_RC
BY CRS_ID_RC
ON TABLE HOLD AS RCHOLD
IF TERM_RC EQ '&INTERM'
IF COURSE_NUM GT 99
IF COURSE_NUM LT 500
WHERE ((WHOLE_HOUR_PART LT '1200') AND (TIME_PART EQ 'AM')) OR
((WHOLE_HOUR_PART LT '0500') AND (TIME_PART EQ 'PM')) OR
(FIRST_HOUR_PART EQ '12');
IF CRS_SUBJ_RC NE 'CWE '
END
DEFINE FILE RCHOLD
COURSE/A13 = (CRS_SUBJ_RC||'-'|CRS_NUM_RC|'-'|CRS_SECT_RC);
OUTPUT_KEY/A37=(COURSE|SECT_TTL_RC);
OUTPUT_LINE1/A56=('   '|MEET_DAY1_RC|MEET_BGN1_RC|
'  '|MEET_END1_RC|'  '|MEET_BLDG1RC|'  '|MEET_RM1_RC|'  '|
SCHD_NAME_RC);
OUTPUT_LINE2/A56=('   '|MEET_DAY2_RC|MEET_BGN2_RC|
'  '|MEET_END2_RC|'  '|MEET_BLDG2RC|'  '|MEET_RM2_RC|
'                 ');
OUTPUT_LINE3/A56=('   '|MEET_DAY3_RC|MEET_BGN3_RC|
'  '|MEET_END3_RC|'  '|MEET_BLDG3RC|'  '|MEET_RM3_RC|
'                 ');
BUFFER_LINE/A7='       ';
-*
BEGIN_MON/A2=EDIT(CRS_BGN_RC, '$$99$$');
CHK_BEGIN_MON1/A1=EDIT(BEGIN_MON, '9$');
CHK_BEGIN_MON2/A1=EDIT(BEGIN_MON, '$9');
OUT_BEGIN_MON/A2=IF CHK_BEGIN_MON1 EQ '0' THEN (' '|CHK_BEGIN_MON2)
                                          ELSE BEGIN_MON;
-*
BEGIN_DAY/A2=EDIT(CRS_BGN_RC, '$$$$99');
CHK_BEGIN_DAY1/A1=EDIT(BEGIN_DAY, '9$');
CHK_BEGIN_DAY2/A1=EDIT(BEGIN_DAY, '$9');
OUT_BEGIN_DAY/A2=IF CHK_BEGIN_DAY1 EQ '0' THEN (' '|CHK_BEGIN_DAY2)
                                          ELSE BEGIN_DAY;
-*
END_MON/A2=EDIT(CRS_END_RC, '$$99$$');
CHK_END_MON1/A1=EDIT(END_MON, '9$');
CHK_END_MON2/A1=EDIT(END_MON, '$9');
OUT_END_MON/A2=IF CHK_END_MON1 EQ '0' THEN (' '|CHK_END_MON2)
                                          ELSE END_MON;
-*
END_DAY/A2=EDIT(CRS_END_RC, '$$$$99');
CHK_END_DAY1/A1=EDIT(END_DAY, '9$');
CHK_END_DAY2/A1=EDIT(END_DAY, '$9');
OUT_END_DAY/A2=IF CHK_END_DAY1 EQ '0' THEN (' '|CHK_END_DAY2)
                                          ELSE END_DAY;
-*
OUTPUT_LINE4/A56=('        '|'(BEGINS '|OUT_BEGIN_MON||'/'|OUT_BEGIN_DAY|
'-ENDS '|OUT_END_MON||'/'|OUT_END_DAY|')');
END
TABLE FILE RCHOLD
PRINT OUTPUT_KEY OUTPUT_LINE1 MIN_HRS_RC CRS_ID_RC CRS_SUBJ_RC
ON TABLE SAVE AS RCTEMP1
END
-*                           
TABLE FILE RCHOLD
PRINT OUTPUT_KEY OUTPUT_LINE2 BUFFER_LINE CRS_ID_RC CRS_SUBJ_RC
IF MEET_DAY2_RC NE ' '
ON TABLE SAVE AS RCTEMP2
END
-*                          
TABLE FILE RCHOLD
PRINT OUTPUT_KEY OUTPUT_LINE3 BUFFER_LINE CRS_ID_RC CRS_SUBJ_RC
IF MEET_DAY3_RC NE ' '
ON TABLE SAVE AS RCTEMP3
END
-*                          
TABLE FILE RCHOLD
PRINT OUTPUT_KEY OUTPUT_LINE4 BUFFER_LINE CRS_ID_RC CRS_SUBJ_RC
ON TABLE SAVE AS RCTEMP4
WHERE (CRS_BGN_RC NE '&BGNDT') OR (CRS_END_RC NE '&ENDDT');
END
JOIN CLEAR *
Typical DCL Command Procedure to run the program for evening courses :
$!  THIS COMMAND PROCEDURE RUNS THE FOCEXECS TO PRODUCE THE 
$!  MASTER SCHEDULE FOR THE PUBLIC INFORMATION OFFICE.
$!  ONLY EVENING COURSES ARE INCLUDED.
$!
$ DELETE SI$FOCUS:*.FTM;*/LOG
$ DELETE SI$FOCUS:*.MAS;*/LOG
$ DELETE SI$FOCUS:*.WP;*/LOG
$ DELETE SI$FOCUS:COUSRT.DOC;*/LOG
$ DELETE SI$FOCUS:EMPTY_PLAY.DOC;*/LOG
$ COPY SI$FOCUS:COUSRT.MFD; SI$FOCUS:COUSRT.MAS; /LOG
$ COPY SI$FOCUS:SISDBD.MFD; SI$FOCUS:SISDBD.MAS; /LOG
$ COPY SI$FOCUS:SCH.MFD; SI$FOCUS:SCH.MAS; /LOG
$ COPY SI$FOCUS:EMPTY_FILE.DOC; SI$FOCUS:EMPTY_PLAY.DOC; /LOG
$ DEFINE FOC$DIR1 SI$DATA
$ SET DEFAULT SI$FOCUS
$ FOCUS
EXEC (FOCEXEC name #1) INTERM=(Enrollment term), BGNDT=(Beginning Course date in YYMMDD format), ENDDT=(Ending Course date in YYMMDD format)
FIN
$ STA1 = F$SEARCH ("SI$FOCUS:RCTEMP1.FTM;*",1)
$ STA2 = F$SEARCH ("SI$FOCUS:RCTEMP2.FTM;*",2)
$ STA3 = F$SEARCH ("SI$FOCUS:RCTEMP3.FTM;*",3)
$ STA4 = F$SEARCH ("SI$FOCUS:RCTEMP4.FTM;*",4)
$ IF (STA1 .NES. "") THEN CONVERT/APPEND RCTEMP1.FTM EMPTY_PLAY.DOC
$ IF (STA2 .NES. "") THEN CONVERT/APPEND RCTEMP2.FTM EMPTY_PLAY.DOC
$ IF (STA3 .NES. "") THEN CONVERT/APPEND RCTEMP3.FTM EMPTY_PLAY.DOC
$ IF (STA4 .NES. "") THEN CONVERT/APPEND RCTEMP4.FTM EMPTY_PLAY.DOC
$ SORT/KEY=(POSITION=1,SIZE=11)/KEY=(POSITION=94,SIZE=7,DESCENDING) -
    EMPTY_PLAY.DOC COUSRT.DOC
$ SET DEFAULT SI$FOCUS
$ FOCUS
EXEC (FOCEXEC name #2) INTERM=(Enrollment term)
FIN
$ COPY SI$FOCUS:TEMP.FTM SYS$LOGIN:EVEALL.DOC; /LOG
$ COPY SI$FOCUS:D_SUBJ.FTM SI$FOCUS:D_SUBJ.DOC;/LOG
$ EXIT
FOCUS program #1 :
-*  THIS FOCEXEC WILL PULL OUT THE ACTIVE EVENING CURRICULUM COURSES
-*  IN ORDER TO PRODUCE THE MASTER SCHEDULE FOR THE PUBLIC
-*  INFORMATION OFFICE.
-*  
-*  VARIABLES USED :
-*    INTERM : THE TERM TO PULL COURSES FROM
-*    BGNDT  : THE BEGINNING DATE FOR THE INPUT TERM.
-*    ENDDT  : THE ENDING DATE FOR THE INPUT TERM.
-*
JOIN CLEAR *
SET LINES=999999
SET PAGE=NOPAGE
DEFINE FILE RCFILE
COURSE_NUM/I3 = EDIT(CRS_NUM_RC);
HOUR_PART/A4=EDIT(MEET_BGN1_RC,'9999$$');
TIME_PART/A2=EDIT(MEET_BGN1_RC,'$$$$99');
FIRST_HOUR_PART/A2=EDIT(MEET_BGN1_RC,'99$$$$');
END
TABLE FILE RCFILE
PRINT CRS_SUBJ_RC CRS_NUM_RC CRS_SECT_RC SECT_TTL_RC
      MEET_DAY1_RC MEET_BGN1_RC MEET_END1_RC MEET_BLDG1RC
      MEET_RM1_RC SCHD_NAME_RC MIN_HRS_RC 
      MEET_DAY2_RC MEET_BGN2_RC MEET_END2_RC MEET_BLDG2RC 
      MEET_RM2_RC MEET_DAY3_RC MEET_BGN3_RC MEET_END3_RC
      MEET_BLDG3RC MEET_RM3_RC CRS_BGN_RC CRS_END_RC
BY CRS_ID_RC
ON TABLE HOLD AS RCHOLD
IF TERM_RC EQ '&INTERM'
IF COURSE_NUM GT 99
IF COURSE_NUM LT 500
WHERE ((HOUR_PART GE '0500') AND (TIME_PART EQ 'PM') AND 
(FIRST_HOUR_PART NE '12'));
IF CRS_SUBJ_RC NE 'CWE '
END
DEFINE FILE RCHOLD
COURSE/A13 = (CRS_SUBJ_RC||'-'|CRS_NUM_RC|'-'|CRS_SECT_RC);
OUTPUT_KEY/A37=(COURSE|SECT_TTL_RC);
OUTPUT_LINE1/A56=('   '|MEET_DAY1_RC|MEET_BGN1_RC|
'  '|MEET_END1_RC|'  '|MEET_BLDG1RC|'  '|MEET_RM1_RC|'  '|
SCHD_NAME_RC);
OUTPUT_LINE2/A56=('   '|MEET_DAY2_RC|MEET_BGN2_RC|
'  '|MEET_END2_RC|'  '|MEET_BLDG2RC|'  '|MEET_RM2_RC|
'                 ');
OUTPUT_LINE3/A56=('   '|MEET_DAY3_RC|MEET_BGN3_RC|
'  '|MEET_END3_RC|'  '|MEET_BLDG3RC|'  '|MEET_RM3_RC|
'                 ');
BUFFER_LINE/A7='       ';
-*
BEGIN_MON/A2=EDIT(CRS_BGN_RC, '$$99$$');
CHK_BEGIN_MON1/A1=EDIT(BEGIN_MON, '9$');
CHK_BEGIN_MON2/A1=EDIT(BEGIN_MON, '$9');
OUT_BEGIN_MON/A2=IF CHK_BEGIN_MON1 EQ '0' THEN (' '|CHK_BEGIN_MON2)
                                          ELSE BEGIN_MON;
-*
BEGIN_DAY/A2=EDIT(CRS_BGN_RC, '$$$$99');
CHK_BEGIN_DAY1/A1=EDIT(BEGIN_DAY, '9$');
CHK_BEGIN_DAY2/A1=EDIT(BEGIN_DAY, '$9');
OUT_BEGIN_DAY/A2=IF CHK_BEGIN_DAY1 EQ '0' THEN (' '|CHK_BEGIN_DAY2)
                                          ELSE BEGIN_DAY;
-*
END_MON/A2=EDIT(CRS_END_RC, '$$99$$');
CHK_END_MON1/A1=EDIT(END_MON, '9$');
CHK_END_MON2/A1=EDIT(END_MON, '$9');
OUT_END_MON/A2=IF CHK_END_MON1 EQ '0' THEN (' '|CHK_END_MON2)
                                          ELSE END_MON;
-*
END_DAY/A2=EDIT(CRS_END_RC, '$$$$99');
CHK_END_DAY1/A1=EDIT(END_DAY, '9$');
CHK_END_DAY2/A1=EDIT(END_DAY, '$9');
OUT_END_DAY/A2=IF CHK_END_DAY1 EQ '0' THEN (' '|CHK_END_DAY2)
                                          ELSE END_DAY;
-*
OUTPUT_LINE4/A56=('        '|'(BEGINS '|OUT_BEGIN_MON||'/'|OUT_BEGIN_DAY|
'-ENDS '|OUT_END_MON||'/'|OUT_END_DAY|')');
END
TABLE FILE RCHOLD
PRINT OUTPUT_KEY OUTPUT_LINE1 MIN_HRS_RC CRS_ID_RC CRS_SUBJ_RC
ON TABLE SAVE AS RCTEMP1
END                                                                           
-*
TABLE FILE RCHOLD
PRINT OUTPUT_KEY OUTPUT_LINE2 BUFFER_LINE CRS_ID_RC CRS_SUBJ_RC
IF MEET_DAY2_RC NE ' '
ON TABLE SAVE AS RCTEMP2
END                                                                           
-*
TABLE FILE RCHOLD
PRINT OUTPUT_KEY OUTPUT_LINE3 BUFFER_LINE CRS_ID_RC CRS_SUBJ_RC
IF MEET_DAY3_RC NE ' '
ON TABLE SAVE AS RCTEMP3
END                                                                           
-*
TABLE FILE RCHOLD
PRINT OUTPUT_KEY OUTPUT_LINE4 BUFFER_LINE CRS_ID_RC CRS_SUBJ_RC
ON TABLE SAVE AS RCTEMP4
WHERE (CRS_BGN_RC NE '&BGNDT') OR (CRS_END_RC NE '&ENDDT');
END
JOIN CLEAR *
FOCUS program #2 :
-*  THIS FOCEXEC WILL FORMAT THE RESULTS OF THE FIRST PROGRAM
-*  IN ORDER TO PRODUCE THE MASTER SCHEDULE FOR THE PUBLIC
-*  INFORMATION OFFICE.
-*  
-*  VARIABLES USED :
-*    INTERM : THE TERM TO PULL COURSES FROM
-*
JOIN CLEAR *
-*
-*  THIS FOCUS SEGMENT WILL GENERATE A DECODE FILE OF COURSE SUBJECTS 
-*  ALONG WITH THEIR "TRANSLATED" VALUE.  THE FILE THAT IS LOOKED AT
-*  IS AN EXTRACT OF THE SIS PRODUCTION DBD.
-*
SET PAGE=NOPAGE
SET LINES=999999
JOIN CLEAR *
FILEDEF SISDBD DISK SI$DATA:SISDBD.DAT
DEFINE FILE SISDBD
EXT_FIELD1/A30=GETTOK(DATA_ELEMENT_TRANS,30,1,'''',30,EXT_FIELD1);
EXT_FIELD2/A28=GETTOK(DATA_ELEMENT_TRANS,28,2,'''',28,EXT_FIELD2);
OUTLINE/A78=IF EXT_FIELD2 EQ ' ' THEN 
               (DATA_ELEMENT_VALUE|' '''|EXT_FIELD1||''' ') ELSE
           (DATA_ELEMENT_VALUE|' '''|EXT_FIELD1||''''' '||EXT_FIELD2||''' ');
FULL_ELE/A7=('DVA 035');
END
TABLE FILE SISDBD
PRINT OUTLINE
ON TABLE SAVE AS D_SUBJ
WHERE DATA_ELEMENT_NAME EQ FULL_ELE;
IF VALUE_INDICATOR EQ ' '
END
-*
SET LINES=999999
SET PAGE=NOPAGE
FILEDEF COUSRT DISK SI$FOCUS:COUSRT.DOC
FILEDEF D_SUBJ DISK SI$FOCUS:D_SUBJ.FTM
JOIN TEMP_KEY WITH COURSE_NAME IN COUSRT TO KEY IN RCFILE AS J1
DEFINE FILE COUSRT
TEMP_KEY/A16=('HG'|'&INTERM'|COURSE_NAME|'  ');
END
TABLE FILE COUSRT
PRINT COURSE_REST COURSE_HOURS COURSE_INST SITE_CODE_RC OUTPUT_KEY
      BY CRS_SUBJ_RC
ON TABLE HOLD AS COUSRT2
END
-*
DEFINE FILE COUSRT2
OUT_DEGREE/A35=DECODE CRS_SUBJ_RC (D_SUBJ ELSE '*****');
OUT_DEGREE2/A36=(OUT_DEGREE||':');
END
TABLE FILE COUSRT2
PRINT COURSE_REST AS '' IN 41 COURSE_HOURS AS '' IN 74
      COURSE_INST AS '' IN 82
BY SITE_CODE_RC NOPRINT
-*
BY OUT_DEGREE2 AS ''
-*
BY OUTPUT_KEY AS '' IN 2
ON TABLE SAVE AS TEST FORMAT WP
ON OUT_DEGREE2 SKIP-LINE
ON OUT_DEGREE2 FOLD-LINE
END
FILEDEF SCH DISK TEST.WP
DEFINE FILE SCH
CHK_FLD/A7=EDIT(D4,'9999999$$$$$$$$$$$$$$$$$$$$$$$');
NEW_D2/A30=IF CHK_FLD EQ '(BEGINS' THEN D4 ELSE D2;
NEW_D4/A30=IF CHK_FLD EQ '(BEGINS' THEN '  ' ELSE D4;
END
TABLE FILE SCH
PRINT D1 AS '' IN 1 NEW_D2 AS '' D3 AS '' NEW_D4 AS '' D5 AS '' 
ON TABLE SAVE AS TEMP
END
JOIN CLEAR *
Master File Description (MFD) for COUSRT :
FILE=COUSRT,SUFFIX=FIX
SEGNAME=ROOT
  FIELD=OUTPUT_KEY, ,A40,A40,$
  FIELD=COURSE_REST, ,A38,A38,$
  FIELD=COURSE_INST, ,A15,A15,$
  FIELD=COURSE_HOURS, ,A07,A07,$
  FIELD=COURSE_NAME, ,A09,A09,$
  FIELD=COURSE_FILLER, ,A02,A02,$
  FIELD=CRS_SUBJ_RC, ,A04,A04,$
Master File Description (MFD) for SISDBD :
FILE=SISDBD,SUFFIX=FIX
SEGNAME=ROOT
  FIELD=DATA_ELEMENT_NAME, ,A07,A07,$
  FIELD=VALUE_INDICATOR, ,A01,A01,$
  FIELD=DATA_ELEMENT_VALUE, ,A04,A04,$
  FIELD=COMPU_FILL01, ,A15,A15,$
  FIELD=DATA_ELEMENT_TRANS, ,A34,A34,$
  FIELD=DATA_ELEMENT_TRANS2, ,A19,A19,$
Master File Description (MFD) for SCH :
FILE=SCH,SUFFIX=FIX
SEGNAME=ROOT
  FIELD=D1, ,A11,A11,$
  FIELD=D2, ,A30,A30,$
  FIELD=D3, ,A6,A6,$
  FIELD=D4, ,A30,A30,$
  FIELD=D5, ,A55,A55,$ 

 

This page hosted by Get your own Free Homepage

Hosted by www.Geocities.ws

1