Typical DCL Command Procedure to set up the program :
$ SET NOVERIFY $ SAY :== "WRITE SYS$OUTPUT" $! $ SAY "This FOCEXEC will generate the reports needed to" $ SAY "reconcile SIS with FRS if the accounting feed program" $ SAY "did not run correctly." $ SAY " " $ SAY "For the date, enter the exact date when BBD100 was ran." $ SAY "For a weekend run, this will normally be the past Friday date." $ SAY "For a weekday run, this will normally be the date before." $ SAY " " $! $ENTER_PARM: $ READ SYS$COMMAND/TIME=60/END=EXIT/ERROR=EXIT/PROMPT= - "Enter the date (YYMMDD) to run this report for >>> " DATEIN $ LEN_DATEIN = F$LENGTH(DATEIN) $ IF LEN_DATEIN .NE. 6 THEN GOTO ENTER_PARM $ TYP_DATEIN = F$TYPE(DATEIN) $ IF TYP_DATEIN .NES. "INTEGER" THEN GOTO ENTER_PARM $! $! Build parameter for (FOCEXEC name) $! $ EXEC1_REC = "EXEC (FOCEXEC name) CHKDT=" + DATEIN $ OPEN/READ INPUT_FILE SI$FOCUS_USER:(FOCEXEC name).COM $ OPEN/WRITE OUTPUT_FILE SI$FOCUS_USER:(FOCEXEC name).TMP $READ_MORE_001: $ READ/END_OF_FILE=BEGIN_001 INPUT_FILE IN_RECORD $ IF F$EXTRACT(0,4,IN_RECORD) .EQS. "EXEC" $ THEN $ WRITE OUTPUT_FILE EXEC1_REC $ ELSE $ OUTFILE_REC = IN_RECORD $ WRITE OUTPUT_FILE OUTFILE_REC $ ENDIF $ GOTO READ_MORE_001 $BEGIN_001: $ CLOSE OUTPUT_FILE $ CLOSE INPUT_FILE $ RENAME SI$FOCUS_USER:(FOCEXEC name).TMP SI$FOCUS_USER:(FOCEXEC name).COM;/LOG $ SUBMIT/QUE=SYS$FOCUS SI$FOCUS_USER:(FOCEXEC name).COM $! $EXIT: $ EXIT
Typical DCL Command Procedure to actually run the program :
$ DELETE SI$FOCUS_USER:*.FTM;*/LOG $ DELETE SI$FOCUS_USER:*.MAS;*/LOG $ DEFINE FOC$DIR1 SI$DATA $ SET DEFAULT SI$FOCUS_USER $ FOCUS EXEC (FOCEXEC name) CHKDT=(Date to run program against in YYMMDD format) FIN $ SET DEFAULT Z$PRT $ RENAME TEMPFILE1.DOC (FOCEXEC name)A.PRT;/LOG $ RENAME TEMPFILE2.DOC (FOCEXEC name)B.PRT;/LOG $ EXIT
FOCUS program :
-* THIS FOCEXEC WILL PRINT THE DETAILS OF THE BBD100 TRANSACTIONS FROM THE
-* BUFILE. ALSO, IT PRINTS A SUMMARY OF DEBITS AND CREDITS FOR BBD100
-* TRANSACTIONS FROM THE BUFILE. THIS IS DONE IN ORDER TO RECONCILE SIS WITH
-* FRS IF BBD100 DOES NOT COMPLETE CORRECTLY.
-*
-* VARIABLES USED :
-* CHKDT : DATE TO CHECK FOR
-*
JOIN CLEAR *
OFFLINE CLOSE
FILEDEF OFFLINE DISK Z$PRT:TEMPFILE1.DOC
OFFLINE
DEFINE FILE BUFILE
-*
-* ASSUME CLEARING ACCOUNT IS C-LRING-ACCT
-*
ACCT_NO/A10 = IF DBT_ACCT_1 NE '(Account #)' THEN DBT_ACCT_1 ELSE CR_ACCT_2;
DEBIT/D10.2 = IF (DBT_ACCT_1 NE '(Account #)') AND (FRS_FEED_AMT GT 0)
THEN FRS_FEED_AMT
ELSE IF (DBT_ACCT_1 NE '(Account #)') AND (FRS_FEED_AMT LT 0)
THEN FRS_FEED_AMT * -1
ELSE 0;
CREDIT/D10.2 = IF (DBT_ACCT_1 EQ '(Account #)') AND (FRS_FEED_AMT GT 0)
THEN FRS_FEED_AMT
ELSE IF (DBT_ACCT_1 EQ '(Account #)') AND (FRS_FEED_AMT LT 0)
THEN FRS_FEED_AMT * -1
ELSE 0;
END
TABLE FILE BUFILE
HEADING
"Date Run: &DATE <33 (Institution name)
<97 Report Name: (FOCEXEC name)"
"Time Run: &TOD <37 Replacement Accounting Feed
<97 Department: Business Office </1"
PRINT CHRG_PAY_BU AS C,P
DESC_DTL/A18 AS 'DESCRIPTION'
DEBIT AS 'DEBIT,AMOUNT'
CREDIT AS 'CREDIT,AMOUNT'
TRAN_ORIG_BU AS 'BATCH,ORIGIN'
SID_BU AS 'STUDENT ID'
STU_NAME_BU/A20 AS 'NAME'
ACCT_REF AS 'ACCT,REF'
FEED_DT_BU AS 'FEED,DATE'
BY ACCT_NO AS 'Account,Number'
BY SBCD_BU AS 'Subcode'
ON ACCT_NO SUBTOTAL AS '* Total for Account '
IF FEED_DT_BU EQ '&CHKDT'
END
-*
OFFLINE CLOSE
FILEDEF OFFLINE DISK Z$PRT:TEMPFILE2.DOC
OFFLINE
DEFINE FILE BUFILE
-*
-* ASSUME CLEARING ACCOUNT IS C-LRING-ACCT
-*
ACCT_NO/A10 = IF DBT_ACCT_1 NE '(Account #)' THEN DBT_ACCT_1 ELSE CR_ACCT_2;
DEBIT/D10.2 = IF (DBT_ACCT_1 NE '(Account #)') AND (FRS_FEED_AMT GT 0)
THEN FRS_FEED_AMT
ELSE IF (DBT_ACCT_1 NE '(Account #)') AND (FRS_FEED_AMT LT 0)
THEN FRS_FEED_AMT * -1
ELSE 0;
CREDIT/D10.2 = IF (DBT_ACCT_1 EQ '(Account #)') AND (FRS_FEED_AMT GT 0)
THEN FRS_FEED_AMT
ELSE IF (DBT_ACCT_1 EQ '(Account #)') AND (FRS_FEED_AMT LT 0)
THEN FRS_FEED_AMT * -1
ELSE 0;
END
TABLE FILE BUFILE
HEADING
"Date Run: &DATE <33 (Institution name)
<97 Report Name: (FOCEXEC name)"
"Time Run: &TOD <37 Replacement Accounting Feed
<97 Department: Business Office </1"
SUM DEBIT AS 'Total Debits'
CREDIT AS 'Total Credits'
COLUMN-TOTAL
BY ACCT_NO AS 'Account,Number'
IF FEED_DT_BU EQ '&CHKDT'
END
ONLINE
JOIN CLEAR *
This page hosted by
Get your own Free Homepage