Copy data by inserting literals Example


Scenario - Insert the literal "=====" in the place of 1-5 or 75-80 characters

Input PS File - MATEPK.IEBGENER.INPUTPS

----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
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

Code -

----+----1----+----2----+----3----+----4----+----5----+
//MATEPKR  JOB (123),'MTH',CLASS=A,MSGCLASS=A,
//             MSGLEVEL=(1,1),NOTIFY=&SYSUID
//*****************************************************
//* ADD '=====' BEFORE AND AFTER THE DATA
//*****************************************************
//STEP10   EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1   DD DSN=MATEPK.IEBGENER.INPUTPS,DISP=SHR
//SYSUT2   DD DSN=MATEPK.IEBGENER.OUTPUTPS,
//            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)
/*

Output - MATEPK.IEBGENER.OUTPUTPS

----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
=====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 =====

Explaining Example -

  • SYSUT1 DD maps the input file (MATEPK.IEBGENER.INPUTPS).
  • SYSUT2 DD defines the output PS file (MATEPK.IEBGENER.OUTPUTPS).
  • 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.