Showing posts with label VSAM. Show all posts
Showing posts with label VSAM. Show all posts

Sunday, September 8, 2019

COBOL program to appending records at end in KSDS

       ID DIVISION.
       PROGRAM-ID. FILEOPEN.
      ****************************************************************
      ***   APPENDING RECORDS AT THE END IN KSDS                    ****************************************************************
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT INFILE ASSIGN TO DD1
           ORGANIZATION INDEXED
           ACCESS MODE IS SEQUENTIAL
           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(8).
         04 EMOB PIC X(10).
         04 FILLER PIC X(58).
       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 EXTEND 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.
           MOVE '1005' TO ENO
           MOVE ' ABCDEFGH ' TO ENAME
           MOVE '0002334455' TO EMOB
           WRITE INREC.
       200-PROCESS-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.

COBOL program to REWRITING records in KSDS

       ID DIVISION.
       PROGRAM-ID. FILEOPEN.
      ***************************************************************
     ***   REWRITING RECORDS IN KSDS                               ****************************************************************
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT INFILE ASSIGN TO DD1
           ORGANIZATION IS INDEXED
           ACCESS MODE IS SEQUENTIAL
           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(8).
          04 EMOB PIC X(10).
          04 FILLER PIC X(58).
       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.
       000-EXIT.
           EXIT.
       100-OPEN-PARA.
           OPEN I-O INFILE
           IF INFL-OK
           DISPLAY 'INFILE OPENING SUCCESFULLY'
           ELSE
           DISPLAY 'ERROR OPENING INFILE:' INFL-ST
           END-IF.
       100-OPEN-PARA-EXIT.
           EXIT.
       200-PROCESS-PARA.
           READ INFILE
           AT END
           DISPLAY 'INVALID KEY'
           NOT AT END
           IF ENAME = ' ANIL '
           MOVE ' RATN ' TO ENAME
           REWRITE INREC
           DISPLAY INREC
           END-IF
           END-READ.
       200-PROCESS-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-EXIT.
           STOP RUN.
           EXIT.
       999-STOP-RUN-EXIT.
           EXIT.

COBOL program to Delete the records from KSDS

       ID DIVISION.
       PROGRAM-ID. FILEOPEN.
      *****************************************************************
      ***   DELETING  RECORDS FROM KSDS                             *****************************************************************
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT INFILE ASSIGN TO DD1
           ORGANIZATION INDEXED
           ACCESS MODE IS SEQUENTIAL
           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(8).
         04 EMOB PIC X(10).
         04 FILLER PIC X(58).
       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 I-O 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.
           READ INFILE NEXT RECORD
           AT END
           DISPLAY 'INVALID KEY'
           NOT AT END
           IF ENAME = ' RATNESH '
           DELETE INFILE
           DISPLAY INREC
           END-IF
           END-READ.
       200-PROCESS-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.

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.

COBOL program to reading the records randomly from KSDS

       ID DIVISION.
       PROGRAM-ID. FILEOPEN.
      *****************************************************************
      ***   READING  RECORDS  RANDOMLY FROM KSDS                    ***
      *****************************************************************
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT INFILE ASSIGN TO DD1
           ORGANIZATION INDEXED
           ACCESS MODE IS RANDOM
           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
           READ INFILE
           KEY IS ENO
           INVALID KEY
           DISPLAY 'INVALID KEY'
           NOT INVALID KEY
           DISPLAY INREC
           END-READ.
       200-PROCESS-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.

COBOL program to reading the records sequentially from KSDS VSAM

                ID DIVISION.
       PROGRAM-ID. FILEOPEN.
      *****************************************************************
      ***   READING  RECORDS  SEQUENTIALLY FROM KSDS          
*****************************************************************
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT INFILE ASSIGN TO DD1
           ORGANIZATION INDEXED
           ACCESS MODE IS SEQUENTIAL
           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(8).
         04 EMOB PIC X(10).
         04 FILLER PIC X(58).
       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 UNTIL END-INFL
           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.
           READ INFILE
           AT END
           DISPLAY 'REACHED END'
           NOT AT END
           DISPLAY INREC
           GO TO 200-PROCESS-PARA
           END-READ.
       200-PROCESS-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.

JCL unload the data into PS file from VSAM using RBA

