Typical DCL Command Procedure to set up the program :
$ SET NOVERIFY
$ SAY :== "WRITE SYS$OUTPUT"
$!
$ SAY "This FOCEXEC will produce the lists for generating the"
$ SAY "acceptance letters."
$ SAY " "
$!
$ENTER_PARM:
$ READ SYS$COMMAND/TIME=60/END=EXIT/ERROR=EXIT/PROMPT= -
  "Enter the term to run this list 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
$ DELETE SI$FOCUS_USER:*.FTM;*/LOG
$ DELETE SI$FOCUS_USER:*.MAS;*/LOG
$ SET DEFAULT SI$FOCUS_USER
$ FOCUS
EXEC (FOCEXEC name) INTERM=(Application Term)
FIN
$ SEARCH SI$FOCUS_USER:PLAY2.FTM "*****"
$ COPY SI$FOCUS_USER:PLAY2.FTM; SYS$LOGIN:*.*;/LOG
$ CONVERT/APPEND/PAD=%D32 SI$FOCUS_USER:PLAY.FTM SI$DATA:AIBBFL.DAT
$ SET DEFAULT SYS$LOGIN
$ EXIT
FOCUS program :
-*  THIS FOCEXEC WILL RETRIEVE THOSE STUDENTS WHO NEED TO BE SENT AN
-*  ACCEPTANCE LETTER.  THIS IS BASED ON THE VALUE OF THE LETTER CODE
-*  FIELD ON SCREEN 111.  TWO FILES ARE GENERATED.  ONE IS A MAIL
-*  MERGE FILE.  THE OTHER IS A FILE OF BATCH TRANSACTIONS
-*  TO RESET THE LETTER CODE FIELD.
-*    VARIABLES USED:
-*      INTERM : THE BASE TERM TO PULL STUDENTS FROM
-*
-SET &HDRKEY = '$$$ADM140      RESET AC FIELD YAM';
-INCLUDE (SIS Batch Header).SEG
JOIN CLEAR *
SET LINES=999999
SET PAGE=NOPAGE
FILEDEF D_MAJOR DISK SI$FOCUS:D_MAJOR.DOC
FILEDEF D_TERM DISK SI$FOCUS:D_TERM.DOC
FILEDEF PLAY DISK PLAY.FTM APPEND
FILEDEF INSTFL DISK SI$DATA:INSTFL.DAT
JOIN MTCH_KEY IN RTFILE TO KEY IN RPFILE AS J1
DEFINE FILE RTFILE
CHK_FST/A1=EDIT (DORM_PHON_RT, '9$$$$$$');
END
TABLE FILE RTFILE
PRINT SID_RT PRIM_MJR1_RT TERM_RT RPT3_FLG_RT DORM_PHON_RT CLASS_RT
BY ADVSR1_ID_RP 
ON TABLE HOLD AS RTTEMP1
IF DORM_PHON_RT NE '0000000' AND '0000001'
IF CHK_FST NE 'D'
IF TERM_RT GE '&INTERM'
END
JOIN CLEAR *
JOIN ADVSR1_ID_RP IN RTTEMP1 TO ADVISOR_CODE IN INSTFL AS J1
TABLE FILE RTTEMP1
PRINT ADVISOR_NAME PRIM_MJR1_RT TERM_RT RPT3_FLG_RT DORM_PHON_RT CLASS_RT
BY SID_RT 
ON TABLE HOLD AS RTTEMP2
END
JOIN CLEAR *
JOIN TEMP_KEY WITH SID_RT IN RTTEMP2 TO KEY IN AAFILE AS J1
DEFINE FILE RTTEMP2
TEMP_KEY/A11=('XX'|SID_RT);
END
TABLE FILE RTTEMP2
PRINT SID_RT STU_NAME_AA STREET1_AA STREET2_AA CITY_AA STATE_AA
      ZIP_AA PRIM_MJR1_RT TERM_RT RPT3_FLG_RT DORM_PHON_RT CLASS_RT
      ADVISOR_NAME 
BY NAME_SORT_AA NOPRINT
ON TABLE HOLD AS RTTEMP3
WHERE AA_020_ORDER EQ 1;
END
DEFINE FILE RTTEMP3
TMP_NAME/A32 = GETTOK(STU_NAME_AA,32,2,',',32,TMP_NAME);
SFX_NAME/A5 = GETTOK(STU_NAME_AA,32,3,',',5,SFX_NAME);
FMN_NAME/A32 = LJUST(32,TMP_NAME,FMN_NAME);
FST_NAME/A32 = GETTOK(FMN_NAME,32,1,' ',32,FST_NAME);
MDL_NAME/A32 = GETTOK(STU_NAME_AA,32,2,',',32,MDL_NAME);
LST_NAME/A32 = GETTOK(STU_NAME_AA,32,1,',',32,LST_NAME);
EXPNDNME/A72 = FMN_NAME || (' '|LST_NAME|' ') || SFX_NAME || '*';
CMPRSNME/A32 = GETTOK (EXPNDNME,66,1,'*',32,CMPRSNME);
R_NAME/A32 = LJUST(32,CMPRSNME,R_NAME);
PRINT_MAJOR/A35=DECODE PRIM_MJR1_RT (D_MAJOR ELSE '*****');
PRINT_TERM/A35=DECODE TERM_RT (D_TERM ELSE '*****');
SID_LINE1/A11=EDIT(SID_RT,'999-99-9999');
END
TABLE FILE RTTEMP3
	.
	.
(Creation of mail merge file)
	.
	.
ON TABLE SAVE AS PLAY2
END
DEFINE FILE RTTEMP3
THS_DATE1/A8='&DATE';
THS_DATE2/A6=EDIT (THS_DATE1, '99$99$99');
BTH_TRANS1/A29 = ('40C'|SID_RT|'     '|TERM_RT|'         '); 
BTH_TRANS2/A13 = ('      D'|THS_DATE2);
END
TABLE FILE RTTEMP3
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