Referenced DD statement
//INDATA DD DDNAME=DD1
//STEPCP1.DD1 DD *
Parameters not permitted on the referenced DD statement: The referenced DD statement must not contain a DYNAM or PATH parameter.
A DD statement that contains a DDNAME parameter must not override a procedure sysout DD statement that contains an OUTPUT parameter if the referenced DD statement also contains an OUTPUT parameter.
//STEP1 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DDNAME=INPUT
//INPUT DD DSN=TSTDATA1,DISP=SHR
// DD DSN=TSTDATA2,DISP=SHR
//SYSUT2 DD SYSOUT=*
//SYSIN DD DUMMY
In this example, SYSUT1 will resolve to the first data set TSTDATA1, defined by the DDNAME forward reference INPUT. TSTDATA2, the second data set in the DDNAME forward reference INPUT, will be appended to SYSUT1 as well. IEBGENER will recognize TSTDATA1 and TSTDATA2 as input.
//STEP1 EXEC PGM=IEBGENER
//SYSUT1 DD DDNAME=INPUT
//SYSPRINT DD SYSOUT=*
//SYSUT2 DD SYSOUT=*
//INPUT DD DSN=TSTDATA1,DISP=SHR
// DD DSN=TSTDATA2,DISP=SHR
//SYSIN DD DUMMY
In the preceding example, SYSUT1 will resolve to the first data set, TSTDATA1, defined in the DDNAME forward reference INPUT. TSTDATA2 will be appended to SYSUT2, the last DD statement preceding the concatenation. In that example IEBGENER will only recognize TSTDATA1 as input.
//TPROC PROC
//S1 EXEC PGM=IEFBR14
//DD1 DD DDNAME=INPUT
//DD2 DD DSN=MYDSN2,DISP=SHR
//DD3 DD DSN=MYDSN3,DISP=SHR
//S2 EXEC PGM=IEFBR14
//DDA DD DDNAME=INPUT
//DDB DD DSN=MINE2,DISP=SHR
//DDC DD DSN=MINE3,DISP=SHR
// PEND
//STEP1 EXEC TPROC
//INPUT DD DSN=MYDSN1,DISP=SHR
// DD DSN=MYDSN4,DISP=SHR
//S2.INPUT DD DSN=MINE1,DISP=SHR
// DD DSN=MINE4,DISP=SHR
- In step S1, DD1 resolves to data set MYDSN1 and data set MYDSN4 is concatenated to data set MYDSN3.
- In step S2, DDA resolves to data set MINE1 and data set MINE4 is concatenated to data set MINE3.