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:
- The DEDB unloaded file must be sorted before processing.
- The ACBLIB data set for FABCUR6 must contain the new DMB defined for the DEDB being processed.
- 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.
//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.
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.
* ----------------------------------------------------------- *
* ----- 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.