Creating an Edited Data Set
Creating an Edited Data Set (for Experienced)
Summary
For basic information, go through the Performing Tasks (for Beginners)
- IEBGENER can create an edited sequential or PDS or PDSE.
- IEBGENER can specify editing information that applies to a record, a group of records, selected groups of records, or an entire data set.
Below are scenarios when the edited dataset is created -
- Rearranging or ignoring defined data fields within a record.
- Supplying literal information as replacement data.
- Converting data from one format to another (i.e., packed decimal to unpacked decimal mode, unpacked decimal to packed decimal mode, or BCDIC to EBCDIC mode).
- Adding or deleting shift-out/shift-in characters X'0E' and X'0F'.
Example -
Requirement - Create new PS with different 40 length and copy data(1-29 bytes and 60-70 bytes) from PDS member.
Input PS File - MATEPK.IEBGENER.NEWPDS(BACKUPPS)
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
********************************* Top of Data **********************************
E0001 EMPLOYEE1 DIR LOC1 0000100000
E0002 EMPLOYEE2 MGR DEPT1 LOC1 0000080000
E0003 EMPLOYEE3 MGR DEPT2 LOC2 0000075000
E0004 EMPLOYEE4 TL DEPT1 LOC1 0000050000
E0005 EMPLOYEE5 SSE DEPT1 LOC1 0000045000
E0006 EMPLOYEE6 SE DEPT1 LOC1 0000034000
E0007 EMPLOYEE7 SSE DEPT2 LOC2 0000046000
******************************** Bottom of Data ********************************
Code -
***************************** Top of Data ******************************
//MATEPKC JOB (123),'MTH',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//**********************************************************************
//* COPY PDS MEMBER DATA TO PS WITH EMPNO, EMPNAME AND SALARY
//**********************************************************************
//STEP10 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=MATEPK.IEBGENER.NEWPDS(BACKUPPS),DISP=SHR
//SYSUT2 DD DSN=MATEPK.IEBGENER.OPDS2,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(10,10),RLSE),
// UNIT=3390,VOL=SER=DEVHD4,
// DCB=(DSORG=PS,RECFM=FB,LRECL=40,BLKSIZE=400)
//SYSIN DD *
GENERATE MAXFLDS=2,MAXGPS=1
RECORD FIELD=(29,1,,1),
FIELD=(10,60,,30)
RECORD IDENT=(5,'E0005',1)
/*
**************************** Bottom of Data ****************************
Output - MATEPK.IEBGENER.OUTPUT1
VIEW MATEPK.IEBGENER.OPDS2 Columns 00001 00040
Command ===> Scroll ===> CSR
=COLS> ----+----1----+----2----+----3----+----4
****** ***************************** Top of Data ******************************
000001 E0001 EMPLOYEE1 0000100000
000002 E0002 EMPLOYEE2 0000080000
000003 E0003 EMPLOYEE3 0000075000
000004 E0004 EMPLOYEE4 0000050000
000005 E0005 EMPLOYEE5 0000045000
****** **************************** Bottom of Data ****************************
Explaining Example -
- SYSUT1 DD maps the input data set (MATEPK.IEBGENER.INPUTPS).
- SYSUT2 DD specifies the output file MATEPK.IEBGENER.OUTPUT1 with record length 70.
- SYSIN DD specifies the control data set as DUMMY to identify no control statements are used.
- GENERATE MAXFLDS=2,MAXGPS=1 indicates a maximum of two fields and 1 INDENT uses in subsequent control statements.
- RECORD FIELD=(29,1,,1) specifies 1-29 bytes should place from the 1st byte in output file.
- FIELD=(10,60,,30) specifies 60-70 bytes should place from the 30th byte in output file.
- RECORD IDENT=(5,'E0005',1) specifies copy upto the record having 'E0005' in the 1-5 positions.