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

Hosted by www.Geocities.ws

1