OUTREC: Reformatting records with OVERLAY
OUTREC: Reformatting records with OVERLAY
Summary
- The reformatted output record one item at a time can be built with the BUILD or FIELDS parameter of the OUTREC statement.
- The OVERLAY parameter of the OUTREC statement used to change one or a few items.
Syntax -
OPTION COPY
OUTREC OVERLAY=(Starting position of field1 in o/p file,
Starting position of field1 in i/p file, Length of field1,overlay operation,…)
Starting position of field1 in o/p file | Specifies field1 starting 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 feild1 | Field1 physical length in input file. |
Overlay operation | Specifies the overlay operation |
Example -
Scenario - Overlay dept with DEPT in all rows and multiply marks with 10 and save the result in the same place.
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,
45: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 5600
00003 student3 DEPT2 5200
00004 student4 DEPT1 5400
00005 student5 DEPT2 5000
00002 student2 DEPT3 5100
******************************** BOTTOM OF DATA ********************************
Explaining Example -
- 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.
- OUTREC OVERLAY=(..,45: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 45th position.