This program updates and extends the file created by the CRTSEQ program. The INPUT-FILE and the MASTER-FILE are each read. When a match is found between INPUT-EMPLOYEE-NUMBER and MST-EMPLOYEE-NUMBER, the input record replaces the original record. After the MASTER-FILE is processed, new employee records are added to the end of the file.
Figure 123. Example of a Sequential File Update Program
5722WDS V5R3M0 030905 LN IBM ILE COBOL CBLGUIDE/UPDTSEQ ISERIES1 03/09/15 14:48:09 Page 2 S o u r c e STMT PL SEQNBR -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN S COPYNAME CHG DATE 1 000100 IDENTIFICATION DIVISION. 2 000200 PROGRAM-ID. UPDTSEQ. 000300 3 000400 ENVIRONMENT DIVISION. 4 000500 CONFIGURATION SECTION. 5 000600 SOURCE-COMPUTER. IBM-ISERIES 6 000700 OBJECT-COMPUTER. IBM-ISERIES 7 000800 INPUT-OUTPUT SECTION. 8 000900 FILE-CONTROL. 9 001000 SELECT INPUT-FILE ASSIGN TO DISK-FILES 11 001100 FILE STATUS IS INPUT-FILE-STATUS. 12 001200 SELECT MASTER-FILE ASSIGN TO DISK-MSTFILEB 14 001300 FILE STATUS IS MASTER-FILE-STATUS. 001400 15 001500 DATA DIVISION. 16 001600 FILE SECTION. 17 001700 FD INPUT-FILE. 18 001800 01 INPUT-RECORD. 19 001900 05 INPUT-EMPLOYEE-NUMBER PICTURE 9(6). 20 002000 05 INPUT-EMPLOYEE-NAME PICTURE X(28). 21 002100 05 INPUT-EMPLOYEE-CODE PICTURE 9. 22 002200 05 INPUT-EMPLOYEE-SALARY PICTURE 9(6)V99. 23 002300 FD MASTER-FILE. 24 002400 01 MASTER-RECORD. 25 002500 05 MST-EMPLOYEE-NUMBER PICTURE 9(6). 26 002600 05 MST-EMPLOYEE-NAME PICTURE X(28). 27 002700 05 MST-EMPLOYEE-CODE PICTURE 9. 28 002800 05 MST-EMPLOYEE-SALARY PICTURE 9(6)V99. 29 002900 WORKING-STORAGE SECTION. 30 003000 77 INPUT-FILE-STATUS PICTURE XX. 31 003100 77 MASTER-FILE-STATUS PICTURE XX. 32 003200 77 OP-NAME PICTURE X(12). 33 003300 01 INPUT-END PICTURE X VALUE SPACE. 34 003400 88 THE-END-OF-INPUT VALUE "E". 35 003500 01 MASTER-END PICTURE X VALUE SPACE. 36 003600 88 THE-END-OF-MASTER VALUE "E". 37 003700 PROCEDURE DIVISION. 38 003800 DECLARATIVES. 003900 INPUT-ERROR SECTION. 004000 USE AFTER STANDARD ERROR PROCEDURE ON INPUT-FILE. 004100 INPUT-ERROR-PARA. 39 004200 DISPLAY "UNEXPECTED ERROR ON ", OP-NAME, "FOR INPUT-FILE". 40 004300 DISPLAY "FILE STATUS IS ", INPUT-FILE-STATUS. 41 004400 DISPLAY "PROCESSING ENDED". 42 004500 STOP RUN. 004600 004700 I-O-ERROR SECTION. 004800 USE AFTER STANDARD ERROR PROCEDURE ON MASTER-FILE. 004900 I-O-ERROR-PARA. 43 005000 DISPLAY "UNEXPECTED ERROR ON ", OP-NAME, "FOR MASTER-FILE". 44 005100 DISPLAY "FILE STATUS IS ", MASTER-FILE-STATUS. 45 005200 DISPLAY "PROCESSING ENDED". 46 005300 STOP RUN. 5722WDS V5R3M0 030905 LN IBM ILE COBOL CBLGUIDE/UPDTSEQ ISERIES1 03/09/15 14:48:09 Page 3 STMT PL SEQNBR -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN S COPYNAME CHG DATE 005400 END DECLARATIVES. 005500 005600 MAIN-PROGRAM SECTION. 005700 MAINLINE. 47 005800 MOVE "OPEN" TO OP-NAME. 48 005900 OPEN INPUT INPUT-FILE 006000 I-O MASTER-FILE. 006100 49 006200 PERFORM READ-INPUT-FILE. 50 006300 PERFORM READ-MASTER-FILE. 51 006400 PERFORM PROCESS-FILES UNTIL THE-END-OF-INPUT. 006500 52 006600 MOVE "CLOSE" TO OP-NAME. 53 006700 CLOSE MASTER-FILE 006800 INPUT-FILE. 54 006900 STOP RUN. 007000 007100 READ-INPUT-FILE. 55 007200 MOVE "READ" TO OP-NAME. 56 007300 READ INPUT-FILE 57 007400 AT END SET THE-END-OF-INPUT TO TRUE 007500 END-READ. 007600 007700 READ-MASTER-FILE. 58 007800 MOVE "READ" TO OP-NAME. 59 007900 READ MASTER-FILE 008000 AT END 60 008100 SET THE-END-OF-MASTER TO TRUE 61 008200 MOVE "AT END CLOSE" TO OP-NAME 62 008300 CLOSE MASTER-FILE 63 008400 MOVE "OPEN EXTEND" TO OP-NAME 64 008500 OPEN EXTEND MASTER-FILE 008600 END-READ. 008700 008800 PROCESS-FILES. 65 008900 IF THE-END-OF-MASTER THEN 66 009000 WRITE MASTER-RECORD FROM INPUT-RECORD 67 009100 PERFORM READ-INPUT-FILE 009200 ELSE 68 009300 IF MST-EMPLOYEE-NUMBER 009400 LESS THAN INPUT-EMPLOYEE-NUMBER THEN 69 009500 PERFORM READ-MASTER-FILE 009600 ELSE 70 009700 IF MST-EMPLOYEE-NUMBER EQUAL INPUT-EMPLOYEE-NUMBER THEN 71 009800 MOVE "REWRITE" TO OP-NAME 72 009900 REWRITE MASTER-RECORD FROM INPUT-RECORD 73 010000 PERFORM READ-INPUT-FILE 74 010100 PERFORM READ-MASTER-FILE 010200 ELSE 75 010300 DISPLAY "ERROR RECORD -> ", INPUT-EMPLOYEE-NUMBER 76 010400 PERFORM READ-INPUT-FILE 010500 END-IF 010600 END-IF 010700 END-IF. * * * * * E N D O F S O U R C E * * * * * |
(C) Copyright IBM Corporation 1992, 2005. All Rights Reserved.