DD statement

Defines the data definition for any input or output files. The file can be any one of the following:

Syntax

Pseudo-JCL DD 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:
//COMPILE EXEC PGM=CBCDRVR,..
//SYSIN ..
//SYSOUT DD CCUEXT=CCUOUT,DISP=(NEW,DELETE),SPACE=(32000,(30,30)),
//          DCB=(RECFM=VB,LRECL=137,BLKSIZE=882)
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.
CCUSTD
Specifies that DDNAMEs designated with this value will be written to STDOUT on the build client. For example:
//COMPILE EXEC PGM=CBCDRVR,..
//SYSIN ..
//SYSOUT DD CCUEXT=CCUSTD,DISP=(NEW,DELETE),SPACE=(32000,(30,30)),
//          DCB=(RECFM=VB,LRECL=137,BLKSIZE=882)
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
CCUERR
Specifies that DDNAMEs designated with this value will be placed on the STDERR by the ccubldc client. For example:
//COMPILE EXEC PGM=CBCDRVR,..
//SYSIN ..
//SYSOUT DD CCUEXT=CCUERR,DISP=(NEW,DELETE),SPACE=(32000,(30,30)),
//          DCB=(RECFM=VB,LRECL=137,BLKSIZE=882)
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.
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=SHR
Here 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)

Feedback