Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
← Back to File Handling
File Handling | Advanced | COBOL

Master-Transaction Update

Problem Description

Update master file with transactions: A=Add, U=Update, D=Delete. Both files sorted by key.

Expected Output

Updated master file

Hints

Match keys between files, handle each transaction type.

Solution

IDENTIFICATION DIVISION. PROGRAM-ID. MASTERUPD. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT MASTER-IN ASSIGN TO "MASTER.DAT". SELECT TRANS-FILE ASSIGN TO "TRANS.DAT". SELECT MASTER-OUT ASSIGN TO "NEWMAST.DAT". DATA DIVISION. FILE SECTION. FD MASTER-IN. 01 MASTER-REC. 05 M-KEY PIC 9(5). 05 M-NAME PIC X(20). 05 M-BALANCE PIC S9(7)V99. FD TRANS-FILE. 01 TRANS-REC. 05 T-CODE PIC X(1). 05 T-KEY PIC 9(5). 05 T-NAME PIC X(20). 05 T-AMOUNT PIC S9(7)V99. FD MASTER-OUT. 01 NEW-MASTER PIC X(32). WORKING-STORAGE SECTION. 01 WS-EOF-M PIC 9 VALUE 0. 01 WS-EOF-T PIC 9 VALUE 0. 01 WS-ADDED PIC 9(4) VALUE 0. 01 WS-UPDATED PIC 9(4) VALUE 0. 01 WS-DELETED PIC 9(4) VALUE 0. PROCEDURE DIVISION. OPEN INPUT MASTER-IN TRANS-FILE OUTPUT MASTER-OUT. READ MASTER-IN AT END MOVE 1 TO WS-EOF-M END-READ. READ TRANS-FILE AT END MOVE 1 TO WS-EOF-T END-READ. PERFORM UNTIL WS-EOF-M = 1 AND WS-EOF-T = 1 EVALUATE TRUE WHEN WS-EOF-T = 1 WRITE NEW-MASTER FROM MASTER-REC READ MASTER-IN AT END MOVE 1 TO WS-EOF-M END-READ WHEN WS-EOF-M = 1 IF T-CODE = "A" MOVE T-KEY TO M-KEY MOVE T-NAME TO M-NAME MOVE T-AMOUNT TO M-BALANCE WRITE NEW-MASTER FROM MASTER-REC ADD 1 TO WS-ADDED END-IF READ TRANS-FILE AT END MOVE 1 TO WS-EOF-T END-READ WHEN T-KEY = M-KEY EVALUATE T-CODE WHEN "U" ADD T-AMOUNT TO M-BALANCE ADD 1 TO WS-UPDATED WHEN "D" ADD 1 TO WS-DELETED END-EVALUATE READ TRANS-FILE AT END MOVE 1 TO WS-EOF-T END-READ WHEN T-KEY > M-KEY WRITE NEW-MASTER FROM MASTER-REC READ MASTER-IN AT END MOVE 1 TO WS-EOF-M END-READ END-EVALUATE END-PERFORM. CLOSE MASTER-IN TRANS-FILE MASTER-OUT. DISPLAY "ADDED: " WS-ADDED " UPDATED: " WS-UPDATED " DELETED: " WS-DELETED. STOP RUN.

Explanation:

Classic sequential file update pattern used in batch processing.