* ==== TYPE: MT02 MATCHING(1:N) ==== * FEATURE: 1 master file, N transaction files * BRANCHES: 6, DECISIONS: 3 IDENTIFICATION DIVISION. PROGRAM-ID. MT02. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT MASTER-FILE ASSIGN TO 'MASTER.DAT'. SELECT TRANS-FILE ASSIGN TO 'TRANS.DAT'. DATA DIVISION. FILE SECTION. FD MASTER-FILE. 01 MASTER-REC PIC X(80). FD TRANS-FILE. 01 TRANS-REC PIC X(80). WORKING-STORAGE SECTION. 01 WS-MAST-KEY PIC X(10). 01 WS-TRAN-KEY PIC X(10). 01 WS-MAST-EOF PIC X VALUE 'N'. 01 WS-TRAN-EOF PIC X VALUE 'N'. 01 WS-MATCH-COUNT PIC 9(4) VALUE 0. PROCEDURE DIVISION. MAIN-PROCEDURE. OPEN INPUT MASTER-FILE TRANS-FILE. READ MASTER-FILE INTO MASTER-REC AT END MOVE 'Y' TO WS-MAST-EOF. READ TRANS-FILE INTO TRANS-REC AT END MOVE 'Y' TO WS-TRAN-EOF. PERFORM UNTIL WS-MAST-EOF = 'Y' OR WS-TRAN-EOF = 'Y' IF WS-MAST-KEY = WS-TRAN-KEY ADD 1 TO WS-MATCH-COUNT DISPLAY 'MATCH: ' TRANS-REC(1:50) READ TRANS-FILE AT END MOVE 'Y' TO WS-TRAN-EOF ELSE IF WS-MAST-KEY < WS-TRAN-KEY DISPLAY 'MASTER UNMATCHED: ' MASTER-REC(1:40) READ MASTER-FILE AT END MOVE 'Y' TO WS-MAST-EOF ELSE DISPLAY 'TRAN UNMATCHED: ' TRANS-REC(1:40) READ TRANS-FILE AT END MOVE 'Y' TO WS-TRAN-EOF END-IF END-PERFORM. CLOSE MASTER-FILE TRANS-FILE. STOP RUN.