## Module 8: JCL Sort & Merge

### OUTREC IF THEN clauses

Reformat different records in different ways by specifying how build, overlay, find/replace, or group operation items are applied to records that meet given criteria. IFTHEN clauses let you use sophisticated conditional logic to choose how different record types are reformatted.

Example :-

Input file:-

----+----1----+----2----+----3 JOHN MON 08000 AKSHAY TUE 10000 SMITH WED 25000 JOHN SUN 28000 STEVE MON 20000 VIJAY XXX 24000 VIJAY SUN 30000

Requirement: If input file have day-of-week as SUN or MON, then write ‘YES’ at 33 position of output file else write ‘NO’

JCL Code Solution:

//SORTSTEP EXEC PGM=SORT //SORTIN DD DSN=DEPT.EMPL.DATA.OUTPUT1,DISP=SHR //SORTOUT DD DSN=DEPT.EMPL.DATA.OUTPUT2, // DISP=(,CATLG,DELETE), // DCB=(RECFM=FB,LRECL=35,BLKSIZE=0), // UNIT=TEST,SPACE=(CYL,(50,10),RLSE) //SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSIN DD * SORT FIELDS=COPY OUTREC IFTHEN=(WHEN(11,3,CH,EQ,C'SUN'), - OVERLAY=(33:C'YES')), - IFTHEN=(WHEN(11,3,CH,EQ,C'MON'), - OVERLAY=(33:C'YES')), - IFTHEN=(WHEN=NONE,OVERLAY=(33:C'NO')) /*

Output file:

----+----1----+----2----+----3----+ JOHN MON 08000 YES AKSHAY TUE 10000 NO SMITH WED 25000 NO JOHN SUN 28000 YES STEVE MON 20000 YES VIJAY XXX 24000 NO VIJAY SUN 30000 YES

Explanation:

• Statement ‘SORT FIELDS=COPY’ is used here to indicate that all records will be copied from input file to output file.
• Next statement OUTREC IFTHEN is coded to specify that if field at position (11-13 i.e. length-3) contains string ‘SUN’ or ‘MON’ then it should write string ‘YES’ at 33 position of output file. If it is not matching, then string ‘NO' will be written.