• Rajesh A R

F1 for Mainframe

F1 for Mainframe

Tag Archives: ifthen

SORT – FINDREP, IFTHEN and INREC

27 Tuesday Mar 2012

Posted by rajeshar in SORT

≈ 1 Comment

Tags

findrep, ifthen, inrec, mainframe, SORT

SORT – FINDREP, IFTHEN and INREC

  1. FINDREP

    Using SORT, you can FIND a value and REPLACE it with another value.

Suppose you have your input file as below:

RAJESH TML

RAMS TML

SUNIL TML

SURESH TML

And you want your output file in this format

RAJESH TPT

RAMS TPT

SUNIL TPT

SURESH TPT

Your SORT card would look like below:

OPTION COPY

OUTREC FINDREP=(IN=C’TML’,OUT=C’TPT’)

Or

OPTION COPY

OUTREC FINDREP=(INOUT=(C’TML’,C’TPT’)

FINDREP is used to find and replace the input record
IN Tells the field that needs to be found
OUT Tells the field that needs to be replaced with
INOUT Specifies both find and replace strings in order
  1. IFTHEN

    You can use five types of IFTHEN clauses as follows:

    WHEN=INIT: Use one or more WHEN=INIT clauses to apply BUILD, FINDREP or OVERLAY items to all of your input records.

    WHEN=GROUP: Use one or more WHEN=GROUP clauses to propagate fields, identifiers and sequence numbers within groups of records.

    WHEN=(logexp): Use one or more WHEN=(logexp) clauses to apply BUILD, FINDREP or OVERLAY items to the subset of your records that satisfy a specified logical expression.

    WHEN=ANY: Use a WHEN=ANY clause after multiple WHEN=(logexp) clauses to apply additional BUILD, FINDREP or OVERLAY items to your records if they satisfied the criteria for any of the preceding WHEN=(logexp) clauses.

    WHEN=NONE: Use one or more WHEN=NONE clauses to apply BUILD, FINDREP or OVERLAY items to your records that did not meet the criteria for any of the WHEN=(logexp) clauses.

    Sample JCL:

    Input File

RAJESH

RAMS

SURI

SUNIL

And you want your output file in this format

RAJESH FRIEND BTECH

RAMS FRIEND MCA

SURI FRIEND MSC

SUNIL FRIEND BE

Your SORT card would look like below:

OPTION COPY

OUTREC IFTHEN=(WHEN=INIT,BUILD=(1,7,C’FRIEND’,20X),

IFTHEN=(WHEN=(1,7,CH,EQ,C’RAJESH’,OVERLAY=(15:C’BTECH’)),

IFTHEN=(WHEN=(1,7,CH,EQ,C’RAMS’,OVERLAY=(15:C’MCA’)),

IFTHEN=(WHEN=(1,7,CH,EQ,C’SURI’,OVERLAY=(15:C’MSC’)),

     IFTHEN=(WHEN=NONE,OVERLAY=(15:C’BE’)))

Example to use WHEN=GROUP

Suppose you want to write only the records between HDR and TRL into the output file.

Your input file looks like below

HDR VARUN

001 SRI

002 RAJESH

TRL RAMS

TMP SURI

HDR SUNIL

001 CHIRU

TRL PAVAN

TP1 PRAVEEN

OPTION COPY

OUTREC IFTHEN=(WHEN=GROUP,BEGIN=(1,3,CH,EQ,C’HDR’),

END=(1,3,CH,EQ,C’TRL’),PUSH=(21:ID=1))

OUTFIL INCLUDE=(21,1,CH,NE,C’ ‘),BUILD=(1,20)

PUSH overlays a 1-byte ID character at position 21 in each record of a group (after the end of the record).

After the IFTHEN GROUP clause is executed, the intermediate records look like this

HDR VARUN 1

001 SRI 1

002 RAJESH 1

TRL RAMS 1

TMP SURI

HDR SUNIL 2

001 CHIRU 2

TRL PAVAN 2

TP1 PRAVEEN

Your output file will be like below due to the OUTFIL statement

OUTFIL INCLUDE=(21,1,CH,NE,C’ ‘),BUILD=(1,20)

HDR VARUN

001 SRI

002 RAJESH

TRL RAMS

HDR SUNIL

001 CHIRU

TRL PAVAN

  1. INREC
    INREC reformats the records before they are sorted, so the SORT and SUM statements must refer to the reformatted records as they will appear in the output data set.

    If you want to sort your input file based on bytes 11-15 and write only the bytes 11-20 into the output file.

    INREC FIELDS=(11,10)

    SORT FIELDS=(1,5,CH,A)

    OUTREC FIELDS=(1,10)

    Instead of

    SORT FIELDS=(11,5,CH,A)

    OUTREC FIELDS=(11,10)

    ——————————————————————————————————–

    In United States, If you would like to Earn Free Stocks, Credit card Points and Bank account Bonuses, Please visit My Finance Blog

    ——————————————————————————————————–

    You may also like to look at:

    Working on Mainframes – Is Change to a different technology necessary
    Important SQL CODES and ABEND CODES
    SORT JOIN – TO JOIN TWO FILES BASED ON A KEY
    KNOW YOUR MAINFRAME
    REXX – INITIAL SETUP
    SAS – SAMPLE PROGRAM
    SORT – CONVERT PD to ZD IN DISPLAYABLE FORMAT (ZDF)
    SORT – Alphanumeric Tests for INCLUDE and OMIT
    SORT – EQUALS Option
    SORT – PARSE – REFORMAT VARIABLE FIELDS
    SORT – FINDREP, IFTHEN and INREC
    SORT – JUSTIFY, SQUEEZE and OVERLAY
    SORT – LOOKUP AND CHANGE
    SORT – CONVERT PD to ZD and BI to ZD
    SORT – OUTREC – TRAN
    SORT – OUTREC – INSERT ZEROES, BLANKS, STRINGS
    SORT – OUTPUT DATASET DCB (LRECL,RECFM,BLKSIZE)
    SORT – INCLUDE and OMIT
    SORT – Process Order of CONTROL Statements
    SORT – How to use VB dataset (VLSHRT)
    SORT – EDIT MASK PATTERNS
    SORT – EDIT NUMERIC FIELDS (I,T,S)
    SORT – EDIT FIRST AND LAST RECORD
    SORT – SYMBOLS
    SORT – TO REPLACE A CHAR WITH ANOTHER CHAR – ALTSEQ
    SORT – SET RETURN CODE ‘04’ IF OUTPUT FILE IS EMPTY
    SORT – INREC, INCLUDE and OMIT
    SORT – SKIPREC and STOPAFT
    SORT – INREC
    SORT – SUM FIELDS
    SORT – REMOVE DUPLICATES AND WRITE THEM TO XSUM
    DFSORT – Informational and Error Messages
    SORT JOIN – UNPAIRED RECORDS INDICATOR
    SORT JOIN – TO JOIN TWO FILES BASED ON A KEY
    SORT JOB – SIMPLE COPY
    SORT TIPS
Advertisement

Rate this:

Subscribe

  • Entries (RSS)
  • Comments (RSS)

Archives

  • November 2020
  • July 2020
  • February 2020
  • January 2020
  • September 2019
  • August 2019
  • October 2018
  • April 2018
  • March 2018
  • December 2017
  • October 2017
  • August 2017
  • July 2017
  • June 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • May 2016
  • March 2016
  • February 2016
  • January 2016
  • May 2015
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • January 2013
  • December 2012
  • November 2012
  • April 2012
  • March 2012
  • February 2012
  • January 2012
  • April 2011
  • March 2011
  • August 2009
  • June 2009
  • April 2009

Categories

  • Azure
  • CA7
  • CICS
  • COBOL
    • Keywords
  • DB2
  • EASYTRIEVE
  • FILEAID
  • FILEMAXX
  • IMS
  • ISPF
  • JCL
  • KNOW YOUR MAINFRAME
  • Mainframe Migration
  • MAINFRAMES
  • Others
  • REXX
  • SDSF
  • SORT
  • Training
  • TSQL
  • VSAM

Meta

  • Register
  • Log in

Blog at WordPress.com.

  • Follow Following
    • F1 for Mainframe
    • Join 88 other followers
    • Already have a WordPress.com account? Log in now.
    • F1 for Mainframe
    • Customize
    • Follow Following
    • Sign up
    • Log in
    • Report this content
    • View site in Reader
    • Manage subscriptions
    • Collapse this bar