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