IDENTIFICATION DIVISION. PROGRAM-ID. SAMPLE. AUTHOR. NANCY STERN. ******************************************* * THIS PROGRAM UPDATES AN INDEXED FILE * ******************************************* * This program has no date routines so it is Y2K compliant ** ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT MASTER-DISK-IO ASSIGN TO DISK 'DATA15' ORGANIZATION IS INDEXED ACCESS IS RANDOM RECORD KEY MASTER-CUST-NO SELECT TRANSACTION-IN ASSIGN TO DISK 'DATA15A'. * DATA DIVISION. FILE SECTION. FD MASTER-DISK-IO LABEL RECORDS ARE STANDARD. 01 MASTER-REC-IO. 05 MASTER-CUST-NO PIC X(5). 05 MASTER-BALANCE-DUE PIC 9(3)V99. FD TRANSACTION-IN LABEL RECORDS ARE STANDARD. 01 TRANS-REC-IN. 05 TRANS-CUST-NO-IN PIC X(5). 05 TRANS-AMT-IN PIC 9(3)V99. 05 TRANS-CODE-IN PIC X. 88 DELETE-RECORD VALUE '1'. WORKING-STORAGE SECTION. 01 WS-WORK-AREAS. 05 ARE-THERE-MORE-RECORDS PIC X(3) VALUE 'YES'. 88 NO-MORE-RECORDS VALUE 'NO '. * PROCEDURE DIVISION. ***************************************** * CONTROLS DIRECTION OF PROGRAM LOGIC * ***************************************** 100-MAIN-MODULE. PERFORM 400-INITIALIZATION-RTN PERFORM UNTIL NO-MORE-RECORDS READ TRANSACTION-IN AT END MOVE 'NO' TO ARE-THERE-MORE-RECORDS NOT AT END PERFORM 200-CALC-RTN END-READ END-PERFORM PERFORM 500-END-OF-JOB-RTN STOP RUN. *********************************************** * PERFORMED FROM 100-MAIN-MODULE. READS AND * * UPDATES MASTER FILE. * *********************************************** 200-CALC-RTN. MOVE TRANS-CUST-NO-IN TO MASTER-CUST-NO. IF DELETE-RECORD PERFORM 350-DELETE-RTN ELSE READ MASTER-DISK-IO INVALID KEY DISPLAY 'INVALID TRANSACTION RECORD ', TRANS-REC-IN NOT INVALID KEY PERFORM 300-UPDATE-THE-RECORD END-READ END-IF. 300-UPDATE-THE-RECORD. ADD TRANS-AMT-IN TO MASTER-BALANCE-DUE REWRITE MASTER-REC-IO INVALID KEY DISPLAY 'ERROR IN REWRITE' END-REWRITE. 350-DELETE-RTN. DELETE MASTER-DISK-IO RECORD INVALID KEY DISPLAY 'ERROR IN DELETE FILE' END-DELETE. ******************************************* * PERFORMED FROM 100-MAIN-MODULE. * * OPENS FILES * ******************************************* 400-INITIALIZATION-RTN. OPEN INPUT TRANSACTION-IN I-O MASTER-DISK-IO. ************************************************** * PERFORMED FROM 100-MAIN-MODULE, CLOSES FILES * ************************************************** 500-END-OF-JOB-RTN. CLOSE TRANSACTION-IN MASTER-DISK-IO.