DD statement
Defines the data definition for any input or output files. The
file can be any one of the following:
- In-stream data which follows a
DD *statement and is terminated by/* - An MVS™ data set
- A file on the HFS file system, using the HFSPATH keyword. If you use the HFSPATH keyword, the only other allowed keyword is CCUEXT.
Syntax

Parameters
- label
- The DD name.
- DSN or DSNAME
- The name of the data set. You can either choose this parameter, or choose the HFSPATH parameter, but not both.
- HFSPATH = hfsPathName
- The path to the HFS directory. Only the CCUEXT parameter can be used with HFSPATH.
- DISP
- stat
- The status: NEW (the default), OLD, SHR (shared), or MOD (modified).
- ndisp
- The normal dispositions: DELETE, KEEP (the default), CATLG (catalog), or UNCATLG (uncatalog).
- adisp
- The abnormal dispositions: DELETE, KEEP (the default), CATLG (catalog), or UNCATLG (uncatalog).
- DCB
- LRECL
- The record length in bytes.
- BLKSIZE
- The block size in bytes.
- RECFM
- The record format.
- DSORG = dataSetOrganization
- Specifies the data set organization. The following values are
valid:
- PS
- The sequential data set.
- PO
- The partitioned data set.
- UNIT = unitType
- The type of media for the output. Valid values are:
- VIO
- Virtual I/O
- unitType
- The name of a device on the system
- SPACE = unitType
- The unit type. The following values are valid:
- unit
- The allocation unit: TRK, CYL, or a number equal to the block size.
- pri
- The primary number of allocation units.
- sec
- The secondary number of allocation units.
- dir
- The number of directory blocks for PDS allocations.
- RLSE
- Specifies that unused space should be released when the data set is closed.
- CONTIG
- Specifies that the space allocated should contiguous.
- VOL = SER = volume
- Specifies the volume where you want the data set allocated. When DSN specifies a permanent data set name and DISP specifies NEW, the system assigned volume is used by default.
- CCUEXT
- Specifies a file name extension and is used to map the input,
output, and message file names to the target DDNAME. For example:
//USERLIB DD DSN=MY.HEADERS,DISP=SHR,CCUEXT=(H,HPP)- extension
- Specifies that all input files with h and .hpp extensions (not case sensitive), will be placed in the data set allocated to DDNAME USERLIB. The same extension can appear only once in the pseudo-JCL script.
- CCUOUT
- Specifies that the corresponding DDNAME is a sequential data set
or member of a partitioned data set (typically containing message
listings) which needs to be returned to the build client. For example:
After the program CBCDRVR is executed, the contents of SYSOUT will be read and returned to the client as the COMPILE.SYSOUT file in the client's file system.//COMPILE EXEC PGM=CBCDRVR,.. //SYSIN .. //SYSOUT DD CCUEXT=CCUOUT,DISP=(NEW,DELETE),SPACE=(32000,(30,30)), // DCB=(RECFM=VB,LRECL=137,BLKSIZE=882) - CCUSTD
- Specifies that DDNAMEs designated with this value will be written
to STDOUT on the build client. For example:
After the program CBCDRVR is executed, the contents of SYSOUT will be read, placed on STDOUT and returned to the client as the COMPILE.SYSOUT file in the client's file system//COMPILE EXEC PGM=CBCDRVR,.. //SYSIN .. //SYSOUT DD CCUEXT=CCUSTD,DISP=(NEW,DELETE),SPACE=(32000,(30,30)), // DCB=(RECFM=VB,LRECL=137,BLKSIZE=882) - CCUERR
- Specifies that DDNAMEs designated with this value will be placed
on the STDERR by the ccubldc client. For example:
After the program CBCDRVR is executed, the contents of SYSOUT will be read, placed on STDERR, and returned to the client as the COMPILE.SYSOUT file in the client's file system.//COMPILE EXEC PGM=CBCDRVR,.. //SYSIN .. //SYSOUT DD CCUEXT=CCUERR,DISP=(NEW,DELETE),SPACE=(32000,(30,30)), // DCB=(RECFM=VB,LRECL=137,BLKSIZE=882)
- ENQ
- If set to YES, tells the build server to enqueue on the name of the data set the DD card allocates. This is sometimes necessary when the build script writes to a partitioned data set that can be accessed concurrently by more than one build request. If a build script enqueues on a data set name that was previously enqueued by a build script that is still active, the build script is placed on a queue and retried periodically. This can possibly cause a time-out of the build request if a large number of concurrent build requests are enqueing on the same data set name.
Examples
Here is an example of a DD statement used with a temporary MVS™ data set, with no DSN:
//* MVS Dataset, temporary with no DSN
//SYSIN DD CCUEXT=(C,CPP),DISP=(NEW,DELETE),
// UNIT=VIO,SPACE=(TRK,(10,5)),
// DCB+(RECFM=VB,LRECL=256,BLKSIZE=2560) Here is an example of a DD statement used with an already existing MVS™ data set:
//* MVS Dataset, already existing
//STEPLIB DD DSNAME=CEE.SCEERUN,DISP=SHRHere is an example of a DD statement that is using the HFS file
system:
//* HFS file. The input files with extension=WSDL will be written to
//* this directory. The output files with extension=WSDL will be copied
//* from this directory.
//MYXML DD HFSPATH=&EZEDESTDIR,CCUEXT=(WSDL)