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

KSDS Write and Rewrite

Problem Description

Add new records and update existing records in KSDS.

Expected Output

WRITE for new records, REWRITE for updates

Hints

Use I-O mode for both read and write operations.

Solution

IDENTIFICATION DIVISION. PROGRAM-ID. VSAMUPD. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT VSAM-FILE ASSIGN TO VSAMFILE ORGANIZATION IS INDEXED ACCESS MODE IS RANDOM RECORD KEY IS VS-KEY FILE STATUS IS WS-FILE-STATUS. DATA DIVISION. FILE SECTION. FD VSAM-FILE. 01 VS-RECORD. 05 VS-KEY PIC X(10). 05 VS-NAME PIC X(30). 05 VS-BALANCE PIC S9(7)V99. WORKING-STORAGE SECTION. 01 WS-FILE-STATUS PIC XX. 01 WS-AMOUNT PIC S9(7)V99. PROCEDURE DIVISION. OPEN I-O VSAM-FILE. * Add new record MOVE "ACCT001" TO VS-KEY. MOVE "NEW CUSTOMER" TO VS-NAME. MOVE 1000.00 TO VS-BALANCE. WRITE VS-RECORD INVALID KEY DISPLAY "DUPLICATE KEY - RECORD EXISTS" NOT INVALID KEY DISPLAY "RECORD ADDED" END-WRITE. * Update existing record MOVE "ACCT001" TO VS-KEY. READ VSAM-FILE INVALID KEY DISPLAY "RECORD NOT FOUND" NOT INVALID KEY ADD 500.00 TO VS-BALANCE REWRITE VS-RECORD INVALID KEY DISPLAY "REWRITE ERROR" NOT INVALID KEY DISPLAY "RECORD UPDATED" END-REWRITE END-READ. CLOSE VSAM-FILE. STOP RUN.

Explanation:

WRITE adds new records. REWRITE updates after READ. OPEN I-O for both.