Typical DCL Command Procedure to set up the program :
$ SET NOVERIFY
$ CLEAR
$ SAY :== "WRITE SYS$OUTPUT"
$!
$ SAY "This FOCEXEC will activate a hold flag (#15) on those UNDC" 
$ SAY "students who meet the following criteria."
$ SAY "1.  Those who are taking 12 or more hours for the input"
$ SAY "    term."
$ SAY "2.  Those who have a cumulative total of 12 or more hours"
$ SAY "    that they have took as a UNDC student."
$ SAY " "
$!
$ENTER_PARM:
$ READ SYS$COMMAND/TIME=60/END=EXIT/ERROR=EXIT/PROMPT= -
  "Enter the term to run this report for >>> " TERMIN
$ LEN_TERMIN = F$LENGTH(TERMIN)
$ IF LEN_TERMIN .NE. 3 THEN GOTO ENTER_PARM
$ TYP_TERMIN = F$TYPE(TERMIN)
$ IF TYP_TERMIN .NES. "INTEGER" THEN GOTO ENTER_PARM
$!
$!   Build parameter for (FOCEXEC name)
$!
$ EXEC1_REC = "EXEC (FOCEXEC name) INTERM=" + TERMIN
$ OPEN/READ INPUT_FILE SI$FOCUS_USER:(FOCEXEC name).COM
$ OPEN/WRITE OUTPUT_FILE SI$FOCUS_USER:(FOCEXEC name).TMP
$READ_MORE_001:
$ READ/END_OF_FILE=BEGIN_001 INPUT_FILE IN_RECORD
$ IF F$EXTRACT(0,4,IN_RECORD) .EQS. "EXEC" 
$ THEN 
$    WRITE OUTPUT_FILE EXEC1_REC
$ ELSE
$    OUTFILE_REC = IN_RECORD
$    WRITE OUTPUT_FILE OUTFILE_REC
$ ENDIF
$ GOTO READ_MORE_001
$BEGIN_001:
$ CLOSE OUTPUT_FILE
$ CLOSE INPUT_FILE
$ RENAME SI$FOCUS_USER:(FOCEXEC name).TMP SI$FOCUS_USER:(FOCEXEC name).COM;/LOG
$ SUBMIT/QUE=SYS$FOCUS SI$FOCUS_USER:(FOCEXEC name).COM
$!
$EXIT:
$ EXIT
Typical DCL Command Procedure to actually run the program :
$ DEFINE FOC$DIR1 SI$DATA
$ DEL SI$FOCUS_USER:TEMP*.*;*/LOG
$ DEL SI$FOCUS_USER:*.FTM;*/LOG
$ DEL SI$FOCUS_USER:*.MAS;*/LOG
$ SET DEFAULT SI$FOCUS_USER
$ FOCUS
EXEC (FOCEXEC name) INTERM=(Enrollment Term)
FIN
$ NAME = F$GETJPI("","USERNAME")
$ MAIL/SUBJECT="HOLD FLAG #15 FOR UNDC" PLAY2.FTM 'NAME'
$ CONVERT/APPEND/PAD=%D32 PLAY.FTM SI$DATA:AIBBFL.DAT
$ SET DEFAULT SYS$LOGIN
$ EXIT
FOCUS program :
-*  THIS FOCEXEC WILL ACTIVATE HOLD FLAG #15 FOR A STUDENT IF THEY MEET
-*  ONE OF THE FOLLOWING CRITERIA.
-*    1)  THEY ARE TAKING MORE THAN 12 HOURS AS A UNDC STUDENT FOR THE 
-*        INPUT TERM.
-*    2)  THEY HAVE TAKEN/ARE TAKING A TOTAL OF 12 HOURS AS A UNDC STUDENT
-*        OVER THEIR COLLEGE CAREER.
-*  THE RESULTS ARE MAILED TO A USER ACCOUNT.
-*     VARIABLES USED :
-*         INTERM : THE INPUT ENROLLMENT TERM 
-*
SET LINES=999999
SET PAGE=NOPAGE
-SET &HDRKEY = '$$$MSC110      UNDC #15       YRE';
-INCLUDE (SIS Batch Header).SEG
JOIN CLEAR *
DEFINE FILE RTFILE
JN_KEY/A11=('XX'|SID_RT);
END
TABLE FILE RTFILE
PRINT CURR_AHRS_RT PRIM_MJR1_RT SID_RT BY JN_KEY
ON TABLE HOLD AS RTTEMP1
IF TERM_RT EQ '&INTERM'
IF PRIM_MJR1_RT EQ 'UNDC'
WHERE (CURR_AHRS_RT LT 12.00) AND (CURR_AHRS_RT GT 00.00);
END
JOIN JN_KEY IN RTTEMP1 TO KEY IN RPFILE AS J1
DEFINE FILE RTTEMP1
SUPER_JN_KEY/A14=(ACTV_TERM_RP|'XX'|SID_RT);
END
TABLE FILE RTTEMP1
PRINT SID_RT BY SUPER_JN_KEY
ON TABLE HOLD AS RTTEMP2
WHERE (ACTV_TERM_RP NE '   ') AND (ACTV_TERM_RP LE '&INTERM'); 
END
JOIN SUPER_JN_KEY IN RTTEMP2 TO KEY IN RTFILE AS J2
TABLE FILE RTTEMP2
SUM CURR_EHRS_RT BY SID_RT
ON TABLE HOLD AS RTTEMP3
IF TERM_RT LT '&INTERM'
IF PRIM_MJR1_RT EQ 'UNDC'
END
JOIN CLEAR *
JOIN SID_RT IN RTTEMP3 TO SID_RT IN RTTEMP1 AS J1
DEFINE FILE RTTEMP3
TOT_UNDC_HRS/P07.2C=CURR_AHRS_RT + CURR_EHRS_RT;
END
TABLE FILE RTTEMP3
PRINT TOT_UNDC_HRS BY SID_RT
ON TABLE HOLD AS RTTEMP4
END
MATCH FILE RTTEMP4
PRINT TOT_UNDC_HRS BY SID_RT
IF TOT_UNDC_HRS GE 12.00
RUN
FILE RTFILE
PRINT CURR_AHRS_RT BY SID_RT
IF TERM_RT EQ '&INTERM'
IF PRIM_MJR1_RT EQ 'UNDC'
IF CURR_AHRS_RT GE 12.00
AFTER MATCH HOLD OLD-OR-NEW
END
-RUN
MATCH FILE HOLD
PRINT CURR_AHRS_RT TOT_UNDC_HRS BY SID_RT AS SID_CODE
RUN
FILE AAFILE
PRINT HOLD_FLG15 BY SID_AA AS SID_CODE
IF HOLD_FLG15 EQ '15'
AFTER MATCH OLD-NOT-NEW
END
-RUN
TABLE FILE HOLD
PRINT SID_CODE
ON TABLE SAVE AS PLAY2
END
DEFINE FILE HOLD
BTH_TRANS1/A29 = ('02I'|SID_CODE|'                 '); 
BTH_TRANS2/A18 = '                15';
END
TABLE FILE HOLD
PRINT BTH_TRANS1 IN 1 AS '' BTH_TRANS2 AS ''
ON TABLE SAVE AS PLAY
END
JOIN CLEAR *

 

This page hosted by Get your own Free Homepage

Hosted by www.Geocities.ws

1