//IBMUSERA JOB NOTIFY=&SYSUID
//*UNLOAD THE DATA INTO PS FROM VSAM USING RBA*****
//S1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
  REPRO IDS(IBMUSER.RATNESH.ESDS)-
        ODS(IBMUSER.RATNESH.PS)-
        FROMADDRESS(0)-
        TOADDRESS(80)
/*

JCL unload the data into PS file from VSAM using KEY value

//IBMUSERA JOB NOTIFY=&SYSUID
//*UNLOAD THE DATA INTO PS FROM VSAM USING KEY VALUE***
//S1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
  REPRO IDS(IBMUSER.RATNESH.KSDS)-
        ODS(IBMUSER.RATNESH.PS)-
        FROMKEY(1004)-
        TOKEY(1007)
/*

JCL unload the data into PS file form VSAM using RR number

//IBMUSERA JOB NOTIFY=&SYSUID
//*UNLOAD THE DATA INTO PS FROM VSAM USING RRN*****
//S1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
  REPRO IDS(IBMUSER.RATNESH.RRDS)-
        ODS(IBMUSER.RATNESH.PS)-
        FROMNUMBER(1)-
        TONUMBER(4)
/*

JCL to load the data into PS file form VSAM file

//IBMUSERA JOB NOTIFY=&SYSUID
//*LOAD THE DATA INTO PS FILE FROM VSAM***
//S1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
  REPRO IDS(IBMUSER.RATNESH.ESDS)-
        ODS(IBMUSER.RATNESH.PS)
/*

JCL load the data into VSAM file from PS file

//IBMUSERA JOB NOTIFY=&SYSUID
//*LOAD THE DATA INTO VASM FILE FROM PS*****
//S1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
  REPRO IDS(IBMUSER.RATNESH.PS)-
        ODS(IBMUSER.RATNESH.KSDS)
/*

JCL to copy data for KSDS TO ALTERNATIVE INDEX

//IBMUSERA JOB NOTIFY=&SYSUID
//*COPY DATA FROM KSDS TO ALTERNATIVE INDEX*****
//S1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
  BLDINDEX IDS(IBMUSER.RATNESH.KSDS)-
        ODS(IBMUSER.RATNESH.ALX)-
/*

JCL to create path between alternative index & KSDS

//IBMUSERA JOB NOTIFY=&SYSUID
//*CREATION OF PATH BETWEEN ALTERNATIVE INDEX & KSDS****
//S1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
  DEFINE PATH(NAME(IBMUSER.RATNESH.PATH)-
  PATHENTRY(IBMUSER.RATNESH.ALX)-
  UPDATE)
/*

JCL to create alternative index

//IBMUSERA JOB NOTIFY=&SYSUID
//***CREATION OF ALTERNATIVE INDEX*****
//S1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
  DEFINE ALTERNATEINDEX(NAME(IBMUSER.RATNESH.ALX)-
  RELATE(IBMUSER.RATNESH.KSDS)-
  VOLUMES(ZASYS1)-
  CISZ(4096)-
  RECORDSIZE(15,15)-
  FREESPACE(10,10)-
  KEYS(4,5)-
  TRK(10,10)-
  UPGRADE)
/*

JCL for creation of RRDS VSAM file

//IBMUSERA JOB NOTIFY=&SYSUID
//*****CREATION OF RRDS*******
//S1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
  DEFINE CLUSTER (NAME(IBMUSER.RATNESH.RRDS)-
  VOLUMES(ZASYS1)-
  CISZ(4096)-
  RECORDSIZE(80,80)-
  TRK(10,10)-
  NUMBERED)
/*

JCL for creation of KSDS VSAM file

//IBMUSERA JOB NOTIFY=&SYSUID
//*****CREATION OF KSDS*******
//S1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
  DEFINE CLUSTER (NAME(IBMUSER.RATNESH.KSDS)-
  VOLUMES(ZASYS1)-
  CISZ(4096)-
  RECORDSIZE(80,80)-
  FREESPACE(10,10)-
  KEYS(4,0)-
  TRK(10,10)-
  INDEXED)
/*

JCL for creation of ESDS VSAM file

//IBMUSERA JOB NOTIFY=&SYSUID
//*****CREATION OF ESDS*******
//S1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
  DEFINE CLUSTER (NAME(IBMUSER.RATNESH.ESDS)-
  VOLUMES(ZASYS1)-
  CISZ(4096)-
  RECORDSIZE(80,80)-
  TRK(10,10)-
  NONINDEXED)
/*