OUTREC: Extending records with OVERLAY


  • OVERLAY parameter can be used to extend your output record without affecting the rest of the record.

Syntax -


OPTION COPY
OUTREC OVERLAY=(Extending position of field1 in o/p file,
		Starting position of field1 in i/p file, Length of field1,overlay operation,…)
Extending position of field1 in o/p fileSpecifies field1 extending position in the output file after sorting.
Starting position of field1 in i/p file Specifies field1 starting position in the input file after sorting.
Length of feild1Field1 physical length in input file.
Overlay operationSpecifies the overlay operation
Note! The OVERLAY parameter of the OUTREC statement can be used to overlay specified columns with reformatting items, without affecting the rest of your reformatted record.
All of these reformatting features can be used with the OVERLAY parameter of the INREC statement and OUTFIL statement, as well as with the OUTREC statement.

Example -


Scenario - Overlay dept with DEPT in all rows and multiply marks with 10 and place the result from 85th position (extending the record length to 88).

Input File - MTHUSER.SORT.INPUT01 - FB file of 80 length

----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
********************************* Top of Data **********************************
00001     student1           dept1          560                                 
00003     student3           dept2          520                                 
00004     student4           dept1          540                                 
00005     student5           dept2          500                                 
00002     student2           dept3          510                                 
******************************** Bottom of Data ********************************

JCL -

----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
***************************** Top of Data ******************************
//Job-card 
//*                                                                     
//**********************************************************************
//*                                                                     
//* SORT FOR OUTREC STATEMENT                                           
//*                                                                     
//**********************************************************************
//STEP01   EXEC PGM=SORT                                                
//SORTIN   DD DSN=MTHUSER.SORT.INPUT01,DISP=SHR                    
//SORTOUT  DD SYSOUT=*                                                  
//SYSOUT   DD SYSOUT=*                                                  
//SYSIN    DD *                                                         
     OPTION COPY                                                        
     OUTREC OVERLAY=(30:30,4,TRAN=LTOU,                                 
                    85:45,3,ZD,MUL,+10,TO=ZD,LENGTH=4)                  
/*                                                                      
**************************** Bottom of Data ****************************

Output -

-----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+---
********************************* TOP OF DATA *******************************************
 00001     student1           DEPT1          560                                     5600
 00003     student3           DEPT2          520                                     5200
 00004     student4           DEPT1          540                                     5400
 00005     student5           DEPT2          500                                     5000
 00002     student2           DEPT3          510                                     5100
******************************** BOTTOM OF DATA ******************************** *********

Explaining Example -

  1. OUTREC OVERLAY=(30:30,4,TRAN=LTOU,..) - Converts the data lower to upper from 30th position of length 4 and writes to output from 30th position.
  2. OUTREC OVERLAY=(..,85:45,3,ZD,MUL,+10,TO=ZD,LENGTH=4) - the data from 45th byte multiplies with 10 and writes the result to output of the length 4 from 85th position.
Note! The OVERLAY parameter of the OUTREC statement can be used to overlay specified columns with reformatting items, without affecting the rest of your reformatted record.
All of these reformatting features can be used with the OVERLAY parameter of the INREC statement and OUTFIL statement, as well as with the OUTREC statement.