Typical DCL Command Procedure to run the program :
$!
$! GE-EXTRACT-FOR-DRA.COM
$!
$! Description: Creates the student extract file for the DRA system.
$!
$ SET NOVERIFY
$ SAY :== "WRITE SYS$OUTPUT"
$ CL
$!
$ SAY "This will create the student extract file for the "
$ SAY "DRA system."
$ SAY " "
$ SAY "(GE-EXTRACT-FOR-DRA)"
$ SAY " "
$!
$! Prompt for term
$!
$ENTER_PARM_TERM:
$ READ SYS$COMMAND/TIME=60/END=EXIT/ERROR=EXIT/PROMPT= -
"Enter the five digit term to run the extract for (CCYYX) >>> " TERMIN
$ LEN_TERMIN = F$LENGTH(TERMIN)
$ IF LEN_TERMIN .NE. 5 THEN GOTO ENTER_PARM_TERM
$ TYP_TERMIN = F$TYPE(TERMIN)
$ IF TYP_TERMIN .NES. "INTEGER" THEN GOTO ENTER_PARM_TERM
$!
$! Create and execute the FOCUS command procedure to fetch the related
$! term information.
$!
$ 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$FOCUS:GE-TRM-DATA-FOR-DRA TERMIN=" + TERMIN
$ WRITE output_file "FIN"
$ WRITE output_file "$ EXIT"
$!
$ CLOSE output_file
$ SUBMIT/NOPRINT/NOTIFY 'COM_FILE'
$ SYNCHRONIZE FOCTEMP
$!
$ OPEN/READ input_file SYS$LOGIN:TRMDRA.FTM
$ READ input_file input_rec
$ VALID_DT = F$EXTRACT(4,2,input_rec) + F$EXTRACT(6,2,input_rec) + -
F$EXTRACT(0,4,input_rec) + F$EXTRACT(12,2,input_rec) + -
F$EXTRACT(14,2,input_rec) + -
F$EXTRACT(8,4,input_rec) + "12311999" + -
F$EXTRACT(4,2,input_rec) + F$EXTRACT(6,2,input_rec) + -
F$EXTRACT(0,4,input_rec)
$ CLOSE input_file
$!
$! Create and execute the FOCUS command procedure to create the student
$! extract file.
$!
$ 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"
$ output_record = "EXEC SI$FOCUS:GE-EXTRACT-FOR-DRA TERMIN=" + TERMIN + -
",VLDDT=" + VALID_DT
$ WRITE output_file output_record
$ WRITE output_file "FIN"
$ WRITE output_file "$ EXIT"
$!
$ CLOSE output_file
$ SUBMIT/NOPRINT/NOTIFY 'COM_FILE'
$ SYNCHRONIZE FOCTEMP
$!
$EXIT:
$!
$ SAY " "
$ SAY "All done..."
$ SAY " "
$!
$! Clean up files and copy extract file.
$!
$ COPY/LOG SYS$LOGIN:DRA.FTM DRA.DAT;
$ DELETE/LOG SYS$LOGIN:*.FTM;*
$ DELETE/LOG SYS$LOGIN:*.MAS;*
$ DELETE/LOG SYS$LOGIN:FOCTEMP.COM;*
$!
$ SET DEFAULT SYS$LOGIN
$ EXIT
FOCUS program (1) :
-*begin doc
-*
-*FEX: GE-TRM-DATA-FOR-DRA
-*
-*Input:
-* TERMIN
-*
-*Purpose:
-*
-* This program will create the file containing the term data for use in
-* the DRA system student upload program.
-*
-*end doc
-*
JOIN CLEAR *
FILEDEF ACFL055 DISK SI$DATA:ACFILE.DAT
TABLE FILE ACFL055
PRINT CLASS_END_DATE CLASS_BEGIN_DATE
ON TABLE SAVE AS TRMDRA
WHERE TERM_CODE_SES EQ '&TERMIN';
WHERE SESSION_CODE EQ ' ';
END
JOIN CLEAR *
FOCUS program (2) :
-*begin doc
-*
-*FEX: GE-EXTRACT-FOR-DRA
-*
-*Input:
-* TERMIN : the enrollment term to select on.
-* VLDDT : the start/end dates for the enrollment term.
-*
-*Purpose:
-*
-* This program will create the extract file to perform the student load
-* into the DRA system.
-*
-*end doc
-*
JOIN CLEAR *
SET PAGE=NOPAGE
SET LINES=999999
FILEDEF DECMJR DISK SI$FOCUS:DECODE_MJR_DRA.DOC
-*
-* Select students enrolled for a given term.
-*
TABLE FILE RTFILE
PRINT MAJOR_1 CLASS_LEVEL BY STU_ID
ON TABLE HOLD AS RTTEMP1
WHERE TERM EQ '&TERMIN';
WHERE CURR_ATTEMPTED_HRS GT 0;
END
-*
-* Retrieve student name/biographic/demographic data.
-*
JOIN STU_ID IN RTTEMP1 TO KEY IN AAFILE AS J1
DEFINE FILE RTTEMP1
-INCLUDE SI$FOCUS:NAMEPARS.SEG
-*
REAL_MJR/A2=EDIT(MAJOR_1,'$$99');
MJR_TRANS/A2=IF MAJOR_1 EQ 'TRGE' THEN '1 '
ELSE DECODE REAL_MJR(DECMJR ELSE '?*');
FIX_BD/A8=EDIT(BIRTH_DT,'$$$$99$$')|EDIT(BIRTH_DT,'$$$$$$99')|
EDIT(BIRTH_DT,'9999$$$$');
-*
END
TABLE FILE RTTEMP1
PRINT MJR_TRANS CLASS_LEVEL FIX_BD SEX FST_NAME MDL_NAME LST_NAME
BY STU_ID
ON TABLE HOLD AS RTTEMP2
END
-*
-* Retrieve student address and create extract.
-*
JOIN STU_ID IN RTTEMP2 TO KEY IN ADFILE AS J1
DEFINE FILE RTTEMP2
FST_NAME_IN/A12=EDIT(FST_NAME,'999999999999');
MDL_NAME_IN/A12=EDIT(MDL_NAME,'999999999999');
LST_NAME_IN/A17=EDIT(LST_NAME,'99999999999999999');
-*
FST_NAME_OUT/A12=UPCASE(12,FST_NAME_IN,FST_NAME_OUT);
MDL_NAME_OUT/A12=UPCASE(12,MDL_NAME_IN,MDL_NAME_OUT);
LST_NAME_OUT/A17=UPCASE(17,LST_NAME_IN,LST_NAME_OUT);
-*
STREET_1_IN/A30=EDIT(STREET_1,'999999999999999999999999999999');
STREET_2_IN/A30=EDIT(STREET_2,'999999999999999999999999999999');
-*
STREET_1_OUT/A30=UPCASE(30,STREET_1_IN,STREET_1_OUT);
STREET_2_OUT/A30=UPCASE(30,STREET_2_IN,STREET_2_OUT);
-*
CITY_OUT/A20=UPCASE(20,CITY,CITY_OUT);
STATE_OUT/A2=UPCASE(2,STATE,STATE_OUT);
ZIP_IN/A9=EDIT(ZIP_CODE_DPBC,'999999999');
ZIP_OUT/A9=UPCASE(9,ZIP_IN,ZIP_OUT);
-*
ACAD_ST_OUT/A2=DECODE CLASS_LEVEL(FR '01' SO '02' ELSE '02');
-*
PERM_STREET_IN/A25=EDIT(STREET_1,'9999999999999999999999999');
PERM_STREET_OUT/A25=UPCASE(25,PERM_STREET_IN,PERM_STREET_OUT);
-*
OUT_REC1/A238=(' '|STU_ID|FIX_BD|' '|
SEX|' '|MJR_TRANS|' '|FST_NAME_OUT|MDL_NAME_OUT|LST_NAME_OUT|
' '|STREET_1_OUT|STREET_2_OUT|CITY_OUT|' '|
STATE_OUT|ZIP_OUT|PHONE);
-*
OUT_REC2/A245=(' '|
' '|
' SU'|
' '|
' '|ACAD_ST_OUT);
-*
OUT_REC3/A140=(STU_ID|' '|
' '|PERM_STREET_OUT|CITY_OUT|' '|STATE_OUT|ZIP_OUT|
PHONE);
-*
OUT_REC4/A200=(' '|
' '|
' &VLDDT');
END
TABLE FILE RTTEMP2
PRINT OUT_REC1 OUT_REC2 OUT_REC3 OUT_REC4
BY STU_ID NOPRINT
ON TABLE SAVE AS DRA
WHERE AD020_ORDER EQ 1;
END
JOIN CLEAR *
SI$FOCUS:DECODE_MJR_DRA.DOC :
(Major Code) '(Translation for DRA)'
This page hosted by
Get your own Free Homepage