Typical DCL Command Procedure to run the program : $! $! This command procedure will allow a faculty member to send grades $! to a student's Campus Pipeline e-mail account. $! $ SET NOVERIFY $ SET NOCONTROL_Y $! $ SAY :== "WRITE SYS$OUTPUT" $! $! Delete any hold files that may have been left over from previous runs. $! $ DELETE/LOG SYS$LOGIN:*.FTM;* $ DELETE/LOG SYS$LOGIN:*.MAS;* $ COPY SI$FEX:ZKFILE.MFD; SYS$LOGIN:*.MAS; $! $ CL $! $ SAY " " $ SAY "Sending Grades To A Student's Campus Pipeline E-mail Account..." $ SAY " " $! $! Prompt for e-mail subject. $! $ READ SYS$COMMAND/TIME=60/END=EXIT_LOOP/ERROR=EXIT_LOOP/PROMPT= - "E-mail Subject >>> " SUBJIN $! $! Prompt for course section. $! $ENTER_PARM_CRS: $! $ SAY "" $ SAY "Enter the course section to send grades for..." $ SAY "" $ SAY "Ex : ENG 101 01 {for a single section} or " $ READ SYS$COMMAND/TIME=60/END=EXIT_LOOP/ERROR=EXIT_LOOP/PROMPT= - " ENG 101 {for all sections} >>> " CRSIN $ LEN_CRSIN = F$LENGTH(CRSIN) $ IF (LEN_CRSIN .NE. 10) .AND. (LEN_CRSIN .NE. 7) THEN GOTO ENTER_PARM_CRS $ TYP_CRSIN = F$TYPE(CRSIN) $ IF TYP_CRSIN .NES. "STRING" THEN GOTO ENTER_PARM_CRS $! $ IF (LEN_CRSIN .EQ. 7) $ THEN $ CRSIN = F$EDIT(CRSIN,"UPCASE") + " $$" $ ELSE $ CRSIN = F$EDIT(CRSIN,"UPCASE") $ ENDIF $! $! Create/run FOCUS program for given course section(s). $! $ CL $ SAY "" $ SAY "Please wait while course information is retrieved from SIS..." $ SAY "" $! $ COM_FILE = "SYS$LOGIN:FOCTEMP.COM" $! $ OPEN/WRITE output_file 'COM_FILE' $! $ WRITE output_file "$ DEFINE FOC$DIR1 SI$DATA" $ WRITE output_file "$ DEFINE FOC$DIR2 SI$FEX,SI$MFD" $ WRITE output_file "$ SET DEFAULT SYS$LOGIN" $ WRITE output_file "$ FOCUS" $ WRITE output_file "EXEC SI$FEX_USER:(FOCEXEC name)" $ WRITE output_file CRSIN $ WRITE output_file "FIN" $ WRITE output_file "$ EXIT" $! $ CLOSE output_file $ SUBMIT/NOPRINT/NOTIFY 'COM_FILE' $ SYNCHRONIZE FOCTEMP $! $! Check to see if hold files were created. $! $ IF (F$SEARCH("SYS$LOGIN:RTTEMP2.FTM;") .EQS. "") $ THEN $ CL $ SAY " " $ SAY "No course enrollment found for the following : " $ SAY ''CRSIN' $ SAY " " $ WAIT 00:00:05 $ EXIT $ ENDIF $! $! Prompt faculty member to enter in grade for each student in class. $! Create and send e-mail containing grade. $! $ CL $ OPEN/READ input_file SYS$LOGIN:RTTEMP2.FTM $ OPEN/WRITE output_file SYS$LOGIN:SEND_CP_EMAIL.COM $! $BEGIN_READ: $! $ READ/END=END_READ input_file in_record $! $ IF F$EDIT(F$EXTRACT(32,30,in_record),"TRIM") .NES. "" $ THEN $ SAY " " $ SAY "Student Name : " + F$EXTRACT(0,32,in_record) $ READ SYS$COMMAND/TIME=60/END=EXIT/ERROR=EXIT/PROMPT= - "Grade (if no grade, enter *) >>> " GRDIN $! $ IF GRDIN .NES. "*" $ THEN $ WRITE output_file "$ MAIL" $ WRITE output_file "SEND $ WRITE output_file - "SMTP%" + """" + - F$EDIT(F$EXTRACT(32,30,in_record),"TRIM") + - "@(e-mail address)" + """" $ WRITE output_file SUBJIN + " - " + CRSIN $ WRITE output_file "Grade : " + GRDIN $ WRITE output_file "$!" $ ENDIF $ ENDIF $! $ GOTO BEGIN_READ $! $END_READ: $! $ CLOSE input_file $ CLOSE output_file $! $ @SYS$LOGIN:SEND_CP_EMAIL $! $EXIT: $! $ CLOSE input_file $ CLOSE output_file $ EXIT FOCUS program : SET PAGE = NOPAGE SET LINES = 999999 JOIN CLEAR * -SET &TERM='(Enrollment Term)'; -*PROMPT &TERM/A5.ENTER THE FIVE DIGIT TERRM OF INPUT COURSE SECTION (CCYYX) : -PROMPT &CRS/A9.ENTER THE NAME OF INPUT COOURSE SECTION (EX : YOD 626 40) : -* -* Select students enrolled in input courrses for the specified term. -* TABLE FILE RTFILE PRINT SECTION_ID BY STU_ID WHERE SPE_STATUS NE 'D'; WHERE (OFFICIAL_GRADE NE 'W') AND (OFFICIAL_GRADE NE 'WF') AND (OFFICIAL_GRADE NE 'WF*'); WHERE SECTION_ID EQ '&CRS'; WHERE RT020_ORDER LE STU_PGM_ENTRY_CNTR; WHERE TERM EQ '&TERM'; ON TABLE HOLD AS RTTEMP1 END -* -* Retrieve Campus Pipeline Id. -* FILEDEF ZKFILE DISK ZS$DATA:ZKFILE.DAT TABLE FILE ZKFILE PRINT ZK_PERSON_ID BY ZK_APPLICATION_ID ON TABLE HOLD AS ZKTEMP1 END -* -* Retrieve student information. -* JOIN STU_ID IN RTTEMP1 TO KEY IN AAFILE AS J1 JOIN STU_ID IN RTTEMP1 TO ZK_APPLICATION_ID IN ZKTEMP1 AS J2 DEFINE FILE RTTEMP1 -* TMP_NAME/A32=GETTOK(STU_NAME,32,2,',',32,TMP_NAME); SFX_NAME/A5=GETTOK(STU_NAME,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(FMN_NAME,32,2,' ',32,MDL_NAME); LST_NAME/A32=GETTOK(STU_NAME,32,1,',',32,LST_NAME); EXPNDNME/A72=FMN_NAME || (' ' | LST_NAME | ' ') || SFX_NAME || '*'; CMPRSNME/A32=GETTOK(EXPNDNME,66,1,'*',32,CMPRSNME); FUL_NAME/A32=LJUST(32,CMPRSNME,FUL_NAME); -* END TABLE FILE RTTEMP1 PRINT FUL_NAME ZK_PERSON_ID STU_ID BY STU_NAME NOPRINT ON TABLE SAVE AS RTTEMP2 END JOIN CLEAR *

 

 

This page hosted by Get your own Free Homepage

1
Hosted by www.Geocities.ws