IDENTIFICATION DIVISION.
PROGRAM-ID. S802CTSR.
INSTALLATION.
DATE-WRITTEN. NOV 12,1982.
DATE-COMPILED. JAN 18,1988.
REMARKS. MECHANIZED CONTROL PRODUCTION.
*
* THIS MODULE READS THE SAR MICROFICHE FILE AND COMPUTES
* TOTALS FOR JOBS SUBMITTED, JOBS REVIEWED AND INCIDENT REPORTS
* OPENED BY CONTROL CLERKS. IT WILL CALCULATE PRODUCTION
* MINUTES AND GENERATE A REPORT WITH THE RESULTS. THE DATA
* IS ALSO ACCUMULATED IN A MASTER FILE.
*
* UPDATES: (LATEST CHANGES INDICATED BY CHANGE BAR-| )
* 04/24/84 - ADDED LOGIC TO CHECK SORT-RETURN CODE
* 05/02/84 - ADDED LOGIC TO CHECK CONTROL CLERK TABLE OVERFLOW
* 05/14/84 - MODIFIED VERIFY-PARM LOGIC;
* REMOVED COND-CODE DATA NAME
* 05/15/84 - CHANGED RETRIEVE-DSN-VSN-JESNO TO
* RETRIEVE-DSN-JESNO-DATE-TIME;
* MOVED DATE AND TIME RETRIEVAL FROM VERIFY-PARM TO
* RETRIEVE-DSN-JESNO-DATE-TIME;
* ADDED COMMENTS
* 05/16/84 - ADDED JES LOG COUNT
* 05/25/84 - CHANGED G0000V00 TO GDG
* 08/10/84 - ADDED LOGIC TO CHECK FOR SCANS AND SUBTRACT FROM
* SUBMIT TOTALS
* 08/13/84 - ADDED LOG RECORDS WRITTEN COUNT AND MESSAGE
* 11/30/84 - ADDED LOGIC TO SUBTRACT SCANS FROM REVIEW TOTALS
* 02/01/85 - CHANGED SORT FIELDS.
* 02/14/85 - ADDED LOGIC TO PICKUP INITIALS BEGINNING WITH '0'
* AND CHANGE IT TO 'O' (I.E. 0MR WOULD CHANGE TO OMR);
* ADDED 'NEW' FIELD TO CONTROL CLERK CARD RECORD AND
* TABLE
* 03/20/85 - ADDED LOGIC TO GET REVIEW AND SUBMIT TIME AND PUT
* IT IN THE LOG RECORD;
* ADDED NEW OUTPUT FILE WHICH WILL CONTAIN LOG RECORDS
* AND TROUBLE REPORTS FOR NEW CONTROL CLERKS.
* 07/30/85 - USE DATE READ FROM JES LOG INSTEAD OF START DATE
* FOR SUBMIT DATE;
* HANDLE INCOMPLETE FLOWLOGS
* 12/30/85 - SPLIT JOBS SUBMITTED INTO TWO CATAGORIES, JSUBMIT
* AND NON-JSUBMIT
* 03/25/86 - PICKUP INITIALS BEGINNING WITH "S" AND "C";
* USE JOB START TIME FOR SCANS;
* INCREASED CREDIT TABLE LIMIT FROM 100 TO 120
* 06/23/87 - CONVERTED TO SAR/MIRS
* 10/12/87 - REMOVED LOGIC THAT SET RETURN-CODE 4 WHEN YEARLY
* PROCESSING TAKES PLACE
* 12/07/87 - ADDED LOGIC TO HANDLE NEW FLOWLOG FORMAT
* 01/18/88 - ADDED LOGIC TO PICKUP UCC7 NUMBER AND ADD TO LOG;
* ADDED SHIFT ID TO LOG RECORD
*
*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-370-3081.
OBJECT-COMPUTER. IBM-370-3081.
SPECIAL-NAMES.
C01 IS TOP-OF-PAGE.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT SAR-FICHE ASSIGN TO UT-6250-S-INFICHE.
SELECT IR-FILE ASSIGN TO UT-3380-S-IRFILE.
SELECT CARD-FILE ASSIGN TO UT-3380-S-INCARDS.
SELECT SORTIN-FILE ASSIGN TO UT-3380-S-SORTIN.
SELECT SORTOUT-FILE ASSIGN TO UT-3350-S-SORTOUT.
SELECT IN-MAST-FILE ASSIGN TO UT-3380-S-INMAST.
SELECT OUT-MAST-FILE ASSIGN TO UT-3350-S-OUTMAST.
SELECT STATS-REPORT ASSIGN TO UR-S-STATS.
SELECT MESSAGE-REPORT ASSIGN TO UR-S-MESSAGES.
SELECT LOG-REPORT ASSIGN TO UR-S-LOG.
SELECT OUT-NEW-FILE ASSIGN TO UT-3350-S-OUTNEW.
SELECT SORT-WORK-FILE ASSIGN TO UT-3350-S-SORTWK01.
*
DATA DIVISION.
FILE SECTION.
SD SORT-WORK-FILE.
01 SORT-RCD.
05 SORT-SHIFT-ID PIC X(1).
05 SORT-INITIALS PIC X(3).
05 FILLER PIC X(1).
05 SORT-MONTH-DAY PIC X(4).
05 SORT-YEAR PIC X(2).
05 SORT-REST PIC X(69).
FD SAR-FICHE
BLOCK CONTAINS 0 RECORDS
RECORD CONTAINS 206 CHARACTERS
RECORDING MODE IS F
LABEL RECORDS ARE STANDARD.
01 IN-RCD PIC X(206).
FD IR-FILE
BLOCK CONTAINS 0 RECORDS
RECORD CONTAINS 206 CHARACTERS
RECORDING MODE IS F
LABEL RECORDS ARE STANDARD.
01 IN-IR-LINE PIC X(206).
FD CARD-FILE
BLOCK CONTAINS 0 RECORDS
RECORD CONTAINS 80 CHARACTERS
RECORDING MODE IS F
LABEL RECORDS ARE OMITTED.
01 IN-CRD PIC X(80).
FD SORTIN-FILE
BLOCK CONTAINS 0 RECORDS
RECORD CONTAINS 80 CHARACTERS
RECORDING MODE IS F
LABEL RECORDS ARE STANDARD.
01 SORTIN-LINE PIC X(80).
FD SORTOUT-FILE
BLOCK CONTAINS 0 RECORDS
RECORD CONTAINS 80 CHARACTERS
RECORDING MODE IS F
LABEL RECORDS ARE STANDARD.
01 SORTOUT-LINE PIC X(80).
FD IN-MAST-FILE
BLOCK CONTAINS 0 RECORDS
RECORD CONTAINS 80 CHARACTERS
RECORDING MODE IS F
LABEL RECORDS ARE STANDARD.
01 IN-MAST-LINE PIC X(80).
FD OUT-MAST-FILE
BLOCK CONTAINS 0 RECORDS
RECORD CONTAINS 80 CHARACTERS
RECORDING MODE IS F
LABEL RECORDS ARE STANDARD.
01 OUT-MAST-LINE PIC X(80).
FD STATS-REPORT
BLOCK CONTAINS 0 RECORDS
RECORD CONTAINS 133 CHARACTERS
RECORDING MODE IS F
LABEL RECORDS ARE OMITTED.
01 OUT-STATS-LINE PIC X(133).
FD MESSAGE-REPORT
BLOCK CONTAINS 0 RECORDS
RECORD CONTAINS 80 CHARACTERS
RECORDING MODE IS F
LABEL RECORDS ARE OMITTED.
01 OUT-MSG-LINE PIC X(80).
FD LOG-REPORT
BLOCK CONTAINS 0 RECORDS
RECORD CONTAINS 80 CHARACTERS
RECORDING MODE IS F
LABEL RECORDS ARE OMITTED.
01 OUT-LOG-LINE PIC X(80).
FD OUT-NEW-FILE
BLOCK CONTAINS 0 RECORDS
RECORD CONTAINS 80 CHARACTERS
RECORDING MODE IS F
LABEL RECORDS ARE STANDARD.
01 OUT-NEW-LINE PIC X(80).
WORKING-STORAGE SECTION.
01 BEGIN-WS PIC X(29)
VALUE '*** BEGIN WORKING STORAGE ***'.
01 TABLE-COUNT PIC 9(3) VALUE ZEROS.
01 CARD-COUNT PIC 9(3) VALUE ZEROS.
01 MAX-TABLE-COUNT PIC 9(3) VALUE ZEROS.
01 MAX-CARD-COUNT PIC 9(3) VALUE ZEROS.
01 STATS-LINE-COUNT PIC 99 VALUE ZEROS.
01 STORE-SUBMIT-INITIALS PIC X(3) VALUE SPACES.
01 STORE-SUBMIT-DATE PIC 9(6) VALUE ZEROS.
01 STORE-REVIEW-DATE PIC 9(6) VALUE ZEROS.
01 STORE-JSUBMIT-MIN PIC 9(5) VALUE ZEROS.
01 STORE-NJSUBMIT-MIN PIC 9(5) VALUE ZEROS.
01 STORE-REVIEW-MIN PIC 9(5) VALUE ZEROS.
01 STORE-TROUBLE-MIN PIC 9(4) VALUE ZEROS.
01 STORE-TOTAL-MIN PIC 9(6) VALUE ZEROS.
01 STORE-MF-INITIALS PIC X(3) VALUE SPACES.
01 STORE-MF-MONTH PIC 99 VALUE ZEROS.
01 TEMP-CREDIT-DATE PIC 9(6) VALUE ZEROS.
01 TEMP-JULIAN PIC 9(3) VALUE ZEROS.
01 TEMP-REVIEW-TOTAL PIC 9(6) VALUE ZEROS.
01 REV-REM PIC 9(4) VALUE ZEROS.
01 GREG-DAY PIC 9(3) VALUE ZEROS.
01 CALC-DAY PIC 9(3) VALUE ZEROS.
01 LEAP-YEAR PIC 9(2) VALUE ZEROS.
01 DUMMY-YEAR PIC 9(2) VALUE ZEROS.
01 MONTH-POINTER PIC 9(2) VALUE ZEROS.
01 PREV-MONTH PIC 9(2) VALUE ZEROS.
01 ONE PIC S9(5) VALUE +1 COMP SYNC.
01 S90102RV PIC X(8) VALUE 'S90102RV'.
01 S90102JN PIC X(8) VALUE 'S90102JN'.
01 JES-NUM PIC X(5) VALUE SPACES.
01 DDNAME PIC X(8) VALUE 'INFICHE '.
01 SAR-GEN-X PIC X(4) VALUE SPACES.
01 TEST-MF-TOTALS PIC 9(5) VALUE ZEROS.
01 STORE-SAR-GDG PIC 9(4) VALUE ZEROS.
01 OLD-SAR-GDG PIC 9(4) VALUE ZEROS.
01 SAR-GDG-DIFF PIC S9(4) VALUE ZEROS.
01 SCAN-TALLY PIC 9(2) VALUE ZEROS.
01 SCAN-FIELD PIC X(4) VALUE SPACES.
| 01 SUBMIT-TYPE PIC X(11)
| VALUE 'SUBMITTED/J'.
01 BLANK-LINE PIC X(80) VALUE SPACES.
01 IN-FICHE-RCD.
05 FILLER PIC X(11).
05 JCL-SLASH PIC X(2).
05 FILLER PIC X(3).
05 REVIEW-LINE.
10 SUBMIT-LINE PIC X(10).
10 FILLER PIC X(13).
05 FILLER PIC X(2).
05 FLOWLOG-LINE PIC X(15).
05 FILLER PIC X(15).
05 TROUBLE-LINE PIC X(8).
05 FILLER PIC X(127).
01 IN-SAR-RCD REDEFINES IN-FICHE-RCD.
05 FILLER PIC X.
05 SAR-HEADER PIC X(3).
05 SAR-PAGE PIC X(4).
05 FILLER PIC X(8).
05 SAR-JOB-NAME PIC X(8).
05 SAR-JES-NUM PIC X(8).
05 SAR-ARCH-MONTH PIC 9(2).
05 FILLER PIC X.
05 SAR-ARCH-DAY PIC 9(2).
05 FILLER PIC X.
05 SAR-ARCH-YEAR PIC 9(2).
05 SAR-ARCH-HOUR PIC 9(2).
05 FILLER PIC X.
05 SAR-ARCH-MIN PIC 9(2).
05 FILLER PIC X(158).
01 IN-INITIAL-RCD REDEFINES IN-FICHE-RCD.
05 FILLER PIC X(25).
05 IN-SUBMIT-INITIALS PIC X(3).
05 FILLER PIC X(10).
05 IN-JOB-NAME.
10 IN-REVIEW-INITIALS PIC X(3).
10 FILLER PIC X(5).
05 IN-REVIEW-TIME REDEFINES IN-JOB-NAME.
10 IN-REVIEW-TIME-H PIC X(2).
10 FILLER PIC X.
10 IN-REVIEW-TIME-M PIC X(2).
10 FILLER PIC X(3).
05 FILLER PIC X(32).
05 IN-TROUBLE-INITIALS PIC X(3).
05 FILLER PIC X(125).
01 IN-DATE-RCD REDEFINES IN-FICHE-RCD.
05 FILLER PIC X.
05 IN-FICHE-80.
10 FILLER PIC X(15).
10 JOB-DATE PIC X(22).
10 IN-DATE.
20 IN-YEAR PIC 99.
20 IN-JULIAN PIC 9(3).
10 FILLER PIC X(38).
05 FILLER PIC X(125).
| 01 IN-UCC7-RCD REDEFINES IN-FICHE-RCD.
| 05 FILLER PIC X(15).
| 05 IN-UCC7-LINE PIC X(10).
| 05 FILLER PIC X(1).
| 05 IN-UCC7-NUM PIC X(4).
| 05 FILLER PIC X(176).
01 IN-TIME-RCD REDEFINES IN-FICHE-RCD.
05 FILLER PIC X(20).
05 IN-ADC-MSG PIC X(7).
05 FILLER PIC X(9).
05 IN-READ-MSG PIC X(9).
05 IN-READ-DATE-M PIC X(2).
05 FILLER PIC X.
05 IN-READ-DATE-D PIC X(2).
05 FILLER PIC X.
05 IN-READ-DATE-Y PIC X(2).
05 FILLER PIC X(5).
05 IN-READ-H PIC X(2).
05 FILLER PIC X.
05 IN-READ-M PIC X(2).
05 FILLER PIC X(143).
01 IN-CARD.
05 IN-CARD-DATA.
10 IN-SHIFT-CODE PIC X.
10 CRD-FILL1 PIC X.
10 IN-CARD-INITIALS PIC X(3).
10 CRD-FILL2 PIC X.
10 IN-CARD-NAME PIC X(20).
10 FILLER PIC X(43).
10 IN-CARD-NEW-CLERK PIC X(3).
10 FILLER PIC X(7).
05 FILLER PIC X.
01 OUT-CARD.
05 FILLER PIC X VALUE SPACE.
05 OUT-CARD-DATA PIC X(79) VALUE SPACES.
01 OUT-STATS-RCD.
05 FILLER PIC X VALUE SPACE.
05 OUT-STATS-DATE.
10 OUT-STATS-MONTH PIC 99.
10 FILLER PIC X VALUE '/'.
10 OUT-STATS-DAY PIC 99.
10 FILLER PIC X VALUE '/'.
10 OUT-STATS-YEAR PIC 99.
05 FILLER PIC X(4) VALUE SPACES.
05 OUT-STATS-INITIALS PIC X(3).
05 FILLER PIC X(6) VALUE SPACES.
05 OUT-STATS-JSUBMIT-TOTAL PIC ZZZ9.
05 FILLER PIC X(4) VALUE SPACES.
05 OUT-STATS-JSUBMIT-MIN PIC ZZZ9.
05 FILLER PIC X(5) VALUE SPACES.
05 OUT-STATS-NJSUBMIT-TOTAL PIC ZZZ9.
05 FILLER PIC X(3) VALUE SPACES.
05 OUT-STATS-NJSUBMIT-MIN PIC ZZZ9.
05 FILLER PIC X(7) VALUE SPACES.
05 OUT-STATS-REVIEW-TOTAL PIC ZZZ9.
05 FILLER PIC X(3) VALUE SPACES.
05 OUT-STATS-REVIEW-MIN PIC ZZZ9.
05 FILLER PIC X(9) VALUE SPACES.
05 OUT-STATS-TROUBLE-TOTAL PIC Z9.
05 FILLER PIC X(6) VALUE SPACES.
05 OUT-STATS-TROUBLE-MIN PIC ZZ9.
05 FILLER PIC X(7) VALUE SPACES.
05 OUT-STATS-TOTAL-MIN PIC ZZZZ9.
05 FILLER PIC X(33) VALUE SPACES.
01 TEMP-MF-RCD.
05 TEMP-MF-LINE.
10 TEMP-MF-SHIFT-ID PIC X.
10 MF-INITIALS PIC X(3).
10 FILLER PIC X VALUE SPACE.
10 MF-DATE.
20 MF-MONTH PIC 99.
20 MF-DAY PIC 99.
20 MF-YEAR PIC 99.
10 FILLER PIC X VALUE SPACE.
10 MF-JSUBMIT-TOTAL PIC 9(4).
10 FILLER PIC XX VALUE ' '.
10 MF-JSUBMIT-MIN PIC 9(4).
10 FILLER PIC XX VALUE ' '.
10 MF-NJSUBMIT-TOTAL PIC 9(4).
10 FILLER PIC XX VALUE ' '.
10 MF-NJSUBMIT-MIN PIC 9(4).
10 FILLER PIC XX VALUE ' '.
10 MF-REVIEW-TOTAL PIC 9(4).
10 FILLER PIC XX VALUE ' '.
10 MF-REVIEW-MIN PIC 9(4).
10 FILLER PIC XX VALUE ' '.
10 MF-TROUBLE-TOTAL PIC 99.
10 FILLER PIC XX VALUE ' '.
10 MF-TROUBLE-MIN PIC 9(3).
10 FILLER PIC XX VALUE ' '.
10 MF-TOTAL-MIN PIC 9(4).
10 FILLER PIC X(7) VALUE ' 0000 '.
10 FILLER PIC X(4) VALUE SPACES.
10 OUT-MF-SAR-GEN PIC X(8) VALUE SPACES.
01 STORE-MF-RCD.
05 STORE-MF-LINE.
10 STORE-MF-SHIFT-ID PIC X(1).
10 OLD-MF-INITIALS PIC X(3).
10 FILLER PIC X(5).
10 OLD-MF-YEAR PIC 99.
10 FILLER PIC X(61).
10 OLD-SAR-GEN.
20 FILLER PIC X.
20 TEST-SAR-GDG PIC X(4).
20 FILLER PIC X(3).
01 LOG-RCD.
| 05 LOG-SHIFT-ID PIC X VALUE SPACE.
05 LOG-INITIALS PIC X(3) VALUE SPACES.
05 FILLER PIC X VALUE SPACE.
05 LOG-DATE PIC 9(6) VALUE ZEROS.
05 FILLER PIC X VALUE SPACE.
05 LOG-JOB PIC X(8) VALUE SPACES.
05 FILLER PIC X VALUE SPACE.
05 LOG-JES PIC X(8) VALUE SPACES.
05 FILLER PIC X VALUE SPACE.
| 05 LOG-MSG PIC X(11) VALUE SPACES.
| 05 FILLER PIC X VALUE SPACE.
| 05 LOG-UCC7-NUM PIC X(4) VALUE SPACES.
| 05 FILLER PIC X(6) VALUE SPACE.
05 LOG-SCAN PIC X(4) VALUE SPACES.
05 FILLER PIC X VALUE SPACE.
05 LOG-SUBMIT-TIME PIC 9(4) VALUE ZEROS.
05 FILLER PIC X VALUE SPACE.
05 LOG-REVIEW-TIME-H PIC X(2) VALUE SPACES.
05 LOG-REVIEW-TIME-M PIC X(2) VALUE SPACES.
05 FILLER PIC X(10) VALUE SPACES.
05 FILLER PIC X(4) VALUE HIGH-VALUES.
01 SAVE-PARM.
05 TEST-JSUB-SECS PIC X(3).
05 PARM-JSUB-SECS REDEFINES TEST-JSUB-SECS
PIC 9(3).
05 PARM-FILL1 PIC X.
05 TEST-NJSUB-SECS PIC X(3).
05 PARM-NJSUB-SECS REDEFINES TEST-NJSUB-SECS
PIC 9(3).
05 PARM-FILL2 PIC X.
05 TEST-REV-SECS PIC X(3).
05 PARM-REV-SECS REDEFINES TEST-REV-SECS
PIC 9(3).
05 PARM-FILL3 PIC X.
05 TEST-TRB-SECS PIC X(3).
05 PARM-TRB-SECS REDEFINES TEST-TRB-SECS
PIC 9(3).
05 PARM-FILL4 PIC X.
05 PARM-RETRV PIC X.
05 PARM-FILL5 PIC X.
05 PARM-CHECK-TOTALS PIC X.
05 PARM-FILL6 PIC X.
05 PARM-STATS-ALL PIC X.
01 DSN-TABLE.
05 DSN-MAX PIC S9(3) VALUE +5 COMP.
05 DSN-SIZE PIC S9(3) COMP.
05 FILLER OCCURS 5 TIMES.
10 DSN-DSN PIC X(44).
10 DSN-NVOL PIC S9(3) COMP.
10 DSN-SUB PIC S9(3) COMP.
01 VSN-TABLE.
05 VSN-MAX PIC S9(3) VALUE +5 COMP.
05 VSN-SIZE PIC S9(3) COMP.
05 VSN-VSN OCCURS 5 TIMES
PIC X(6).
01 SAR-DSN.
05 FILLER PIC X(24) VALUE SPACES.
05 GDG.
10 FILLER PIC X VALUE 'G'.
10 SAR-GEN PIC 9(4) VALUE ZEROS.
10 FILLER PIC X(3) VALUE 'V00'.
05 FILLER PIC X(12) VALUE SPACES.
01 TEMP-INITIALS.
05 ZERO-INITIAL PIC X VALUE SPACE.
05 FILLER PIC X(2) VALUE SPACES.
01 TEMP-READ-DATE.
05 TEMP-READ-MONTH.
10 TEMP-READ-FILL PIC X.
10 FILLER PIC X.
05 TEMP-READ-D PIC X(2).
05 TEMP-READ-Y PIC X(2).
01 TEMP-READ-DATE-2 REDEFINES TEMP-READ-DATE
PIC 9(6).
01 TEMP-READ-1.
05 TEMP-READ-H PIC X(2).
05 TEMP-READ-M PIC X(2).
01 TEMP-READ-2 REDEFINES TEMP-READ-1
PIC 9(4).
01 READ-TIME-P PIC 9(4) COMP-3.
01 TEMP-TIME.
05 TEMP-HOUR PIC 99.
05 TEMP-MINUTES PIC 99.
05 TEMP-SECONDS PIC 99.
01 TEMP-DATE.
05 TEMP-MONTH PIC 99 VALUE ZEROS.
05 TEMP-DAY PIC 99 VALUE ZEROS.
05 TEMP-YEAR PIC 99 VALUE ZEROS.
01 SYSTEM-DATE.
05 SYSTEM-MONTH PIC 99.
05 FILLER PIC X.
05 SYSTEM-DAY PIC 99.
05 FILLER PIC X.
05 SYSTEM-YEAR PIC 99.
01 MONTH-VALUES.
05 MONTH-1 PIC 99 VALUE 31.
05 MONTH-2 PIC 99 VALUE 28.
05 MONTH-3 PIC 99 VALUE 31.
05 MONTH-4 PIC 99 VALUE 30.
05 MONTH-5 PIC 99 VALUE 31.
05 MONTH-6 PIC 99 VALUE 30.
05 MONTH-7 PIC 99 VALUE 31.
05 MONTH-8 PIC 99 VALUE 31.
05 MONTH-9 PIC 99 VALUE 30.
05 MONTH-10 PIC 99 VALUE 31.
05 MONTH-11 PIC 99 VALUE 30.
05 MONTH-12 PIC 99 VALUE 31.
01 DAYS-IN-MONTH-TABLE REDEFINES MONTH-VALUES.
05 DAYS-IN-MONTH OCCURS 12 TIMES
PIC 99.
01 MONTHS.
05 MONTH-NAME-1 PIC X(9) VALUE 'JANUARY '.
05 MONTH-NAME-2 PIC X(9) VALUE 'FEBRUARY '.
05 MONTH-NAME-3 PIC X(9) VALUE 'MARCH '.
05 MONTH-NAME-4 PIC X(9) VALUE 'APRIL '.
05 MONTH-NAME-5 PIC X(9) VALUE 'MAY '.
05 MONTH-NAME-6 PIC X(9) VALUE 'JUNE '.
05 MONTH-NAME-7 PIC X(9) VALUE 'JULY '.
05 MONTH-NAME-8 PIC X(9) VALUE 'AUGUST '.
05 MONTH-NAME-9 PIC X(9) VALUE 'SEPTEMBER'.
05 MONTH-NAME-10 PIC X(9) VALUE 'OCTOBER '.
05 MONTH-NAME-11 PIC X(9) VALUE 'NOVEMBER '.
05 MONTH-NAME-12 PIC X(9) VALUE 'DECEMBER '.
01 MONTH-LIST REDEFINES MONTHS.
05 MONTH-NAME OCCURS 12 TIMES
PIC X(9).
01 SWITCHES.
05 CARD-EOF-SWITCH PIC X VALUE 'N'.
05 FICHE-EOF-SWITCH PIC X VALUE 'N'.
05 IR-EOF-SWITCH PIC X VALUE 'N'.
05 TABLE-SWITCH PIC X VALUE 'N'.
05 FLOWLOG-SWITCH PIC X VALUE 'N'.
05 CONV-DATE-SWITCH PIC X VALUE 'N'.
05 OLD-MF-EOF-SWITCH PIC X VALUE 'N'.
05 NEW-MF-EOF-SWITCH PIC X VALUE 'N'.
05 FORCE-END-OF-FLOWLOG PIC X VALUE 'N'.
05 NJSUBMIT-IND PIC X VALUE 'N'.
01 CARD-INITIAL-TABLE.
05 CARD-TABLE-CONTENTS OCCURS 50 TIMES.
10 CARD-SHIFT-ID PIC X.
10 CARD-CLERK-INITIALS PIC X(3).
10 CARD-CLERK-NAME PIC X(20).
10 CARD-NEW-CLERK PIC X(3).
01 CREDIT-TABLE.
05 TABLE-CONTENTS OCCURS 120 TIMES.
10 CREDIT-DATE PIC 9(6).
10 CLERK-INITIALS PIC X(3).
10 JSUBMIT-TOTAL PIC 9(3).
10 NJSUBMIT-TOTAL PIC 9(3).
10 REVIEW-TOTAL PIC 9(3).
10 TROUBLE-TOTAL PIC 9(2).
10 SCAN-TOTAL PIC 9(3).
01 MESSAGE-1.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(31)
VALUE 'MICROFICHE RECORDS READ = '.
05 FICHE-COUNT PIC 9(7) VALUE ZEROS.
05 FILLER PIC X(41) VALUE SPACES.
01 MESSAGE-1A.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(32)
VALUE 'JES LOGS PROCESSED = '.
05 JES-LOG-COUNT PIC 9(6) VALUE ZEROS.
05 FILLER PIC X(41) VALUE SPACES.
01 MESSAGE-2.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(32)
VALUE 'JSUBMIT RECORDS PROCESSED = '.
05 JSUBMIT-COUNT PIC 9(6) VALUE ZEROS.
05 FILLER PIC X(41) VALUE SPACES.
01 MESSAGE-2A.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(32)
VALUE 'NON-JSUBMIT RECORDS PROCESSED = '.
05 NJSUBMIT-COUNT PIC 9(6) VALUE ZEROS.
05 FILLER PIC X(41) VALUE SPACES.
01 MESSAGE-3.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(32)
VALUE 'REVIEW RECORDS PROCESSED = '.
05 REVIEW-COUNT PIC 9(6) VALUE ZEROS.
05 FILLER PIC X(41) VALUE SPACES.
01 MESSAGE-4.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(32)
VALUE 'INCIDENT RECORDS PROCESSED = '.
05 TROUBLE-COUNT PIC 9(6) VALUE ZEROS.
05 FILLER PIC X(41) VALUE SPACES.
01 MESSAGE-5.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(32)
VALUE 'SUBMIT DATE RECORDS PROCESSED = '.
05 SUBMIT-DATE-COUNT PIC 9(6) VALUE ZEROS.
05 FILLER PIC X(41) VALUE SPACES.
01 MESSAGE-6.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(32)
VALUE 'REVIEW DATE RECORDS PROCESSED = '.
05 REVIEW-DATE-COUNT PIC 9(6) VALUE ZEROS.
05 FILLER PIC X(41) VALUE SPACES.
01 MESSAGE-6A.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(32)
VALUE 'LOG RECORDS WRITTEN = '.
05 LOG-RCD-COUNT PIC 9(6) VALUE ZEROS.
05 FILLER PIC X(41) VALUE SPACES.
01 MESSAGE-7.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(28)
VALUE 'INPUT SAR MICROFICHE DSN = '.
05 OUT-MSG-DSN PIC X(44) VALUE SPACES.
05 FILLER PIC X(7) VALUE SPACES.
01 MESSAGE-8.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(28)
VALUE 'INPUT SAR MICROFICHE VSN = '.
05 OUT-MSG-VSN PIC X(6) VALUE SPACES.
05 FILLER PIC X(45) VALUE SPACES.
01 MESSAGE-9.
05 FILLER PIC X(16) VALUE SPACES.
05 FILLER PIC X(28)
VALUE 'CONTENTS OF STATISTICS TABLE'.
05 FILLER PIC X(36) VALUE SPACES.
01 MESSAGE-10.
05 FILLER PIC X(40)
VALUE ' DATE CLERK JSUBMIT NON-JSUBMIT RE'.
05 FILLER PIC X(40)
VALUE 'VIEW INCIDENTS SCANS '.
01 MESSAGE-11.
05 FILLER PIC X VALUE SPACE.
05 MSG-DATE PIC 9(6) VALUE ZEROS.
05 FILLER PIC X(3) VALUE SPACES.
05 MSG-INITIALS PIC X(3) VALUE SPACES.
05 FILLER PIC X(5) VALUE SPACES.
05 MSG-JSUBMIT PIC ZZ9 VALUE ZEROS.
05 FILLER PIC X(9) VALUE SPACES.
05 MSG-NJSUBMIT PIC ZZ9 VALUE ZEROS.
05 FILLER PIC X(7) VALUE SPACES.
05 MSG-REVIEW PIC ZZ9 VALUE ZEROS.
05 FILLER PIC X(6) VALUE SPACES.
05 MSG-TROUBLE PIC Z9 VALUE ZEROS.
05 FILLER PIC X(4) VALUE SPACES.
05 MSG-SCAN PIC ZZ9 VALUE ZEROS.
05 FILLER PIC X(22) VALUE SPACES.
01 MESSAGE-12.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(35)
VALUE 'TOTAL NUMBER OF ENTRIES IN TABLE = '.
05 TABLE-ENTRY-COUNT PIC 9(3) VALUE ZEROS.
05 FILLER PIC X(41) VALUE SPACES.
01 MESSAGE-13.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(34)
VALUE 'THE FOLLOWING CONTROL CLERK CARDS '.
05 FILLER PIC X(32)
VALUE 'WERE INPUT INTO PROGRAM S802CTDY'.
05 FILLER PIC X(13) VALUE SPACES.
01 MESSAGE-14.
05 FILLER PIC X(11) VALUE SPACES.
05 FILLER PIC X(22)
VALUE 'MASTER FILE STATISTICS'.
05 FILLER PIC X(47) VALUE SPACES.
01 MESSAGE-15.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(40)
VALUE 'OLD MASTER FILE RECORDS READ = '.
05 OLD-MF-RCDS-READ PIC 9(5) VALUE ZEROS.
05 FILLER PIC X(34) VALUE SPACES.
01 MESSAGE-16.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(40)
VALUE 'OLD MASTER FILE RECORDS DROPPED = '.
05 OLD-MF-RCDS-DROPPED PIC 9(5) VALUE ZEROS.
05 FILLER PIC X(34) VALUE SPACES.
01 MESSAGE-17.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(40)
VALUE 'DUPLICATE MASTER FILE RECORDS DROPPED = '.
05 DUP-MF-RCDS-DROPPED PIC 9(5) VALUE ZEROS.
05 FILLER PIC X(34) VALUE SPACES.
01 MESSAGE-18.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(40)
VALUE 'NEW MASTER FILE RECORDS ADDED = '.
05 NEW-MF-RCDS-ADDED PIC 9(5) VALUE ZEROS.
05 FILLER PIC X(34) VALUE SPACES.
01 MESSAGE-19.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(40)
VALUE 'MASTER FILE RECORDS WRITTEN = '.
05 MF-RCDS-WRITTEN PIC 9(5) VALUE ZEROS.
05 FILLER PIC X(34) VALUE SPACES.
01 MESSAGE-20.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(43)
VALUE 'YEARLY MASTER FILE PROCESSING HAS OCURRED.'.
05 FILLER PIC X(36) VALUE SPACES.
01 MESSAGE-21.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(40)
VALUE 'VERIFY THAT THE CURRENT MONTH AND YEAR I'.
05 FILLER PIC X(10)
VALUE 'S JUNE, 19'.
05 MSG-YEAR PIC 99 VALUE ZEROS.
05 FILLER PIC X(27) VALUE SPACES.
01 MESSAGE-22.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(30)
VALUE '*** THE FOLLOWING MASTER FILE '.
05 FILLER PIC X(30)
VALUE 'RECORD IS A DUPLICATE AND WAS '.
05 FILLER PIC X(11)
VALUE 'DROPPED ***'.
05 FILLER PIC X(8) VALUE SPACES.
01 MESSAGE-23.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(16)
VALUE 'TABLE ENTRY FOR '.
05 OLD-INITIALS PIC X(3) VALUE SPACES.
05 FILLER PIC X(21)
VALUE ' HAS BEEN CHANGED TO '.
05 NEW-INITIALS PIC X(3) VALUE SPACES.
05 FILLER PIC X(36) VALUE SPACES.
01 PARM-ERROR.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(29)
VALUE 'ERROR(S) DETECTED IN PARM - ('.
05 OUT-PARM-DATA PIC X(21) VALUE SPACES.
05 FILLER PIC X VALUE ')'.
05 FILLER PIC X(28) VALUE SPACES.
01 TABLE-ERROR-1.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(42)
VALUE '*** CONTROL CLERK TABLE HAS REACHED ITS LI'.
05 FILLER PIC X(37)
VALUE 'MIT OF 50 *** '.
01 TABLE-ERROR-2.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(42)
VALUE '*** CREDIT TABLE HAS REACHED ITS LIMIT OF '.
05 FILLER PIC X(37)
VALUE '120 *** '.
01 CARD-ERROR.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(40)
VALUE '*** ERROR(S) DETECTED IN THE FOLLOWING C'.
05 FILLER PIC X(21)
VALUE 'ONTROL CLERK CARD ***'.
05 FILLER PIC X(18) VALUE SPACES.
01 CALL-ERROR-1.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(40)
VALUE 'RETURN CODE FROM PROGRAM S90102RV (RETRI'.
05 FILLER PIC X(19)
VALUE 'EVE DSN AND VSN) = '.
05 CALL-RETURN-1 PIC S9(4) VALUE ZEROS.
05 FILLER PIC X(16) VALUE SPACES.
01 CALL-ERROR-2.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(40)
VALUE 'RETURN CODE FROM PROGRAM S90102JN (RETRI'.
05 FILLER PIC X(18)
VALUE 'EVE JES NUMBER) = '.
05 CALL-RETURN-2 PIC S9(4) VALUE ZEROS.
05 FILLER PIC X(17) VALUE SPACES.
01 GEN-ERROR-1.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(40)
VALUE '*** WARNING - POSSIBLE ERROR DETECTED IN'.
05 FILLER PIC X(38)
VALUE ' SAR MICROFICHE GENERATIONS '.
05 FILLER PIC X VALUE SPACES.
01 GEN-ERROR-2.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(47)
VALUE 'SAR MICROFICHE GENERATION INPUT INTO THIS RUN '.
05 FILLER PIC X(6)
VALUE ' = '.
05 FILLER.
10 FILLER PIC X VALUE 'G'.
10 CURR-SAR-GEN-ERR PIC X(4) VALUE SPACES.
10 FILLER PIC X(3) VALUE 'V00'.
05 FILLER PIC X(18) VALUE SPACES.
01 GEN-ERROR-3.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(47)
VALUE 'SAR MICROFICHE GENERATION INPUT INTO PREVIOUS '.
05 FILLER PIC X(6)
VALUE 'RUN = '.
05 FILLER.
10 FILLER PIC X VALUE 'G'.
10 OLD-SAR-GEN-ERR PIC X(4) VALUE SPACES.
10 FILLER PIC X(3) VALUE 'V00'.
05 FILLER PIC X(18) VALUE SPACES.
01 FICHE-TOTAL-ERROR.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(40)
VALUE '*** WARNING - ONE OR MORE TOTALS FOR REC'.
05 FILLER PIC X(38)
VALUE 'ORDS PROCESSED IS ZERO '.
05 FILLER PIC X VALUE SPACES.
01 MF-TOTAL-ERROR.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(40)
VALUE '*** WARNING - MASTER FILE TOTALS ARE OUT'.
05 FILLER PIC X(38)
VALUE 'OF BALANCE '.
05 FILLER PIC X VALUE SPACES.
01 HEADER-1.
05 FILLER PIC X(36) VALUE SPACES.
05 FILLER PIC X(39)
VALUE 'DAILY CONTROL SECTION PRODUCTION REPORT'.
05 FILLER PIC X(58) VALUE SPACES.
01 HEADER-2.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(15)
VALUE 'CONTROL CLERK: '.
05 HDR-CLERK-NAME PIC X(20) VALUE SPACES.
05 FILLER PIC X(48) VALUE SPACES.
05 FILLER PIC X(10)
VALUE 'DATE RUN: '.
05 RUN-DATE.
10 RUN-MONTH PIC 99.
10 FILLER PIC X.
10 RUN-DAY PIC 99.
10 FILLER PIC X.
10 RUN-YEAR PIC 99.
05 FILLER PIC X(25) VALUE SPACES.
01 HEADER-3.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(15)
VALUE 'REPORT MONTH : '.
05 HDR-REPORT-MONTH PIC X(9) VALUE SPACES.
05 FILLER PIC X(59) VALUE SPACES.
05 FILLER PIC X(10)
VALUE 'TIME RUN: '.
05 RUN-TIME.
10 RUN-HOUR PIC 99.
10 FILLER PIC X VALUE ':'.
10 RUN-MINUTES PIC 99.
05 FILLER PIC X(34) VALUE SPACES.
01 HEADER-4.
05 FILLER PIC X VALUE SPACE.
05 FILLER PIC X(15)
VALUE 'SHIFT : '.
05 HDR-SHIFT PIC X(6) VALUE SPACES.
05 FILLER PIC X(62) VALUE SPACES.
05 FILLER PIC X(9)
VALUE 'JES NUM:'.
05 HDR-JES-NUM PIC X(5) VALUE SPACES.
05 FILLER PIC X(36) VALUE SPACES.
01 HEADER-5.
05 FILLER PIC X(84) VALUE SPACES.
05 FILLER PIC X(10)
VALUE 'PAGE : '.
05 HDR-PAGE PIC 9 VALUE ZERO.
05 FILLER PIC X(30) VALUE SPACES.
01 HEADER-6.
05 FILLER PIC X(40)
VALUE ' JOBS SUBMI'.
05 FILLER PIC X(40)
VALUE 'TTED '.
05 FILLER PIC X(53) VALUE SPACES.
01 HEADER-7.
05 FILLER PIC X(40)
VALUE ' REPORT CLERK JSUBMIT '.
05 FILLER PIC X(40)
VALUE 'NON-JSUBMIT JOBS REVIEWED INCID'.
05 FILLER PIC X(40)
VALUE 'ENT REPORTS TOTAL '.
05 FILLER PIC X(13) VALUE SPACES.
01 HEADER-8.
05 FILLER PIC X(40)
VALUE ' DATE INITIAL TOTAL MINUTES T'.
05 FILLER PIC X(40)
VALUE 'OTAL MINUTES TOTAL MINUTES TOTAL'.
05 FILLER PIC X(40)
VALUE ' MINUTES MINUTES '.
05 FILLER PIC X(13) VALUE SPACES.
01 HEADER-9.
05 FILLER PIC X(40)
VALUE ' ________ _______ _____ _______ _'.
05 FILLER PIC X(40)
VALUE '____ _______ _____ _______ _____'.
05 FILLER PIC X(40)
VALUE ' _______ _______ '.
05 FILLER PIC X(13) VALUE SPACES.
01 END-WS PIC X(27)
VALUE '*** END WORKING STORAGE ***'.
LINKAGE SECTION.
01 IN-PARM.
05 PARM-LEN PIC S9(4) COMP.
05 PARM-DATA PIC X(21).
*
PROCEDURE DIVISION USING IN-PARM.
*
*****************************************************************
*****************************************************************
*** ***
*** MAIN-ROUTINE : THIS ROUTINE CONTROLS THE FLOW OF THE ***
*** PROGRAM. ***
*** ***
*****************************************************************
*****************************************************************
MAIN-ROUTINE.
OPEN OUTPUT MESSAGE-REPORT.
PERFORM VERIFY-PARM.
PERFORM RETRIEVE-DSN-JESNO-DATE-TIME.
OPEN INPUT SAR-FICHE
INPUT IR-FILE
INPUT CARD-FILE
INPUT IN-MAST-FILE
OUTPUT LOG-REPORT
OUTPUT OUT-NEW-FILE
OUTPUT SORTIN-FILE.
PERFORM GET-CARD.
PERFORM BUILD-TABLE
UNTIL CARD-EOF-SWITCH = 'Y'.
PERFORM GET-IR-RCD.
PERFORM PROCESS-FICHE-RCD
UNTIL IR-EOF-SWITCH = 'Y'.
PERFORM GET-FICHE-RCD.
PERFORM PROCESS-FICHE-RCD
UNTIL FICHE-EOF-SWITCH = 'Y'.
PERFORM GET-OLD-MF-RCD.
PERFORM PROCESS-OLD-MF-RCD
UNTIL OLD-MF-EOF-SWITCH = 'Y'.
CLOSE SAR-FICHE
IR-FILE
CARD-FILE
IN-MAST-FILE
LOG-REPORT
OUT-NEW-FILE
SORTIN-FILE.
IF RETURN-CODE > 4
GO TO END-OF-JOB
ELSE
SORT SORT-WORK-FILE
ON ASCENDING KEY SORT-SHIFT-ID, SORT-INITIALS,
SORT-YEAR, SORT-MONTH-DAY, SORT-REST
USING SORTIN-FILE
GIVING SORTOUT-FILE.
IF SORT-RETURN NOT = 0
MOVE SORT-RETURN TO RETURN-CODE
GO TO END-OF-JOB
ELSE
NEXT SENTENCE.
OPEN INPUT SORTOUT-FILE
OUTPUT STATS-REPORT
OUTPUT OUT-MAST-FILE.
PERFORM GET-NEW-MF-RCD.
PERFORM PROCESS-NEW-MF-RCD
UNTIL NEW-MF-EOF-SWITCH = 'Y'.
CLOSE SORTOUT-FILE
OUT-MAST-FILE
STATS-REPORT.
IF PARM-CHECK-TOTALS = 'Y'
PERFORM CHECK-TOTALS
ELSE
NEXT SENTENCE.
END-OF-JOB.
CLOSE MESSAGE-REPORT.
STOP RUN.
*****************************************************************
*****************************************************************
*** ***
*** GET-FICHE-RCD, GET-CARD, GET-OLD-MF-RCD AND ***
*** GET-NEW-MF-RCD : THESE ROUTINES ARE USED TO READ THE ***
*** FILES INPUT INTO THIS PROGRAM. ***
*** ***
*****************************************************************
*****************************************************************
GET-IR-RCD.
READ IR-FILE INTO IN-FICHE-RCD
AT END MOVE 'Y' TO IR-EOF-SWITCH.
GET-FICHE-RCD.
READ SAR-FICHE INTO IN-FICHE-RCD
AT END MOVE 'Y' TO FICHE-EOF-SWITCH.
GET-CARD.
READ CARD-FILE INTO IN-CARD
AT END MOVE 'Y' TO CARD-EOF-SWITCH.
GET-OLD-MF-RCD.
READ IN-MAST-FILE INTO STORE-MF-RCD
AT END MOVE 'Y' TO OLD-MF-EOF-SWITCH.
GET-NEW-MF-RCD.
READ SORTOUT-FILE INTO TEMP-MF-RCD
AT END MOVE 'Y' TO NEW-MF-EOF-SWITCH.
*****************************************************************
*****************************************************************
*** ***
*** VERIFY-PARM : THIS ROUTINE CHECKS THE PARM DATA PASSED ***
*** FROM THE JCL. IT VERIFIES THAT THE DATA IS IN THE ***
*** CORRECT FORMAT AND THE FIELDS CONTAIN VALID VALUES. ***
*** THIS ROUTINE IS ACCESSED BY MAIN-ROUTINE. ***
*** ***
*****************************************************************
*****************************************************************
VERIFY-PARM.
MOVE PARM-DATA TO SAVE-PARM, OUT-PARM-DATA.
IF TEST-JSUB-SECS NOT NUMERIC OR
TEST-NJSUB-SECS NOT NUMERIC OR
TEST-REV-SECS NOT NUMERIC OR
TEST-TRB-SECS NOT NUMERIC OR
PARM-JSUB-SECS = 0 OR
PARM-NJSUB-SECS = 0 OR
PARM-FILL1 NOT = ',' OR
PARM-FILL2 NOT = ',' OR
PARM-FILL3 NOT = ',' OR
PARM-FILL4 NOT = ',' OR
PARM-FILL5 NOT = ',' OR
PARM-FILL6 NOT = ',' OR
PARM-RETRV NOT = 'Y' AND
PARM-RETRV NOT = 'N' OR
PARM-CHECK-TOTALS NOT = 'Y' AND
PARM-CHECK-TOTALS NOT = 'N' OR
PARM-STATS-ALL NOT = 'Y' AND
PARM-STATS-ALL NOT = 'N'
WRITE OUT-MSG-LINE FROM PARM-ERROR
AFTER ADVANCING TOP-OF-PAGE
MOVE 8 TO RETURN-CODE
GO TO END-OF-JOB
ELSE
NEXT SENTENCE.
*****************************************************************
*****************************************************************
*** ***
*** RETRIEVE-DSN-JESNO-DATE-TIME : THIS ROUTINE ***
*** RETRIEVES THE CURRENT DATE AND TIME FROM THE SYSTEM, ***
*** THE JES NUMBER OF THE JOB EXECUTING THIS PROGRAM AND ***
*** THE DATA SET NAME AND VOLUME SERIAL NUMBER OF THE SAR ***
*** MICROFICHE FILE INPUT INTO THIS PROGRAM. THIS ROUTINE ***
*** IS ACCESSED BY MAIN-ROUTINE. ***
*** ***
*****************************************************************
*****************************************************************
RETRIEVE-DSN-JESNO-DATE-TIME.
MOVE CURRENT-DATE TO RUN-DATE, SYSTEM-DATE.
MOVE SYSTEM-YEAR TO MSG-YEAR.
MOVE TIME-OF-DAY TO TEMP-TIME.
MOVE TEMP-HOUR TO RUN-HOUR.
MOVE TEMP-MINUTES TO RUN-MINUTES.
SUBTRACT 1 FROM SYSTEM-MONTH GIVING PREV-MONTH.
IF SYSTEM-MONTH = 1
MOVE 12 TO PREV-MONTH
ELSE
NEXT SENTENCE.
CALL 'S9010260' USING ONE, S90102JN, JES-NUM.
IF RETURN-CODE = 0
MOVE JES-NUM TO HDR-JES-NUM
ELSE
MOVE RETURN-CODE TO CALL-RETURN-2
WRITE OUT-MSG-LINE FROM CALL-ERROR-2
AFTER ADVANCING 2 LINES
MOVE 0 TO RETURN-CODE.
IF PARM-RETRV = 'Y'
CALL 'S9010260' USING ONE, S90102RV, DDNAME, DSN-TABLE,
VSN-TABLE
MOVE DSN-DSN (1) TO SAR-DSN, OUT-MSG-DSN
MOVE GDG TO OUT-MF-SAR-GEN
MOVE VSN-VSN (1) TO OUT-MSG-VSN
IF RETURN-CODE NOT = 0
MOVE RETURN-CODE TO CALL-RETURN-1
WRITE OUT-MSG-LINE FROM CALL-ERROR-1
AFTER ADVANCING 2 LINES
GO TO END-OF-JOB
ELSE
NEXT SENTENCE.
MOVE SAR-GEN TO SAR-GEN-X.
IF SAR-GEN-X NOT NUMERIC
MOVE ZEROS TO SAR-GEN
ELSE
NEXT SENTENCE.
*****************************************************************
*****************************************************************
*** ***
*** BUILD-TABLE : THIS ROUTINE READS A CARD MEMBER THAT ***
*** CONTAINS A CARD FOR EVERY CONTROL CLERK IN THE DPC. ***
*** EACH CARD CONTAINS THE CONTROL CLERK'S INITIALS, NAME, ***
*** AND THE SHIFT THEY WORK ON. A TABLE IS THEN CREATED ***
*** WITH AN ENTRY FOR EACH OF THESE CARDS. THIS ROUTINE ***
*** IS ACCESSED BY MAIN-ROUTINE. ***
*** ***
*****************************************************************
*****************************************************************
BUILD-TABLE.
ADD 1 TO TABLE-COUNT.
IF TABLE-COUNT = 1
WRITE OUT-MSG-LINE FROM MESSAGE-13
AFTER ADVANCING TOP-OF-PAGE
WRITE OUT-MSG-LINE FROM BLANK-LINE
AFTER ADVANCING 2 LINES
ELSE
IF TABLE-COUNT > 49
WRITE OUT-MSG-LINE FROM TABLE-ERROR-1
AFTER ADVANCING TOP-OF-PAGE
MOVE 'Y' TO FICHE-EOF-SWITCH
MOVE 'Y' TO IR-EOF-SWITCH
MOVE 'Y' TO CARD-EOF-SWITCH
MOVE 'Y' TO OLD-MF-EOF-SWITCH
MOVE 'Y' TO NEW-MF-EOF-SWITCH
MOVE 36 TO RETURN-CODE.
MOVE IN-CARD-DATA TO OUT-CARD-DATA.
IF IN-SHIFT-CODE = '1' AND
CRD-FILL1 = ',' AND
CRD-FILL2 = ',' OR
IN-SHIFT-CODE = '2' AND
CRD-FILL1 = ',' AND
CRD-FILL2 = ',' OR
IN-SHIFT-CODE = '3' AND
CRD-FILL1 = ',' AND
CRD-FILL2 = ','
MOVE IN-SHIFT-CODE TO CARD-SHIFT-ID (TABLE-COUNT)
MOVE IN-CARD-INITIALS TO
CARD-CLERK-INITIALS (TABLE-COUNT)
MOVE IN-CARD-NAME TO CARD-CLERK-NAME (TABLE-COUNT)
MOVE IN-CARD-NEW-CLERK TO
CARD-NEW-CLERK (TABLE-COUNT)
MOVE TABLE-COUNT TO MAX-CARD-COUNT
WRITE OUT-MSG-LINE FROM OUT-CARD
ELSE
WRITE OUT-MSG-LINE FROM CARD-ERROR
AFTER ADVANCING 2 LINES
WRITE OUT-MSG-LINE FROM OUT-CARD
WRITE OUT-MSG-LINE FROM BLANK-LINE
AFTER ADVANCING 2 LINES
MOVE 'Y' TO FICHE-EOF-SWITCH
MOVE 'Y' TO IR-EOF-SWITCH
MOVE 'Y' TO OLD-MF-EOF-SWITCH
MOVE 'Y' TO NEW-MF-EOF-SWITCH
MOVE 12 TO RETURN-CODE.
PERFORM GET-CARD.
*****************************************************************
*****************************************************************
*** ***
*** PROCESS-FICHE-RCD : ***
*** ***
*****************************************************************
*****************************************************************
PROCESS-FICHE-RCD.
ADD 1 TO FICHE-COUNT.
IF SAR-HEADER = 'SAR' AND
SAR-PAGE NOT EQUAL TO 'PAGE' AND
STORE-SUBMIT-INITIALS NOT EQUAL TO ' '
PERFORM END-OF-FLOWLOG
ELSE
NEXT SENTENCE.
IF SAR-HEADER = 'SAR' AND
SAR-PAGE NOT EQUAL TO 'PAGE'
MOVE SAR-JOB-NAME TO LOG-JOB
| MOVE SPACES TO SCAN-FIELD, LOG-UCC7-NUM
MOVE 'N' TO NJSUBMIT-IND
| MOVE 'SUBMITTED/J' TO SUBMIT-TYPE
ADD 1 TO JES-LOG-COUNT
MOVE SAR-JES-NUM TO LOG-JES
MOVE SAR-ARCH-MONTH TO TEMP-MONTH
MOVE SAR-ARCH-DAY TO TEMP-DAY
MOVE SAR-ARCH-YEAR TO TEMP-YEAR
MOVE TEMP-DATE TO STORE-SUBMIT-DATE
ADD 1 TO SUBMIT-DATE-COUNT
MOVE SAR-ARCH-HOUR TO TEMP-READ-H
MOVE SAR-ARCH-MIN TO TEMP-READ-M
MOVE SAR-ARCH-MONTH TO TEMP-MONTH
MOVE SAR-ARCH-DAY TO TEMP-DAY
MOVE SAR-ARCH-YEAR TO TEMP-YEAR
MOVE TEMP-DATE TO STORE-REVIEW-DATE
ADD 1 TO REVIEW-DATE-COUNT
MOVE SAR-ARCH-HOUR TO LOG-REVIEW-TIME-H
MOVE SAR-ARCH-MIN TO LOG-REVIEW-TIME-M
IF TROUBLE-LINE = 'CLERK: O' OR
TROUBLE-LINE = 'CLERK: 0' OR
TROUBLE-LINE = 'CLERK: C'
MOVE ZEROS TO TABLE-COUNT
MOVE 'N' TO TABLE-SWITCH
MOVE STORE-REVIEW-DATE TO TEMP-CREDIT-DATE, LOG-DATE
MOVE IN-TROUBLE-INITIALS TO TEMP-INITIALS, LOG-INITIALS
PERFORM UPDATE-TABLE
UNTIL TABLE-SWITCH = 'Y'
ADD 1 TO TROUBLE-TOTAL (TABLE-COUNT)
ADD 1 TO TROUBLE-COUNT
| MOVE 'IR OPENED ' TO LOG-MSG
MOVE 9999 TO LOG-SUBMIT-TIME
| MOVE '9' TO LOG-SHIFT-ID
| PERFORM ASSIGN-SHIFT-ID-LOG-RCD VARYING CARD-COUNT
| FROM 1 BY 1 UNTIL CARD-COUNT > MAX-CARD-COUNT
WRITE OUT-LOG-LINE FROM LOG-RCD
WRITE OUT-NEW-LINE FROM LOG-RCD
ADD 1 TO LOG-RCD-COUNT
ELSE
NEXT SENTENCE.
IF REVIEW-LINE = 'REVIEW CLERK ===> O' OR
REVIEW-LINE = 'REVIEW CLERK ===> 0' OR
REVIEW-LINE = 'REVIEW CLERK ===> C'
MOVE ZEROS TO TABLE-COUNT
MOVE 'N' TO TABLE-SWITCH
MOVE STORE-REVIEW-DATE TO TEMP-CREDIT-DATE, LOG-DATE
MOVE IN-REVIEW-INITIALS TO TEMP-INITIALS, LOG-INITIALS
PERFORM UPDATE-TABLE
UNTIL TABLE-SWITCH = 'Y'
ADD 1 TO REVIEW-TOTAL (TABLE-COUNT)
ADD 1 TO REVIEW-COUNT
| MOVE 'REVIEWED ' TO LOG-MSG
MOVE 9999 TO LOG-SUBMIT-TIME
WRITE OUT-LOG-LINE FROM LOG-RCD
WRITE OUT-NEW-LINE FROM LOG-RCD
ADD 1 TO LOG-RCD-COUNT
ELSE
NEXT SENTENCE.
IF JCL-SLASH = '//' AND SCAN-FIELD = SPACES
MOVE ZEROS TO SCAN-TALLY
INSPECT IN-FICHE-RCD
TALLYING SCAN-TALLY FOR ALL 'TYPRUN=SCAN'
IF SCAN-TALLY > 0
MOVE 'SCAN' TO SCAN-FIELD
ELSE
NEXT SENTENCE.
| IF IN-UCC7-LINE = 'UCC7 JOB#='
| MOVE IN-UCC7-NUM TO LOG-UCC7-NUM
| ELSE
| NEXT SENTENCE.
IF IN-ADC-MSG = 'ADC001I' AND IN-READ-MSG = ' READ '
MOVE IN-READ-H TO TEMP-READ-H
MOVE IN-READ-M TO TEMP-READ-M
MOVE IN-READ-DATE-M TO TEMP-READ-MONTH
MOVE IN-READ-DATE-D TO TEMP-READ-D
MOVE IN-READ-DATE-Y TO TEMP-READ-Y
MOVE TEMP-READ-DATE-2 TO STORE-SUBMIT-DATE
IF TEMP-READ-FILL = ' '
MOVE '0' TO TEMP-READ-FILL
MOVE TEMP-READ-DATE-2 TO STORE-SUBMIT-DATE
ELSE
NEXT SENTENCE.
IF FLOWLOG-LINE = 'OB FLOW********' OR
FLOWLOG-LINE = 'OW-ORIGINAL****'
MOVE 'Y' TO FLOWLOG-SWITCH
ELSE
NEXT SENTENCE.
IF FLOWLOG-SWITCH = 'Y'
PERFORM INSIDE-FLOWLOG
ELSE
NEXT SENTENCE.
MOVE SPACES TO IN-FICHE-RCD.
IF IR-EOF-SWITCH = 'N'
PERFORM GET-IR-RCD
ELSE
PERFORM GET-FICHE-RCD.
IF FICHE-EOF-SWITCH = 'Y'
WRITE OUT-MSG-LINE FROM MESSAGE-1
AFTER ADVANCING TOP-OF-PAGE
WRITE OUT-MSG-LINE FROM MESSAGE-1A
WRITE OUT-MSG-LINE FROM MESSAGE-2
WRITE OUT-MSG-LINE FROM MESSAGE-2A
WRITE OUT-MSG-LINE FROM MESSAGE-3
WRITE OUT-MSG-LINE FROM MESSAGE-4
WRITE OUT-MSG-LINE FROM MESSAGE-5
WRITE OUT-MSG-LINE FROM MESSAGE-6
WRITE OUT-MSG-LINE FROM MESSAGE-6A
WRITE OUT-MSG-LINE FROM MESSAGE-7
AFTER ADVANCING 2 LINES
WRITE OUT-MSG-LINE FROM MESSAGE-8
AFTER ADVANCING 2 LINES
WRITE OUT-MSG-LINE FROM MESSAGE-9
AFTER ADVANCING TOP-OF-PAGE
WRITE OUT-MSG-LINE FROM BLANK-LINE
AFTER ADVANCING 2 LINES
WRITE OUT-MSG-LINE FROM MESSAGE-10
MOVE ZEROS TO TABLE-COUNT
PERFORM PRINT-TABLE
UNTIL TABLE-COUNT = MAX-TABLE-COUNT
MOVE MAX-TABLE-COUNT TO TABLE-ENTRY-COUNT
WRITE OUT-MSG-LINE FROM MESSAGE-12
AFTER ADVANCING 2 LINES
MOVE ZEROS TO TABLE-COUNT
PERFORM CONVERT-ZERO-INITIALS
UNTIL TABLE-COUNT = MAX-TABLE-COUNT
PERFORM SEARCH-TABLE VARYING CARD-COUNT
FROM 1 BY 1 UNTIL CARD-COUNT > MAX-CARD-COUNT
ELSE
NEXT SENTENCE.
INSIDE-FLOWLOG.
IF SUBMIT-LINE = 'INITIALS O' OR
SUBMIT-LINE = 'INITIALS 0' OR
SUBMIT-LINE = 'INITIALS C'
MOVE IN-SUBMIT-INITIALS TO STORE-SUBMIT-INITIALS
ELSE
NEXT SENTENCE.
IF SUBMIT-LINE = 'USE "F XX '
MOVE 'Y' TO NJSUBMIT-IND
| MOVE 'SUBMITTED/N' TO SUBMIT-TYPE
ELSE
NEXT SENTENCE.
IF FLOWLOG-LINE = 'ND JOB FLOW****' OR
FORCE-END-OF-FLOWLOG = 'Y'
PERFORM END-OF-FLOWLOG
ELSE
NEXT SENTENCE.
END-OF-FLOWLOG.
IF STORE-SUBMIT-INITIALS NOT EQUAL TO ' '
MOVE ZEROS TO TABLE-COUNT
MOVE 'N' TO TABLE-SWITCH
MOVE STORE-SUBMIT-DATE TO TEMP-CREDIT-DATE, LOG-DATE
MOVE STORE-SUBMIT-INITIALS TO TEMP-INITIALS,
LOG-INITIALS
PERFORM UPDATE-TABLE
UNTIL TABLE-SWITCH = 'Y'
MOVE SUBMIT-TYPE TO LOG-MSG
MOVE SCAN-FIELD TO LOG-SCAN
PERFORM SCAN-ROUTINE
MOVE TEMP-READ-2 TO READ-TIME-P
MOVE READ-TIME-P TO LOG-SUBMIT-TIME
MOVE '99' TO LOG-REVIEW-TIME-H, LOG-REVIEW-TIME-M
| MOVE '9' TO LOG-SHIFT-ID
| PERFORM ASSIGN-SHIFT-ID-LOG-RCD VARYING CARD-COUNT
| FROM 1 BY 1 UNTIL CARD-COUNT > MAX-CARD-COUNT
WRITE OUT-LOG-LINE FROM LOG-RCD
WRITE OUT-NEW-LINE FROM LOG-RCD
ADD 1 TO LOG-RCD-COUNT
MOVE SPACES TO SCAN-FIELD, LOG-SCAN
IF NJSUBMIT-IND = 'Y'
ADD 1 TO NJSUBMIT-TOTAL (TABLE-COUNT)
ADD 1 TO NJSUBMIT-COUNT
ELSE
ADD 1 TO JSUBMIT-TOTAL (TABLE-COUNT)
ADD 1 TO JSUBMIT-COUNT
ELSE
NEXT SENTENCE.
MOVE SPACES TO STORE-SUBMIT-INITIALS.
MOVE 'N' TO FLOWLOG-SWITCH, FORCE-END-OF-FLOWLOG.
SCAN-ROUTINE.
IF LOG-SCAN = 'SCAN'
ADD 1 TO SCAN-TOTAL (TABLE-COUNT)
ELSE
NEXT SENTENCE.
| ASSIGN-SHIFT-ID-LOG-RCD.
| IF CARD-CLERK-INITIALS (CARD-COUNT) = LOG-INITIALS
| MOVE CARD-SHIFT-ID (CARD-COUNT) TO LOG-SHIFT-ID
| ELSE
| NEXT SENTENCE.
UPDATE-TABLE.
ADD 1 TO TABLE-COUNT.
IF MAX-TABLE-COUNT < TABLE-COUNT
MOVE TABLE-COUNT TO MAX-TABLE-COUNT
MOVE TEMP-INITIALS TO CLERK-INITIALS (TABLE-COUNT)
MOVE TEMP-CREDIT-DATE TO CREDIT-DATE (TABLE-COUNT)
MOVE ZEROS TO JSUBMIT-TOTAL (TABLE-COUNT)
MOVE ZEROS TO NJSUBMIT-TOTAL (TABLE-COUNT)
MOVE ZEROS TO REVIEW-TOTAL (TABLE-COUNT)
MOVE ZEROS TO TROUBLE-TOTAL (TABLE-COUNT)
MOVE ZEROS TO SCAN-TOTAL (TABLE-COUNT)
MOVE 'Y' TO TABLE-SWITCH
ELSE
NEXT SENTENCE.
IF TEMP-INITIALS = CLERK-INITIALS (TABLE-COUNT) AND
TEMP-CREDIT-DATE = CREDIT-DATE (TABLE-COUNT)
MOVE 'Y' TO TABLE-SWITCH
ELSE
NEXT SENTENCE.
IF MAX-TABLE-COUNT > 118
WRITE OUT-MSG-LINE FROM TABLE-ERROR-2
AFTER ADVANCING TOP-OF-PAGE
MOVE 'Y' TO FICHE-EOF-SWITCH
MOVE 'Y' TO CARD-EOF-SWITCH
MOVE 'Y' TO OLD-MF-EOF-SWITCH
MOVE 'Y' TO NEW-MF-EOF-SWITCH
MOVE 28 TO RETURN-CODE
ELSE
NEXT SENTENCE.
PRINT-TABLE.
ADD 1 TO TABLE-COUNT.
MOVE CREDIT-DATE (TABLE-COUNT) TO MSG-DATE.
MOVE CLERK-INITIALS (TABLE-COUNT) TO MSG-INITIALS.
MOVE JSUBMIT-TOTAL (TABLE-COUNT) TO MSG-JSUBMIT.
MOVE NJSUBMIT-TOTAL (TABLE-COUNT) TO MSG-NJSUBMIT.
MOVE REVIEW-TOTAL (TABLE-COUNT) TO MSG-REVIEW.
MOVE TROUBLE-TOTAL (TABLE-COUNT) TO MSG-TROUBLE.
MOVE SCAN-TOTAL (TABLE-COUNT) TO MSG-SCAN.
WRITE OUT-MSG-LINE FROM MESSAGE-11.
CONVERT-ZERO-INITIALS.
ADD 1 TO TABLE-COUNT.
MOVE CLERK-INITIALS (TABLE-COUNT) TO TEMP-INITIALS.
IF ZERO-INITIAL = '0'
MOVE TEMP-INITIALS TO OLD-INITIALS
MOVE 'O' TO ZERO-INITIAL
MOVE TEMP-INITIALS TO NEW-INITIALS,
CLERK-INITIALS (TABLE-COUNT)
WRITE OUT-MSG-LINE FROM MESSAGE-23
AFTER ADVANCING 2 LINES
ELSE
NEXT SENTENCE.
SEARCH-TABLE.
PERFORM MATCH-RECORDS VARYING TABLE-COUNT
FROM 1 BY 1 UNTIL TABLE-COUNT > MAX-TABLE-COUNT.
MATCH-RECORDS.
IF CARD-CLERK-INITIALS (CARD-COUNT) =
CLERK-INITIALS (TABLE-COUNT)
PERFORM CALCULATE-TOTALS
MOVE CREDIT-DATE (TABLE-COUNT) TO MF-DATE
MOVE CLERK-INITIALS (TABLE-COUNT) TO MF-INITIALS
MOVE CARD-SHIFT-ID (CARD-COUNT) TO TEMP-MF-SHIFT-ID
WRITE SORTIN-LINE FROM TEMP-MF-RCD
WRITE OUT-LOG-LINE FROM TEMP-MF-RCD
ADD 1 TO LOG-RCD-COUNT
ADD 1 TO NEW-MF-RCDS-ADDED
ELSE
NEXT SENTENCE.
CALCULATE-TOTALS.
IF SCAN-TOTAL (TABLE-COUNT) < NJSUBMIT-TOTAL (TABLE-COUNT)
OR SCAN-TOTAL (TABLE-COUNT) = NJSUBMIT-TOTAL (TABLE-COUNT)
SUBTRACT SCAN-TOTAL (TABLE-COUNT) FROM
NJSUBMIT-TOTAL (TABLE-COUNT)
ELSE
NEXT SENTENCE.
IF SCAN-TOTAL (TABLE-COUNT) < REVIEW-TOTAL (TABLE-COUNT) OR
SCAN-TOTAL (TABLE-COUNT) = REVIEW-TOTAL (TABLE-COUNT)
SUBTRACT SCAN-TOTAL (TABLE-COUNT) FROM
REVIEW-TOTAL (TABLE-COUNT)
ELSE
NEXT SENTENCE.
MOVE JSUBMIT-TOTAL (TABLE-COUNT) TO MF-JSUBMIT-TOTAL.
MOVE NJSUBMIT-TOTAL (TABLE-COUNT) TO MF-NJSUBMIT-TOTAL.
MOVE REVIEW-TOTAL (TABLE-COUNT) TO MF-REVIEW-TOTAL.
MOVE TROUBLE-TOTAL (TABLE-COUNT) TO MF-TROUBLE-TOTAL.
COMPUTE STORE-JSUBMIT-MIN = (PARM-JSUB-SECS * JSUBMIT-TOTAL
(TABLE-COUNT)) / 60.
COMPUTE STORE-NJSUBMIT-MIN = (PARM-NJSUB-SECS *
NJSUBMIT-TOTAL (TABLE-COUNT)) / 60.
MULTIPLY PARM-REV-SECS BY REVIEW-TOTAL (TABLE-COUNT)
GIVING TEMP-REVIEW-TOTAL.
DIVIDE TEMP-REVIEW-TOTAL BY 60
GIVING STORE-REVIEW-MIN
REMAINDER REV-REM.
IF REV-REM NOT = 0
ADD 1 TO STORE-REVIEW-MIN
ELSE
NEXT SENTENCE.
COMPUTE STORE-TROUBLE-MIN = (PARM-TRB-SECS * TROUBLE-TOTAL
(TABLE-COUNT)) / 60.
COMPUTE STORE-TOTAL-MIN = STORE-JSUBMIT-MIN +
STORE-NJSUBMIT-MIN + STORE-REVIEW-MIN + STORE-TROUBLE-MIN.
MOVE STORE-JSUBMIT-MIN TO MF-JSUBMIT-MIN.
MOVE STORE-NJSUBMIT-MIN TO MF-NJSUBMIT-MIN.
MOVE STORE-REVIEW-MIN TO MF-REVIEW-MIN.
MOVE STORE-TROUBLE-MIN TO MF-TROUBLE-MIN.
MOVE STORE-TOTAL-MIN TO MF-TOTAL-MIN.
*****************************************************************
*****************************************************************
*** ***
*** PROCESS-OLD-MF-RCD : ***
*** ***
*****************************************************************
*****************************************************************
PROCESS-OLD-MF-RCD.
ADD 1 TO OLD-MF-RCDS-READ.
IF TEST-SAR-GDG NUMERIC
MOVE TEST-SAR-GDG TO OLD-SAR-GDG
IF OLD-SAR-GDG > STORE-SAR-GDG
MOVE OLD-SAR-GDG TO STORE-SAR-GDG
ELSE
NEXT SENTENCE.
IF SYSTEM-MONTH NOT = 6 OR
SYSTEM-MONTH = 6 AND OLD-MF-YEAR = SYSTEM-YEAR
MOVE '9' TO STORE-MF-SHIFT-ID
PERFORM ASSIGN-SHIFT-ID VARYING CARD-COUNT
FROM 1 BY 1 UNTIL CARD-COUNT > MAX-CARD-COUNT
WRITE SORTIN-LINE FROM STORE-MF-RCD
ELSE
ADD 1 TO OLD-MF-RCDS-DROPPED
IF OLD-MF-RCDS-DROPPED = 1
* MOVE 4 TO RETURN-CODE
WRITE OUT-MSG-LINE FROM MESSAGE-20
AFTER ADVANCING TOP-OF-PAGE
WRITE OUT-MSG-LINE FROM MESSAGE-21
AFTER ADVANCING 2 LINES.
PERFORM GET-OLD-MF-RCD.
IF OLD-MF-EOF-SWITCH = 'Y'
MOVE SPACES TO STORE-MF-RCD, TEMP-MF-RCD
IF PARM-RETRV = 'Y'
SUBTRACT STORE-SAR-GDG FROM SAR-GEN
GIVING SAR-GDG-DIFF
IF SAR-GDG-DIFF NOT = +1
MOVE 4 TO RETURN-CODE
MOVE SAR-GEN TO CURR-SAR-GEN-ERR
MOVE STORE-SAR-GDG TO OLD-SAR-GEN-ERR
WRITE OUT-MSG-LINE FROM GEN-ERROR-1
AFTER ADVANCING TOP-OF-PAGE
WRITE OUT-MSG-LINE FROM GEN-ERROR-2
AFTER ADVANCING 2 LINES
WRITE OUT-MSG-LINE FROM GEN-ERROR-3
AFTER ADVANCING 2 LINES
ELSE
NEXT SENTENCE.
ASSIGN-SHIFT-ID.
IF CARD-CLERK-INITIALS (CARD-COUNT) = OLD-MF-INITIALS
MOVE CARD-SHIFT-ID (CARD-COUNT) TO STORE-MF-SHIFT-ID
ELSE
NEXT SENTENCE.
*****************************************************************
*****************************************************************
*** ***
*** PROCESS-NEW-MF-RCD : ***
*** ***
*****************************************************************
*****************************************************************
PROCESS-NEW-MF-RCD.
IF TEMP-MF-LINE = STORE-MF-LINE
ADD 1 TO DUP-MF-RCDS-DROPPED
MOVE 4 TO RETURN-CODE
IF DUP-MF-RCDS-DROPPED = 1
WRITE OUT-MSG-LINE FROM MESSAGE-22
AFTER ADVANCING TOP-OF-PAGE
WRITE OUT-MSG-LINE FROM TEMP-MF-RCD
AFTER ADVANCING 2 LINES
ELSE
WRITE OUT-MSG-LINE FROM MESSAGE-22
AFTER ADVANCING 2 LINES
WRITE OUT-MSG-LINE FROM TEMP-MF-RCD
AFTER ADVANCING 2 LINES
ELSE
WRITE OUT-MAST-LINE FROM TEMP-MF-RCD
ADD 1 TO MF-RCDS-WRITTEN
IF MF-MONTH = SYSTEM-MONTH AND
MF-YEAR = SYSTEM-YEAR OR
MF-MONTH = PREV-MONTH AND
SYSTEM-DAY < 8 AND
MF-YEAR = SYSTEM-YEAR OR
MF-MONTH = PREV-MONTH AND
SYSTEM-DAY < 8 AND
MF-MONTH = 12 OR
PARM-STATS-ALL = 'Y'
MOVE MF-MONTH TO OUT-STATS-MONTH
MOVE MF-DAY TO OUT-STATS-DAY
MOVE MF-YEAR TO OUT-STATS-YEAR
MOVE MF-INITIALS TO OUT-STATS-INITIALS
MOVE MF-JSUBMIT-TOTAL TO OUT-STATS-JSUBMIT-TOTAL
MOVE MF-JSUBMIT-MIN TO OUT-STATS-JSUBMIT-MIN
MOVE MF-NJSUBMIT-TOTAL TO OUT-STATS-NJSUBMIT-TOTAL
MOVE MF-NJSUBMIT-MIN TO OUT-STATS-NJSUBMIT-MIN
MOVE MF-REVIEW-TOTAL TO OUT-STATS-REVIEW-TOTAL
MOVE MF-REVIEW-MIN TO OUT-STATS-REVIEW-MIN
MOVE MF-TROUBLE-TOTAL TO OUT-STATS-TROUBLE-TOTAL
MOVE MF-TROUBLE-MIN TO OUT-STATS-TROUBLE-MIN
MOVE MF-TOTAL-MIN TO OUT-STATS-TOTAL-MIN
IF MF-INITIALS NOT = STORE-MF-INITIALS OR
MF-MONTH NOT = STORE-MF-MONTH
MOVE ZERO TO HDR-PAGE
PERFORM SETUP-HEADER
MOVE MF-INITIALS TO STORE-MF-INITIALS
MOVE MF-MONTH TO STORE-MF-MONTH
WRITE OUT-STATS-LINE FROM OUT-STATS-RCD
AFTER ADVANCING 2 LINES
ADD 1 TO STATS-LINE-COUNT
ELSE
PERFORM CHECK-LINE-COUNT
WRITE OUT-STATS-LINE FROM OUT-STATS-RCD
AFTER ADVANCING 2 LINES
ADD 1 TO STATS-LINE-COUNT.
MOVE TEMP-MF-RCD TO STORE-MF-RCD.
PERFORM GET-NEW-MF-RCD.
IF NEW-MF-EOF-SWITCH = 'Y'
WRITE OUT-MSG-LINE FROM MESSAGE-14
AFTER ADVANCING TOP-OF-PAGE
WRITE OUT-MSG-LINE FROM MESSAGE-15
AFTER ADVANCING 2 LINES
WRITE OUT-MSG-LINE FROM MESSAGE-16
WRITE OUT-MSG-LINE FROM MESSAGE-17
WRITE OUT-MSG-LINE FROM MESSAGE-18
WRITE OUT-MSG-LINE FROM MESSAGE-19
COMPUTE TEST-MF-TOTALS = ((OLD-MF-RCDS-READ -
OLD-MF-RCDS-DROPPED) - DUP-MF-RCDS-DROPPED) +
NEW-MF-RCDS-ADDED
IF TEST-MF-TOTALS NOT = MF-RCDS-WRITTEN
MOVE 32 TO RETURN-CODE
WRITE OUT-MSG-LINE FROM MF-TOTAL-ERROR
AFTER ADVANCING TOP-OF-PAGE
ELSE
NEXT SENTENCE.
*****************************************************************
*****************************************************************
*** ***
*** SETUP-HEADER, GET-HDR-INITIALS AND CHECK-LINE-COUNT : ***
*** THESE ROUTINES SETUP THE HEADER FOR THE STATISTICS ***
*** REPORT. THESE ROUTINES ARE ACCESSED BY ***
*** PROCESS-NEW-MF-RCD. ***
*** ***
*****************************************************************
*****************************************************************
SETUP-HEADER.
ADD 1 TO HDR-PAGE.
MOVE ZEROS TO STATS-LINE-COUNT.
MOVE ZEROS TO CARD-COUNT.
MOVE 'N' TO TABLE-SWITCH.
PERFORM GET-HDR-INITIALS
UNTIL CARD-COUNT = MAX-CARD-COUNT OR
TABLE-SWITCH = 'Y'.
MOVE '* NAME NOT ON FILE *' TO HDR-CLERK-NAME.
MOVE SPACES TO HDR-SHIFT.
IF TABLE-SWITCH = 'Y'
MOVE CARD-CLERK-NAME (CARD-COUNT) TO HDR-CLERK-NAME
IF CARD-SHIFT-ID (CARD-COUNT) = '1'
MOVE 'FIRST ' TO HDR-SHIFT
ELSE
IF CARD-SHIFT-ID (CARD-COUNT) = '2'
MOVE 'SECOND' TO HDR-SHIFT
ELSE
IF CARD-SHIFT-ID (CARD-COUNT) = '3'
MOVE 'THIRD ' TO HDR-SHIFT
ELSE
NEXT SENTENCE.
MOVE MONTH-NAME (MF-MONTH) TO HDR-REPORT-MONTH.
WRITE OUT-STATS-LINE FROM HEADER-1
AFTER ADVANCING TOP-OF-PAGE.
WRITE OUT-STATS-LINE FROM HEADER-2
AFTER ADVANCING 2 LINES.
WRITE OUT-STATS-LINE FROM HEADER-3.
WRITE OUT-STATS-LINE FROM HEADER-4.
WRITE OUT-STATS-LINE FROM HEADER-5.
WRITE OUT-STATS-LINE FROM HEADER-6
AFTER ADVANCING 3 LINES.
WRITE OUT-STATS-LINE FROM HEADER-7.
WRITE OUT-STATS-LINE FROM HEADER-8.
WRITE OUT-STATS-LINE FROM HEADER-9
AFTER ADVANCING 0 LINES.
GET-HDR-INITIALS.
ADD 1 TO CARD-COUNT.
IF MF-INITIALS = CARD-CLERK-INITIALS (CARD-COUNT)
MOVE 'Y' TO TABLE-SWITCH
ELSE
NEXT SENTENCE.
CHECK-LINE-COUNT.
IF STATS-LINE-COUNT > 23
PERFORM SETUP-HEADER
ELSE
NEXT SENTENCE.
*****************************************************************
*****************************************************************
*** ***
*** CHECK-TOTALS : ***
*** ***
*****************************************************************
*****************************************************************
CHECK-TOTALS.
IF SUBMIT-DATE-COUNT = ZEROS OR
REVIEW-DATE-COUNT = ZEROS OR
TROUBLE-COUNT = ZEROS OR
REVIEW-COUNT = ZEROS OR
JSUBMIT-COUNT = ZEROS OR
NJSUBMIT-COUNT = ZEROS OR
JES-LOG-COUNT = ZEROS
WRITE OUT-MSG-LINE FROM FICHE-TOTAL-ERROR
AFTER ADVANCING TOP-OF-PAGE
IF RETURN-CODE = 4
MOVE 24 TO RETURN-CODE
ELSE
MOVE 20 TO RETURN-CODE
ELSE
NEXT SENTENCE.