Examples for the DEDB Unloaded Segment Data Set Retrieve utility

These are example JCL statements for the DEDB Unloaded Segment Data Set Retrieve utility.

The figure in this topic shows example JCL stream used when using COBOL statements for FABCUR6 and FABCUR7.

When the FPA Unload function or the FPB Unload utility unloads the DEDB, the hierarchical structure is unchanged unless a NEWACB DD is specified. The hierarchical structure of the unloaded data set can be changed using FABCUR6 and FABCUR7.

To do this, use the following guidelines:

  1. The DEDB unloaded file must be sorted before processing.
  2. The ACBLIB data set for FABCUR6 must contain the new DMB defined for the DEDB being processed.
  3. The application program reads each unloaded segment record into an I/O area using FABCUR7, and then puts the contents of the I/O area to the output file using FABCUR6.

The following figure shows example JCL stream used to change a DEDB hierarchical structure.

Figure 1. Example of changing a DEDB hierarchical structure
//CONVERT  EXEC PGM=user-pgm
//UR7PRINT DD  SYSOUT=A
//UR7AUDIT DD  SYSOUT=A
//UR7DBDFN DD  DSN=HPFP.UR.DURDBDFN,DISP=SHR
//UR7DATA  DD  DSN=HPFP.UR.FILEzzz.SORTED.SEGDATA,DISP=SHR
//ACBLIB   DD  DSN=IMSVS.ACBLIB,DISP=SHR
//RMODLIB  DD  DSN=IMSVS.PGMLIB,DISP=SHR
//UR6PRINT DD  SYSOUT=A
//UR6AUDIT DD  SYSOUT=A
//UR6DBDFN DD  HPFP.UR6.DURDBDFN,
//             DISP=(NEW,CATLG,DELETE),
//             UNIT=SYSDA,
//             SPACE=(TRK,(1,1))
//DURDzzzO DD  DSN=HPFP.UR.FILEzzz.SEGDATA,
//             DISP=(NEW,CATLG,DELETE),
//             UNIT=TAPE,
//             DCB=BLKSIZE=20000
//DURSzzzO  DD DSN=HPFP.UR.FILEzzz.SORTCARD,
//             DISP=(NEW,CATLG,DELETE),
//             UNIT=SYSDA,
//             SPACE=(TRK,(1,1))

The following figure shows example JCL stream used when using COBOL statements for FABCUR6 and FABCUR7.

Figure 2. COBOL statements for using FABCUR6 and FABCUR7 (Part 1 of 2)
       IDENTIFICATION DIVISION.
       PROGRAM_ID. CALL6510
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING_STORAGE SECTION. 
 
      *--------------------------------------------------------------*
      *   FABCUR7 DC & DS AREA
      *--------------------------------------------------------------* 
 
       01  FUNC_INIT     PIC X(04) VALUE 'INIT'.
       01  FUNC_INID     PIC X(04) VALUE 'INID'.
       01  FUNC_GET      PIC X(04) VALUE 'GET '.
       01  FUNC_GET1     PIC X(04) VALUE 'GET1'.
       01  FUNC_GET2     PIC X(04) VALUE 'GET2'.
       01  FUNC_EOF      PIC X(04) VALUE 'EOF '.
      *
       01  STATUS_CODE   PIC X(02) VALUE '  '.
       01  IO_AREA.
           05  GSEG_NAME           PIC X(08).
           05  GSEG_SSPTRS         PIC X            OCCURS 8 TIMES.
           05  GSEG_DATA.
             07  GSEG_DATA_LL        PIC S9(4)      COMP.
             07  GSEG_DATA_CONTAIN   PIC X(902).
      *
       01  STATUS_OK     PIC X(02) VALUE '  '.
       01  STATUS_EOF    PIC X(02) VALUE 'GB'. 
 
      *--------------------------------------------------------------*
      *   FABCUR6 DC & DS AREA
      *--------------------------------------------------------------*
       01  FUNC_PUT      PIC X(04) VALUE 'PUT '.
      *
       01  UR6_DBDNAME   PIC X(08) VALUE 'DEDBJN22'.
      *
       01  RC_NORMAL     PIC 9(04) VALUE 0. 
 
      *
       PROCEDURE DIVISION.
      *
           PERFORM MAIN_RTN THRU MAIN_RTN_END.
           GOBACK. 
Figure 3. COBOL statements for using FABCUR6 and FABCUR7 (Part 2 of 2)
      * ----------------------------------------------------------- *
      * -----        MAIN ROUTINE        -------------------------- *
      * ----------------------------------------------------------- *
       MAIN_RTN.
           PERFORM  INIT_PROC THRU INIT_PROC_END.
           PERFORM  GET_PROC THRU GET_PROC_END.
           PERFORM  EOF_PROC THRU EOF_PROC_END.
       MAIN_RTN_END. EXIT. 
 
      * ----------------------------------------------------------- *
      * -----        INITIALIZATION PROCESSING     ---------------- *
      * ----------------------------------------------------------- *
       INIT_PROC.
           CALL    'FABCUR7'         USING FUNC_INIT.
           CALL    'FABCUR6'         USING FUNC_INIT,
                                           UR6_DBDNAME.
       INIT_PROC_END. EXIT. 
 
      * ----------------------------------------------------------- *
      * -----        GET            PROCESSING     ---------------- *
      * ----------------------------------------------------------- *
       GET_PROC.
           PERFORM   UNTIL    STATUS_CODE   =  STATUS_EOF
             MOVE   ZERO      TO       IO_AREA
             CALL   'FABCUR7'          USING FUNC_GET,
                                             STATUS_CODE,
                                             IO_AREA
             IF     STATUS_CODE   NOT =   STATUS_EOF
               CALL   'FABCUR6'          USING FUNC_PUT,
                                               IO_AREA
             END_IF
           END_PERFORM.
       GET_PROC_END. EXIT. 
 
      * ----------------------------------------------------------- *
      * -----        TERMINATION PROCESSING       ----------------- *
      * ----------------------------------------------------------- *
       EOF_PROC.
           CALL    'FABCUR7'         USING FUNC_EOF.
           CALL    'FABCUR6'         USING FUNC_EOF.
           MOVE    RC_NORMAL         TO   RETURN_CODE.
       EOF_PROC_END. EXIT.