Typical DCL Command Procedure to set up the program : $! $! THIS COMMAND PROCEDURE RUNS THE FOCEXEC THAT CREATES THE E-MAIL $! DISTRIBUTION LIST FOR THE SPECIFIED CATEGORY. $! $ SAY :== "WRITE SYS$OUTPUT" $ CL $! $ SAY " " $ SAY "E-MAIL DISTRIBUTION LIST FOR SPECIFIED CATEGORY" $ SAY " " $ SAY "Please select the category to create the distribution list for" $ SAY " " $ SAY "1. CATEGORY 1" $ SAY "2. CATEGORY 2" $ SAY "3. CATEGORY 3" $ SAY "4. CATEGORY 4" $ SAY "5. CATEGORY 5" $ SAY "6. CATEGORY 6" $ SAY "7. CATEGORY 7" $ SAY "8. CATEGORY 8" $ SAY "9. CATEGORY 9" $ SAY "10. CATEGORY 10" $ SAY "11. CATEGORY 11" $ SAY "12. CATEGORY 12" $ SAY "13. CATEGORY 13" $ SAY "14. All Categories" $ SAY " " $! $! Prompt for selection $! $ENTER_SEL: $! $ READ SYS$COMMAND/TIME=60/END=EXIT/ERROR=EXIT/PROMPT= - "E-mail Category >>> " SELIN $ TYP_SEL = F$TYPE(SELIN) $ IF (TYP_SEL .NES. "INTEGER") .OR (SELIN .LT. 1) .OR. (SELIN .GT. 14) $ THEN $ GOTO ENTER_SEL $ ENDIF $! $! UPDATE FOCUS PROGRAM WITH SPECIFIED CATEGORY & THEN EXECUTE. $! $ SEL_1 = "MM_RPT_FLAG_14" $ SEL_2 = "MM_RPT_FLAG_15" $ SEL_3 = "MM_RPT_FLAG_16" $ SEL_4 = "MM_RPT_FLAG_17" $ SEL_5 = "MM_RPT_FLAG_18" $ SEL_6 = "MM_RPT_FLAG_19" $ SEL_7 = "RPT_FLAG_32" $ SEL_8 = "RPT_FLAG_33" $ SEL_9 = "RPT_FLAG_34" $ SEL_10 = "RPT_FLAG_35" $ SEL_11 = "RPT_FLAG_36" $ SEL_12 = "RPT_FLAG_37" $ SEL_13 = "RPT_FLAG_38" $ SEL_14 = "MM_RPT_FLAG_13" $! $ OPEN/READ INPUT_FILE SI$FEX_USER:(FOCEXEC name).FEX $ OPEN/WRITE OUTPUT_FILE SI$FEX_USER:(FOCEXEC name).TMP $! $READ_MORE: $! $ READ/END_OF_FILE=END_READ INPUT_FILE IN_RECORD $! $ IF F$EXTRACT(0,14,IN_RECORD) .EQS. "-* CHANGE HERE" $ THEN $ WRITE OUTPUT_FILE IN_RECORD $ READ/END_OF_FILE=END_READ INPUT_FILE IN_RECORD $ OUTFILE_REC = "PRINT " + SEL_'SELIN' + " BY STU_ID" $ WRITE OUTPUT_FILE OUTFILE_REC $ READ/END_OF_FILE=END_READ INPUT_FILE IN_RECORD $ OUTFILE_REC = "WHERE " + SEL_'SELIN' + " EQ " + "''''" + "Y" + "''''" + ";" $ WRITE OUTPUT_FILE OUTFILE_REC $ ELSE $ WRITE OUTPUT_FILE IN_RECORD $ ENDIF $! $ GOTO READ_MORE $! $END_READ: $! $ CLOSE OUTPUT_FILE $ CLOSE INPUT_FILE $ RENAME/LOG SI$FEX_USER:(FOCEXEC name).TMP SI$FEX_USER:(FOCEXEC name).FEX $! $ SUBMIT/QUE=SYS$FOCUS SI$FEX_USER:(FOCEXEC name) $! $EXIT: $! $ EXIT Typical DCL Command Procedure to actually run the program : $! $! THIS COMMAND PROCEDURE RUNS THE FOCEXEC THAT CREATES THE E-MAIL $! DISTRIBUTION LIST FOR THE SPECIFIED CATEGORY. $! $ DELETE SI$FEX_USER:*.FTM;*/LOG $ DELETE SI$FEX_USER:*.MAS;*/LOG $ DELETE SI$FEX_USER:*.WP;*/LOG $ DEFINE FOC$DIR2 SI$DATA, SI$MFD $ SET DEFAULT SI$FEX_USER $ FOCUS EXEC (FOCEXEC name) FIN $! $! FORMAT RESULTING FILE INTO MS OUTLOOK E-MAIL LIST $! $ OPEN/READ input_file SI$FEX_USER:MMTMP2.WP $ OPEN/WRITE output_file SI$FEX_USER:MMTMP3.WP $! $ READ/END=END_REC input_file in_record $ output_rec = "" $! $PROCESS_REC: $! $ READ/END=END_REC input_file in_record $! $ IF (F$LENGTH(in_record) .GT. 1) $ THEN $ IF (F$LENGTH(output_rec) .NE. 0) $ THEN $ output_rec = output_rec + ";" + F$EDIT(in_record,"COLLAPSE") $ ELSE $ output_rec = F$EDIT(in_record,"COLLAPSE") $ ENDIF $ ENDIF $! $ IF F$LENGTH(output_rec) .GT. 80 $ THEN $ WRITE output_file output_rec $ output_rec = "" $ ENDIF $! $ GOTO PROCESS_REC $! $END_REC: $! $ WRITE output_file output_rec $ CLOSE input_file $ CLOSE output_file $! $! E-MAIL RESULTING LIST $! $ NAME = F$GETJPI("","USERNAME") $ MAIL/SUBJECT="E-MAIL DISTRIBUTION LIST FOR SPECIFIED CATEGORY" - SI$FEX_USER:MMTMP3.WP 'NAME' $! $ EXIT FOCUS program : JOIN CLEAR * SET PAGE=NOPAGE SET LINES=999999 FILEDEF AMFL080 DISK SI$DATA:AMFILE.DAT -* -* Get all students in selected category -* TABLE FILE MMFILE ON TABLE HOLD AS MMTMP1 -* CHANGE HERE PRINT RPT_FLAG_32 BY STU_ID WHERE RPT_FLAG_32 EQ 'Y'; END -* -* Retrieve e-mail address(es) of those sselected above -* JOIN STU_ID IN MMTMP1 TO STUDENT_NUMBER_EM IN AMFL080 AS J1 TABLE FILE MMTMP1 PRINT PERSONAL_EMAIL AS '' OVER BUSINESS_EMAIL AS '' WHERE (PERSONAL_EMAIL NE '') OR (BUSINESS_EMAIL NE ''); ON TABLE SAVE AS MMTMP2 FORMAT WP END JOIN CLEAR *

 

 

This page hosted by Get your own Free Homepage

1
Hosted by www.Geocities.ws