Edit File with Labels Example


Scenario - Edit and copy a sequential input data set with labels.

Input PS File - MATEPK.IEBGENER.INPUTPS1

----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
.A                       EMPLOYEE DETAILS                               
.B EMPNO   EMPNAME             DESGN     DEPTNAME  LOCATION  SALARY     
.C******************************************************************************
   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 
.D******************************************************************************
.E TOTAL EMPLOYEES: 7

Code -

----+----1----+----2----+----3----+----4----+----5----+
//MATEPKL  JOB (123),'MTH',CLASS=A,MSGCLASS=A,
//             MSGLEVEL=(1,1),NOTIFY=&SYSUID
//***********************************************************
//* EDIT AND COPY A SEQUENTIAL INPUT DATA SET WITH LABELS
//***********************************************************
//STEP10   EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1   DD DSN=MATEPK.IEBGENER.INPUTPS1,DISP=SHR
//SYSUT2   DD DSN=MATEPK.IEBGENER.OUTPUTL,
//            DISP=(NEW,CATLG,DELETE),
//            SPACE=(TRK,(10,10),RLSE),
//            UNIT=3390,VOL=SER=DEVHD4,
//            DCB=(DSORG=PS,RECFM=FB,LRECL=80,BLKSIZE=800)
//SYSIN    DD  *
  GENERATE MAXFLDS=3,MAXLITS=10
    RECORD FIELD=(5,'=====',,1),
           FIELD=(70,1,,6),
           FIELD=(5,'=====',,76)
    LABELS DATA=INPUT
    RECORD LABELS=3
    .A .B .C
    RECORD LABELS=2
    .D .E
/* 

Output - MATEPK.IEBGENER.OUTPUTL

----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
=====.A                       EMPLOYEE DETAILS                             =====
=====.B EMPNO   EMPNAME             DESGN     DEPTNAME  LOCATION  SALARY   =====
=====.C********************************************************************=====
=====   E0001   EMPLOYEE1           DIR                 LOC1      000010000=====
=====   E0002   EMPLOYEE2           MGR       DEPT1     LOC1      000008000=====
=====   E0003   EMPLOYEE3           MGR       DEPT2     LOC2      000007500=====
=====   E0004   EMPLOYEE4           TL        DEPT1     LOC1      000005000=====
=====   E0005   EMPLOYEE5           SSE       DEPT1     LOC1      000004500=====
=====   E0006   EMPLOYEE6           SE        DEPT1     LOC1      000003400=====
=====   E0007   EMPLOYEE7           SSE       DEPT2     LOC2      000004600=====
=====.D********************************************************************=====
=====.E TOTAL EMPLOYEES: 7                                                 =====

Explaining Example -

  • SYSUT1 DD maps the input data set (MATEPK.IEBGENER.INPUTPS).
  • SYSUT2 DD defines the output partitioned data set (MATEPK.IEBGENER.OUTPDS).
  • SYSIN DD defines the control data set.
  • GENERATE MAXFLDS=3,MAXLITS=10 indicates a maximum of three fields and 10 literals are included in RECORD statements.
  • RECORD FIELD=(5,'=====',,1) specifies the '=====' should filled in the output file from 1-5 positions.
  • FIELD=(70,1,,6) specifies the input data (1-70 positions in input file) filled from 6th column(in output file).
  • FIELD=(5,'=====',,76) specifies the '=====' should filled in the output file from 76-80 positions.
  • LABELS DATA=INPUT specifies that the labels are included in the input.
  • RECORD LABELS=3 specifies that 3 header lables should copy to output.
  • .A .B .C specifies the header lables that should copy to output.
  • RECORD LABELS=2 specifies that 2 footer lables should copy to output.
  • .D .E specifies the footer lables that should copy to output.