and MYDD2 DD statements are names chosen by the user for the partitioned input and output data sets, respectively; The defaults are SYSUT1 and SYSUT2. You can use any valid DDNAME for these two DD statements. These DDNAMEs are specified in the utility control statements to tell IEBCOPY the name of the input and output data sets. You only need one DD statement for a PDS to be compressed. IEBDG IEBDG ('Data Generator') creates test datasets consisting of patterned data. Control statements define the fields of the records to be created, including position, length, format, and initialization to be performed. IEBDG can use an existing dataset as input and change fields as specified in the control statements, for example replacing a name field by random alphabetic text. The contents of each field may be varied for each record, for example by rotating the characters in an alphanumeric field left or right for each subsequent record. Example: //XXXXXXXW JOB XXXXXXX,AAAA,CLASS=G,MSGCLASS=1,NOTIFY=&SYSUID //********************************************************************** //* CREATION OF A DATASET To BE USED LATER ON //********************************************************************** //CRSTEP EXEC PGM=IEFBR14 //DDCREA DD DSN=&SYSUID..MVSUT.SEQOUT,DISP=(NEW,CATLG) //********************************************************************** //* CREATION OF THE TESTDATA //********************************************************************** //STEP1 EXEC PGM=IEBDG //SYSPRINT DD SYSOUT=* //SEQOUT DD DSN=&SYSUID..MVSUT.SEQOUT,DISP=OLD //SYSIN DD DATA DSD OUTPUT=(SEQOUT) FD NAME=FIELD1,LENGTH=30,STARTLOC=1,FORMAT=AL,ACTION=TL FD NAME=FIELD2,LENGTH=30,STARTLOC=31,FORMAT=AL,ACTION=TR FD NAME=FIELD3,LENGTH=10,STARTLOC=71,PICTURE=10, X P'1234567890',INDEX=1 CREATE QUANTITY=500,NAME=(FIELD1,FIELD2,FIELD3),FILL=X'FF' END /* //********************************************************************** //* PRINTING THE TEST DATA TO SYSOUT //********************************************************************** //STEP2 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=*.STEP1.SEQOUT,DISP=SHR //SYSIN DD DUMMY //SYSUT2 DD SYSOUT=* //********************************************************************** //* DELETE THE CREATED DATASET, EVEN IF PREVIOUS STEPS ABENDED //********************************************************************** //DLSTEP EXEC PGM=IEFBR14,COND=EVEN //DDDEL DD DSN=&SYSUID..MVSUT.SEQOUT,DISP=(OLD,DELETE,DELETE) // IEBEDIT IEBEDIT selectively copies portions of JCL. An example of an IEBEDIT program: //IEBEDITJ JOB ACCT,'',CLASS=P,MSGCLASS=T,MSGLEVEL=(1,1),NOTIFY=&SYSUID //STEP0001 EXEC PGM=IEBEDIT //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=xxxxx.yyyyy.zzzzz,DISP=SHR //SYSUT2 DD SYSOUT=(*,INTRDR) //SYSIN DD * EDIT TYPE=INCLUDE,STEPNAME=(STEP10,STEP5,STEP15) /* // In this example, data set xxxxx.yyyyy.zzzzz should contain job(s) (which should include steps named STEP5, STEP10, and STEP15). This IEBEDIT routine copies the selected steps of the job onto the SYSUT2 output file (in this example, the internal reader). The syntax of the EDIT statement is: [label] EDIT [START=jobname] [,TYPE={POSITION|INCLUDE|EXCLUDE}] [,STEPNAME=(namelist)] [,NOPRINT] START=jobname specifies the name of the input job to which the EDIT statement applies. Each EDIT statement must apply to a separate job. If START is specified without TYPE and STEPNAME, the JOB statement and all job steps for the specified job are included in the output. Default: If START is omitted and only one EDIT statement is provided, the