IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Change second record based on value in the first record


IBM Mainframe Forums -> DFSORT/ICETOOL
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
anatol

Active User


Joined: 20 May 2010
Posts: 121
Location: canada

PostPosted: Thu Aug 06, 2015 12:04 am
Reply with quote

Is it possible?

I have file ( 80 char) with paired records by first 5 positions

INPUT:

Code:

AP060 11111  11111 11111111                       
AP060 2 2    2 22   22 2                           
AP000 11111  11111 11111111 11111111111           
AP000 2 2    2 22   22 2      22 2                 


can sort change blanks to asterisks in second record if that position in first record is not blank

OUTPUT:
Code:

AP060 11111  11111 11111111                           
AP060 2*2**  2*22* *22*2***                           
AP000 11111  11111 11111111 11111111111               
AP000 2*2**  2*22* *22*2*** **22*2*****               


Thanks
Back to top
View user's profile Send private message
RahulG31

Active User


Joined: 20 Dec 2014
Posts: 446
Location: USA

PostPosted: Thu Aug 06, 2015 12:49 am
Reply with quote

Do the blanks/asterisks in the second record have fixed positions ?
Back to top
View user's profile Send private message
anatol

Active User


Joined: 20 May 2010
Posts: 121
Location: canada

PostPosted: Thu Aug 06, 2015 12:56 am
Reply with quote

No, the blanks position in second records not in fix position, could be in any position
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Thu Aug 06, 2015 2:22 am
Reply with quote

Use WHEN=GROUP with KEYBEGIN to PUSH the data from the first record to a temporary extension, along with a SEQ=1.

If the PUSHed SEQ=2, and PUSHed data (one position at a time) not equal to space and data on record 2 (one position at a time) equal to space, set that position to *.

You'll need 75 IFTHEN=(WHEN=(logicalexpression) with HIT=NEXT.

Is that data only 1s or 2s, or is that just your example?
Back to top
View user's profile Send private message
RahulG31

Active User


Joined: 20 Dec 2014
Posts: 446
Location: USA

PostPosted: Thu Aug 06, 2015 2:25 am
Reply with quote

A simple thing I could think of is:
Use When=Group, Records=2 and Push the entire first record (80 bytes) to 81 - 160. Then check if position 81 has a value but position 1 have a space; Overlay the space at position 1 with '*'. In the end Build only 1:80.

You'll have to check for all the possible 80 positions. So, the sort card gets repetitive and lengthy.

I am not sure if there is an easier way since the positions of blanks/asterisks on the second record are not fixed.
Back to top
View user's profile Send private message
anatol

Active User


Joined: 20 May 2010
Posts: 121
Location: canada

PostPosted: Thu Aug 06, 2015 2:27 am
Reply with quote

thank you, I will try .... the file is just sample
Back to top
View user's profile Send private message
anatol

Active User


Joined: 20 May 2010
Posts: 121
Location: canada

PostPosted: Thu Aug 06, 2015 5:56 am
Reply with quote

great.. it worked ... sort is a king of a software
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> DFSORT/ICETOOL

 


Similar Topics
Topic Forum Replies
No new posts How to split large record length file... DFSORT/ICETOOL 10
No new posts SFTP Issue - destination file record ... All Other Mainframe Topics 2
No new posts FINDREP - Only first record from give... DFSORT/ICETOOL 3
No new posts To find whether record count are true... DFSORT/ICETOOL 6
No new posts Validating record count of a file is ... DFSORT/ICETOOL 13
Search our Forums:

Back to Top