Typical DCL Command Procedure to run the program : $! $! THIS COMMAND PROCEDURE RUNS THE PROCESS THAT CREATES $! E-MAILS SO ADVISORS CAN CHECK WEB REGISTRATIONS. $! $ DELETE/LOG SI$FEX:*.FTM;* $ DELETE/LOG SI$FEX:*.MAS;* $ DELETE/LOG SI$FEX:PLAY.WP;* $! $ DEFINE FOC$DIR1 SI$DATA $ DEFINE FOC$DIR2 SI$FEX,SI$MFD $! $! CHANGE FOCUS PROGRAM ACCORDING TO THE ABOVE PARAMETERS $! $ PGM_DATE = F$EXTRACT(0,4,F$CVTIME("YESTERDAY")) + - F$CVTIME("YESTERDAY","COMPARISON","MONTH") + - F$EXTRACT(8,2,F$CVTIME("YESTERDAY")) $! $ OPEN/READ input_file SI$FEX:(FOCEXEC name).FEX $ OPEN/WRITE output_file SI$FEX:(FOCEXEC name).TMP $! $BEGIN_READ: $! $ READ/END=END_READ input_file out_record $! $ IF (F$EXTRACT(0,20,out_record) .EQS. "WHERE REG_AUDIT_DATE") $ THEN $ WRITE output_file "WHERE REG_AUDIT_DATE EQ " + PGM_DATE + ";" $ ELSE $ WRITE output_file out_record $ ENDIF $! $ GOTO BEGIN_READ $! $END_READ: $! $ CLOSE input_file $ CLOSE output_file $ RENAME SI$FEX:(FOCEXEC name).TMP SI$FEX:(FOCEXEC name).FEX; $! $ SET DEFAULT SI$FEX $ ASSIGN SI$DATA:XFOC01.DAT XFOC01 $ FOCUS EXEC (FOCEXEC name) ENRTRM=(Enrollment Term) FIN $! $! EXIT PROGRAM IF NO INFORMATION IS RETRIEVED. $! $ IF (F$SEARCH("SI$FEX:PLAY.FTM;") .EQS. "") $ THEN $ EXIT $ ENDIF $! $! TAKE OUTPUT FROM FOCUS PROGRAM & CREATE REPORT. $! $ OPEN/WRITE output_file SI$FEX:PLAY.WP $ GOSUB WRITE_HEADING $! $ OPEN/READ input_file SI$FEX:PLAY.FTM $ READ/END=END_USER input_file in_record $ TEST_MJR = F$EXTRACT(0,4,in_record) $ CLOSE input_file $ OPEN/READ input_file SI$FEX:PLAY.FTM $! $ TEST_STU = "***" $! $PROCESS_FILE: $! $ READ/END=END_USER input_file in_record $! $ MJR_CODE = F$EXTRACT(0,4,in_record) $ STU_ID = F$EXTRACT(4,9,in_record) $! $ IF MJR_CODE .NES. TEST_MJR $ THEN $ CLOSE output_file $ GOSUB MAIL_PRT $ OPEN/WRITE output_file SI$FEX:PLAY.WP $ GOSUB WRITE_HEADING $ TEST_MJR = MJR_CODE $ ENDIF $! $ IF STU_ID .NES. TEST_STU $ THEN $ WRITE output_file " " $ WRITE output_file "**********************************************************" $ WRITE output_file " " $ WRITE output_file "Student Name : " + F$EDIT(F$EXTRACT(13,32,in_record),"TRIM") $ WRITE output_file "Student Id : " + STU_ID $ GOSUB PRT_EMAIL $ WRITE output_file "Contact Phone #(s) : " $ GOSUB PRT_PHONE $ WRITE output_file output_rec $ WRITE output_file " " $ WRITE output_file "Enrolled Courses : " $ WRITE output_file " " $ WRITE output_file " " + F$EDIT(F$EXTRACT(45,16,in_record),"TRIM") $ TEST_STU = STU_ID $ ELSE $ WRITE output_file " " + F$EDIT(F$EXTRACT(45,16,in_record),"TRIM") $ ENDIF $! $ GOTO PROCESS_FILE $! $END_USER: $! $ CLOSE input_file $ CLOSE output_file $ GOSUB MAIL_PRT $! $ EXIT $! $ PRT_EMAIL: $! $ PERSONAL_EMAIL = F$EDIT(F$EXTRACT(61,75,in_record),"TRIM") $ BUSINESS_EMAIL = F$EDIT(F$EXTRACT(136,75,in_record),"TRIM") $! $ IF F$LENGTH(PERSONAL_EMAIL) .EQ. 0 .AND. - F$LENGTH(BUSINESS_EMAIL) .EQ. 0 $ THEN $ WRITE output_file " " $ RETURN $ ENDIF $! $ IF F$LENGTH(PERSONAL_EMAIL) .NE. 0 .AND. - F$LENGTH(BUSINESS_EMAIL) .EQ. 0 $ THEN $ WRITE output_file " " $ WRITE output_file "E-mail Address" $ WRITE output_file " Personal : " + F$EDIT(F$EXTRACT(61,75,in_record),"TRIM") $ WRITE output_file " " $ RETURN $ ENDIF $! $ IF F$LENGTH(PERSONAL_EMAIL) .EQ. 0 .AND. - F$LENGTH(BUSINESS_EMAIL) .NE. 0 $ THEN $ WRITE output_file " " $ WRITE output_file "E-mail Address" $ WRITE output_file " Business : " + F$EDIT(F$EXTRACT(136,75,in_record),"TRIM") $ WRITE output_file " " $ RETURN $ ENDIF $! $ IF F$LENGTH(PERSONAL_EMAIL) .NE. 0 .AND. - F$LENGTH(BUSINESS_EMAIL) .NE. 0 $ THEN $ WRITE output_file " " $ WRITE output_file "E-mail Address(es)" $ WRITE output_file " Personal : " + F$EDIT(F$EXTRACT(61,75,in_record),"TRIM") $ WRITE output_file " Business : " + F$EDIT(F$EXTRACT(136,75,in_record),"TRIM") $ WRITE output_file " " $ RETURN $ ENDIF $! $ RETURN $! $ PRT_PHONE: $! $ output_rec = " " $! $ IF F$LENGTH(F$EDIT(F$EXTRACT(211,10,in_record),"TRIM")) .NE. 0 $ THEN $ output_rec = output_rec + F$EDIT(F$EXTRACT(211,10,in_record),"TRIM") + " " $ ENDIF $! $ IF F$LENGTH(F$EDIT(F$EXTRACT(221,15,in_record),"TRIM")) .NE. 0 $ THEN $ output_rec = output_rec + F$EDIT(F$EXTRACT(221,15,in_record),"TRIM") + " " $ ENDIF $! $ IF F$LENGTH(F$EDIT(F$EXTRACT(236,10,in_record),"TRIM")) .NE. 0 $ THEN $ output_rec = output_rec + F$EDIT(F$EXTRACT(236,10,in_record),"TRIM") + " " $ ENDIF $! $ IF F$LENGTH(F$EDIT(F$EXTRACT(246,15,in_record),"TRIM")) .NE. 0 $ THEN $ output_rec = output_rec + F$EDIT(F$EXTRACT(246,15,in_record),"TRIM") + " " $ ENDIF $! $ IF F$LENGTH(F$EDIT(F$EXTRACT(261,10,in_record),"TRIM")) .NE. 0 $ THEN $ output_rec = output_rec + F$EDIT(F$EXTRACT(261,10,in_record),"TRIM") + " " $ ENDIF $! $ IF F$LENGTH(F$EDIT(F$EXTRACT(271,15,in_record),"TRIM")) .NE. 0 $ THEN $ output_rec = output_rec + F$EDIT(F$EXTRACT(271,15,in_record),"TRIM") + " " $ ENDIF $! $ RETURN $! $! E-MAIL TO DESIGNATED PERSON. $! $ MAIL_PRT: $! $ OPEN/WRITE email_file SI$FEX:PLAY.COM $! $ GOSUB DETER_ADDRESS $! $ WRITE email_file "$ MAIL" $ WRITE email_file "SHOW FORWARD/USER=" + EMAIL_ID_MAIN $ WRITE email_file "SEND SI$FEX:PLAY.WP" $ WRITE email_file EMAIL_ID_MAIN $ WRITE email_file "Web Registration Check - " + F$TIME() $ WRITE email_file "EXIT" $ WRITE email_file "$ EXIT" $ CLOSE email_file $! $ @SI$FEX:PLAY $ DELETE/LOG SI$FEX:PLAY.COM;* $ WAIT 00:00:05 $! $ RETURN $! $ WRITE_HEADING: $! $ WRITE output_file " " $ WRITE output_file " This is a system generated report. If you have any questions regarding this" $ WRITE output_file " list, please contact ..." $ WRITE output_file " " $! $ RETURN $! $ DETER_ADDRESS: $! $ EMAIL_ID_MAIN = "..." $! $ IF (TEST_MJR .EQS. "...") $ THEN $ EMAIL_ID_MAIN = "..." $ ENDIF $! $ IF (TEST_MJR .EQS. "...") $ THEN $ EMAIL_ID_MAIN = "..." $ ENDIF $! $ RETURN $! FOCUS program : SET PAGE = NOPAGE SET LINES = 999999 JOIN CLEAR * -* -* Retrieve all web registration activityy for the specified day. -* FILEDEF AMFL050 DISK SI$DATA:AMFILE.DAT TABLE FILE AMFL050 PRINT REG_AUDIT_DATE BY STU_ID WHERE REG_AUDIT_DATE EQ 20020327; WHERE TRMNL_ID EQ '9998'; ON TABLE HOLD AS AMTMP1 END -* -* Remove duplicate information. -* DEFINE FILE AMTMP1 THS_REC/A1 = IF STU_ID NE LAST STU_ID THEN 'Y' ELSE 'N'; END TABLE FILE AMTMP1 PRINT REG_AUDIT_DATE BY STU_ID ON TABLE HOLD AS AMTMP2 WHERE THS_REC EQ 'Y'; END -* -* Retrieve phone information for each sttudent. -* JOIN STU_ID IN AMTMP2 TO KEY IN ADFILE AS J4 MATCH FILE AMTMP2 PRINT PHONE AS PHONE_1 INTRNTL_PHONE AS PHONE_WRK_1 BY STU_ID WHERE ADDRESS_NUMBER EQ 1; RUN FILE AMTMP2 PRINT PHONE AS PHONE_2 INTRNTL_PHONE AS PHONE_WRK_2 BY STU_ID WHERE ADDRESS_NUMBER EQ 2; AFTER MATCH HOLD OLD-OR-NEW END -RUN -* MATCH FILE HOLD PRINT PHONE_1 PHONE_WRK_1 PHONE_2 PHONE_WRK_2 BY STU_ID RUN FILE AMTMP2 PRINT PHONE AS PHONE_3 INTRNTL_PHONE AS PHONE_WRK_3 BY STU_ID WHERE ADDRESS_NUMBER EQ 3; AFTER MATCH HOLD OLD-OR-NEW END -RUN JOIN CLEAR * -* -* Get the term array for each student seelected above; this will -* show the terms a student was active inn. -* JOIN STU_ID IN HOLD TO STU_ID IN AAFILE AS J1 TABLE FILE HOLD PRINT PHONE_1 PHONE_WRK_1 PHONE_2 PHONE_WRK_2 PHONE_3 PHONE_WRK_3 TERM_STAT_ARRAY_1 BY STU_ID ON TABLE HOLD AS AATEMP2 WHERE TERM_STAT_ARRAY_1 GE '&ENRTRM'; END -* -* Create the join keys to hook to the RTTFILE. -* DEFINE FILE AATEMP2 JN_KEY/A14=(TERM_STAT_ARRAY_1|STU_ID); END TABLE FILE AATEMP2 PRINT PHONE_1 PHONE_WRK_1 PHONE_2 PHONE_WRK_2 PHONE_3 PHONE_WRK_3 BY JN_KEY BY STU_ID ON TABLE HOLD AS AATEMP3 END -* -* Retrieve other information and create hold file. -* FILEDEF AMFL080 DISK SI$DATA:AMFILE.DAT -* JOIN CLEAR * JOIN JN_KEY IN AATEMP3 TO KEY IN RTFILE AS J1 JOIN STU_ID IN AATEMP3 TO KEY IN AAFILE AS J2 JOIN STU_ID IN AATEMP3 TO STUDENT_NUMBER_EM IN AMFL080 AS J3 TABLE FILE AATEMP3 PRINT SECTION_ID TERM PERSONAL_EMAIL BUSINESS_EMAIL PHONE_1 PHONE_WRK_1 PHONE_2 PHONE_WRK_2 PHONE_3 PHONE_WRK_3 BY MAJOR_1 BY STU_ID BY STU_NAME ON TABLE SAVE AS PLAY WHERE TERM GE '&ENRTRM'; WHERE CURR_ATTEMPTED_HRS GT 0; WHERE SPE_STATUS EQ 'E'; END JOIN CLEAR *

 

 

This page hosted by Get your own Free Homepage

1
Hosted by www.Geocities.ws