Portal | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref

Author Message
anatol

Active User

Joined: 20 May 2010
Posts: 121

Posted: Thu Aug 06, 2015 12:04 am    Post subject: Change second record based on value in the first record

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

RahulG31

Active User

Joined: 20 Dec 2014
Posts: 447
Location: USA

 Posted: Thu Aug 06, 2015 12:49 am    Post subject: Reply to: Change second record based on value in the first record Do the blanks/asterisks in the second record have fixed positions ?
anatol

Active User

Joined: 20 May 2010
Posts: 121

 Posted: Thu Aug 06, 2015 12:56 am    Post subject: Reply to: Change second record based on value in the first record No, the blanks position in second records not in fix position, could be in any position
Bill Woodger

DFSORT Moderator

Joined: 09 Mar 2011
Posts: 7312

 Posted: Thu Aug 06, 2015 2:22 am    Post subject: Reply to: Change second record based on value in the first record 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?
RahulG31

Active User

Joined: 20 Dec 2014
Posts: 447
Location: USA

 Posted: Thu Aug 06, 2015 2:25 am    Post subject: Reply to: Change second record based on value in the first record 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.
anatol

Active User

Joined: 20 May 2010
Posts: 121

 Posted: Thu Aug 06, 2015 2:27 am    Post subject: Reply to: Change second record based on value in the first record thank you, I will try .... the file is just sample
anatol

Active User

Joined: 20 May 2010
Posts: 121