IDENTIFICATION DIVISION.
PROGRAM-ID. COBEX.
AUTHOR. RALPH RALPH.
DATE-WRITTEN. 12/15/94.
*REMARKS. MERGE TWO FILES.
*
* MAINTENANCE LOG
*
* DATE INIT REASON FOR CHANGE
* 12/16/94 RR TRANSACTION FILE COUNT ADDED
* ##/##/## ## ###########################################
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
C01 IS TOP-OF-PAGE.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT PARM-FILE ASSIGN TO UT-S-PARMFILE.
SELECT OLD-FILE ASSIGN TO UT-S-OLDFILE.
SELECT TRN-FILE ASSIGN TO UT-S-TRNFILE.
SELECT OUT-FILE ASSIGN TO UT-S-OUTFILE.
SELECT PRINT-FILE ASSIGN TO UT-S-PRTFL01.
SELECT ERROR-FILE ASSIGN TO UT-S-PRTFL02.
DATA DIVISION.
FILE SECTION.
FD PARM-FILE
RECORDING MODE F
LABEL RECORDS ARE OMITTED
RECORD CONTAINS 80 CHARACTERS.
01 PARM-REC.
03 RPT-DATE PIC X(008). 001-008
03 FILLER PIC X(072). 009-080
FD OLD-FILE
RECORDING MODE F
LABEL RECORDS ARE STANDARD
RECORD CONTAINS 100 CHARACTERS
BLOCK CONTAINS 0 RECORDS.
01 OLD-REC PIC X(100). 001-100
FD TRN-FILE
RECORDING MODE F
LABEL RECORDS ARE STANDARD
RECORD CONTAINS 100 CHARACTERS
BLOCK CONTAINS 0 RECORDS.
01 TRN-REC PIC X(100). 001-100
FD OUT-FILE
RECORDING MODE F
LABEL RECORDS ARE STANDARD
RECORD CONTAINS 100 CHARACTERS
BLOCK CONTAINS 0 RECORDS.
01 OUT-REC PIC X(100). 001-100
FD PRINT-FILE
RECORDING MODE F
LABEL RECORDS ARE OMITTED
RECORD CONTAINS 133 CHARACTERS.
01 PRINT-REC PIC X(133). 001-133
FD ERROR-FILE
RECORDING MODE F
LABEL RECORDS ARE OMITTED
RECORD CONTAINS 133 CHARACTERS.
01 ERR-REC PIC X(133). 001-133
WORKING-STORAGE SECTION.
01 OLD-RECORD. 001-100
++INCLUDE OLDRECRD
01 TRN-RECORD. 001-100
++INCLUDE TRNRECRD
01 OUT-RECORD. 001-100
++INCLUDE OUTRECRD
01 ACCUMULATORS.
03 OLD-CNT PIC 9(005) VALUE ZEROES.
03 TRN-CNT PIC 9(005) VALUE ZEROES. RR1294
03 OUT-CNT PIC 9(005) VALUE ZEROES.
01 DETAIL-LINES.
03 DTL1.
05 FILLER PIC X(001) VALUE SPACES.
05 DTL1-DESC PIC X(030).
05 DTL1-CNT PIC ZZ,ZZ9.
05 FILLER PIC X(096) VALUE SPACES.
03 DTL2.
05 FILLER PIC X(001) VALUE SPACES.
05 FILLER PIC X(020) VALUE
'CONTROL PARAMETER: '.
05 DTL2-PARM PIC X(080).
05 FILLER PIC X(032) VALUE SPACES.
03 ERR1.
05 FILLER PIC X(001) VALUE SPACES.
05 ERR1-MSG PIC X(132).
01 HEADERS.
03 HDR1.
05 FILLER PIC X(001) VALUE SPACES.
05 HDR1-DATE PIC X(008).
07 HDR1-MM PIC X(002).
07 FILLER PIC X(001) VALUE '/'.
07 HDR1-DD PIC X(002).
07 FILLER PIC X(001) VALUE '/'.
07 HDR1-YY PIC X(002).
05 FILLER PIC X(041) VALUE SPACES.
05 FILLER PIC X(034) VALUE
'AUBURN UNIVERSITY STANDARD PROGRAM'.
05 FILLER PIC X(027) VALUE SPACES.
05 FILLER PIC X(014) VALUE
'REPORT DATE: '.
05 HDR1-RPT-DATE PIC X(008).
03 HDR2.
05 FILLER PIC X(001) VALUE SPACES.
05 HDR2-TIME PIC X(008).
07 HDR2-HR PIC X(002).
07 FILLER PIC X(001) VALUE ':'.
07 HDR2-MIN PIC X(002).
07 FILLER PIC X(001) VALUE ':'.
07 HDR2-SEC PIC X(002).
05 FILLER PIC X(050) VALUE SPACES.
05 FILLER PIC X(016) VALUE
'MERGE STATISTICS'.
05 FILLER PIC X(049) VALUE SPACES.
05 FILLER PIC X(009) VALUE
'PGM=COBEX'.
03 ERR-HDR1.
05 FILLER PIC X(062) VALUE SPACES.
05 FILLER PIC X(009) VALUE
'ERROR LOG'.
05 FILLER PIC X(053) VALUE SPACES.
05 FILLER PIC X(009) VALUE
'PGM=MERGE'.
01 WORK-DATE.
03 WORK-YY PIC X(002).
03 WORK-MM PIC X(002).
03 WORK-DD PIC X(002).
01 WORK-TIME.
03 WORK-HR PIC X(002).
03 WORK-MIN PIC X(002).
03 WORK-SEC PIC X(002).
03 FILLER PIC X(002).
PROCEDURE DIVISION.
A010-OPEN-FILES.
OPEN INPUT PARM-FILE
OLD-FILE
TRN-FILE
OUTPUT OUT-FILE
PRINT-FILE
ERROR-FILE.
A020-ERR-HDR.
ACCEPT WORK-DATE FROM DATE.
MOVE WORK-MM TO HDR1-MM.
MOVE WORK-DD TO HDR1-DD.
MOVE WORK-YY TO HDR1-YY.
ACCEPT WORK-TIME FROM TIME.
MOVE WORK-HR TO HDR2-HR.
MOVE WORK-MIN TO HDR2-MIN.
MOVE WORK-SEC TO HDR2-SEC.
WRITE ERR-REC FROM HDR1 AFTER ADVANCING TOP-OF-PAGE.
WRITE ERR-REC FROM ERR-HDR1 AFTER ADVANCING 1 LINES.
A030-READ-PARM-FILE.
READ PARM-FILE AT END
MOVE 'MISSING CONTROL PARAMETER' TO ERR1-MSG
WRITE ERR-REC FROM ERR1 AFTER ADVANCING 2 LINES
GO TO A900-STATS.
MOVE RPT-DATE TO HDR1-RPT-DATE.
PERFORM C010-HEADER.
MOVE PARM-REC TO DTL2-PARM.
WRITE PRINT-REC FROM DTL2 AFTER ADVANCING 2 LINES.
A040-SETUP.
PERFORM B010-READ-OLD.
PERFORM B020-READ-TRN.
A050-MERGE.
IF OLD-KEY = HIGH-VALUES
AND TRN-KEY = HIGH-VALUES
GO TO A900-STATS.
ADD 1 TO OUT-CNT.
IF TRN-KEY < OLD-KEY
MOVE TRN-RECORD TO OUT-RECORD
WRITE OUT-REC FROM OUT-RECORD
PERFORM B020-READ-TRN
GO TO A050-MERGE.
MOVE OLD-RECORD TO OUT-RECORD.
WRITE OUT-REC FROM OUT-RECORD.
PERFORM B010-READ-OLD.
GO TO A050-MERGE.
A900-STATS.
PERFORM C010-HEADER THRU C030-EXIT.
A998-CLOSE-FILES.
CLOSE PARM-FILE
OLD-FILE
TRN-FILE
OUT-FILE
PRINT-FILE
ERROR-FILE.
A999-STOP-RUN.
STOP RUN.
B010-READ-OLD.
READ OLD-FILE AT END
MOVE HIGH-VALUES TO OLD-KEY.
IF OLD-KEY NOT = HIGH-VALUES
ADD 1 TO OLD-CNT
MOVE OLD-REC TO OLD-RECORD.
B020-READ-TRN.
READ TRN-FILE AT END
MOVE HIGH-VALUES TO TRN-KEY.
IF TRN-KEY NOT = HIGH-VALUES
ADD 1 TO TRN-CNT RR1294
MOVE TRN-REC TO TRN-RECORD.
C010-HEADER.
WRITE PRINT-REC FROM HDR1 AFTER ADVANCING TOP-OF-PAGE.
WRITE PRINT-REC FROM HDR2 AFTER ADVANCING 1 LINES.
C020-PRINT-STATS.
MOVE 'OLD FILE CNT:' TO DTL1-DESC.
MOVE OLD-CNT TO DTL1-CNT.
WRITE PRINT-REC FROM DTL1 AFTER ADVANCING 2 LINES.
MOVE 'TRN FILE CNT:' TO DTL1-DESC. RR1294
MOVE TRN-CNT TO DTL1-CNT. RR1294
WRITE PRINT-REC FROM DTL1 AFTER ADVANCING 1 LINES. RR1294
MOVE 'NEW FILE CNT:' TO DTL1-DESC.
MOVE OUT-CNT TO DTL1-CNT.
WRITE PRINT-REC FROM DTL1 AFTER ADVANCING 1 LINES.
C030-EXIT.
EXIT.
*************************** END OF COBEX **************************
Last Modified:
©1999 All Rights Reserved