Sunday, September 8, 2019

COBOL program to reading records dynamically from KSDS

       ID DIVISION.
       PROGRAM-ID. FILEOPEN.
      *****************************************************************
      ***   READING  RECORDS  DYNAMICLLY FROM KSDS                  ***
      *****************************************************************
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT INFILE ASSIGN TO DD1
           ORGANIZATION INDEXED
           ACCESS MODE IS DYNAMIC
           RECORD KEY IS ENO
           FILE STATUS IS INFL-ST.
       DATA DIVISION.
       FILE SECTION.
       FD INFILE.
       01 INREC.
         04 ENO PIC X(4).
         04 ENAME PIC X(4).
         04 EMOB PIC X(10).
         04 FILLER PIC X(62).
       WORKING-STORAGE SECTION.
       01 INFL-ST PIC X(2).
       88 INFL-OK VALUE '00'.
       88 END-INFL VALUE '10'.
       PROCEDURE DIVISION.
       000-MAIN.
           DISPLAY 'FILE READING STARTS'.
           PERFORM 100-OPEN-PARA
           THRU 100-OPEN-PARA-EXIT
           PERFORM 200-PROCESS-PARA
           THRU 200-PROCESS-PARA-EXIT
           PERFORM 300-CLOSE-PARA
           THRU 300-CLOSE-PARA-EXIT
           PERFORM 999-STOP-RUN
           THRU 999-STOP-RUN-EXIT.
       000-EXIT.
           EXIT.
       100-OPEN-PARA.
           OPEN INPUT INFILE
           IF INFL-OK
           DISPLAY 'INFILE OPENING SUCCESFULLY'
           ELSE
           DISPLAY 'ERROR OPENING INFILE:' INFL-ST
           PERFORM 999-STOP-RUN
           THRU 999-STOP-RUN-EXIT
           END-IF.
       100-OPEN-PARA-EXIT.
           EXIT.
       200-PROCESS-PARA.
           ACCEPT ENO
           START INFILE
           KEY IS EQUAL TO ENO
           INVALID KEY
           DISPLAY 'INVALID KEY'
           NOT INVALID KEY
           DISPLAY 'READING POSITION STARTED'
           GO TO 220-RR-PARA
           END-START.
       200-PROCESS-PARA-EXIT.
           EXIT.
       220-RR-PARA.
           READ INFILE NEXT RECORD
           AT END
           GO TO 220-RR-PARA-EXIT
           NOT AT END
           DISPLAY INREC
           GO TO 220-RR-PARA
           END-READ.
       220-RR-PARA-EXIT.
           EXIT.
       300-CLOSE-PARA.
           CLOSE INFILE
           IF INFL-OK
           DISPLAY 'INFILE CLOSE SUCCESSFULLY'
           ELSE
           DISPLAY 'ERROR CLOSE SUCCESSFULLY' INFL-ST
           GO TO 300-CLOSE-PARA-EXIT
           END-IF.
       300-CLOSE-PARA-EXIT.
           EXIT.
       999-STOP-RUN.
           DISPLAY 'PROGRAM READING ENDED'
           STOP RUN.
       999-STOP-RUN-EXIT.
           EXIT.

No comments:

Post a Comment