//A EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
//INPUT DD -- Another PDS --
//OUTPUT DD -- New PDS --
//SYSIN DD *
COPY INDD=INPUT,OUTDD=OUTPUT
steve-myers wrote:I can think of several. For example -//A EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
//INPUT DD -- Another PDS --
//OUTPUT DD -- New PDS --
//SYSIN DD *
COPY INDD=INPUT,OUTDD=OUTPUT//B EXEC PGM=IEBUPDTE,PARM=NEW
//SYSPRINT DD SYSOUT=*
//SYSUT2 DD -- New PDS --
//SYSIN DD *
./ ADD NAME=member1
.. Data for member 1 ..
./ ADD NAME=member2
.. Data for member 2 ..//C EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD *
.. Data for member 1 ..
//SYSUT2 DD DISP=(NEW,CATLG),UNIT=SYSDA,SPACE=(space definition),
// DSN=DSNAME(MEMBER1)
//SYSIN DD DUMMY
Of course, there is always running your program and specifying an output data set like the SYSUT2 DD statement in the IEBGENER example.
In the IEBUPDTE example, be sure to specify a DCB; the IEBUPDTE standard default is not usually considered acceptable.