Quote: |
1234567891000022000 2344554444439990002 1234567891000022002 2344554444439990402 1234567891000022005 2344554444439990023 . . |
Quote: |
00hkhkjlk 01jjkhlkjl 05HITHIS 0106876328762378798KJKJKJ;LK;L2344554444439990002 02klkjflj 05HITHIS 0106876328788378798KJKJaaa 05HITHIS 0106876328788378798KJKJKJ;LK;L2344554444439990333 09njkjlkj . . |
Quote: |
00hkhkjlk 01jjkhlkjl 05HITHIS 1234567891000022000KJKJKJ;LK;L2344554444439990002 02klkjflj 05HITHIS 1234567891000022002KJKJaaa 05HITHIS 1234567891000022005KJKJKJ;LK;L2344554444439990023 09njkjlkj . . |
Srishti Rawat wrote: |
For all the records starting with '05' in File2, we want to replace the records starting from position 10 with first field of File1 and if records starting from position 40 is not spaces than replace with second field of File1. |
Kolusu wrote: |
what are the DCB properties of file 1 and file 2? |
Code: |
//STEP0100 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //INA DD DISP=SHR,DSN=Your.Input.FB.LRECL.1224.dataset //INB DD DISP=SHR,DSN=Your.Input.FB.LRECL.0080.dataset //SORTOUT DD DSN=Your.output.file, // DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(X,Y),RLSE) //SYSIN DD * JOINKEYS F1=INA,FIELDS=(1235,8,A) JOINKEYS F2=INB,FIELDS=(0001,8,A),SORTED,NOSEQCK JOIN UNPAIRED,F1 REFORMAT FIELDS=(F1:0001,1234, ?, F2:09,40) INREC IFOUTLEN=1234, IFTHEN=(WHEN=(1235,01,CH,EQ,C'B'), OVERLAY=(10:1237,19, 40:40,19,CHANGE=(19,C' ',C' '), NOMATCH=(1257,19))) SORT FIELDS=(1225,8,CH,A) OUTREC BUILD=(01,1224) /* //JNF1CNTL DD * INREC IFTHEN=(WHEN=INIT,OVERLAY=(1225:SEQNUM,8,ZD)), IFTHEN=(WHEN=(01,02,CH,EQ,C'05'), OVERLAY=(1235:SEQNUM,8,ZD)) /* //JNF2CNTL DD * INREC BUILD=(SEQNUM,8,ZD,X,01,40) /* |
Code: |
//JNF1CNTL DD * INREC IFTHEN=(WHEN=INIT,OVERLAY=(1225:SEQNUM,8,ZD)), IFTHEN=(WHEN=(01,02,CH,EQ,C'05'), OVERLAY=(1235:SEQNUM,8,ZD)) IFTHEN=(WHEN=(01,02,CH,EQ,C'05',AND,40,19,CH,EQ,C' '), OVERLAY=(1245:SEQNUM,8,ZD)) |
Code: |
//JNF1CNTL DD * INREC IFTHEN=(WHEN=INIT,OVERLAY=(1225:SEQNUM,8,ZD)), IFTHEN=(WHEN=(01,02,CH,EQ,C'05',AND,40,19,CH,NE,C' '), OVERLAY=(1235:SEQNUM,8,ZD)) |
Srishti Rawat wrote: |
Hi Kolusu,
Thank you for the solution. Condition: Replace the records starting from position 10 with first field of File1 and if records starting from position 40 is not spaces than replace with second field of File1. But this is not working for the condition: 'if records starting from position 40 is not spaces than replace with second field of File1.' Right now this is replacing all the '05' records with second field of File1. |
Quote: |
05HITHIS 0106876328788378798KJKJaaa |
Quote: |
05HITHIS 1234567891000022002KJKJaaa |
Code: |
//STEP0100 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //INA DD * 00HKHKJLK 01JJKHLKJL 05HITHIS 0106876328762378798KJKJKJ;LK;L2344554444439990002 02KLKJFLJ 05HITHIS 0106876328788378798KJKJAAA 05HITHIS 0106876328788378798KJKJKJ;LK;L2344554444439990333 09NJKJLKJ //INB DD * 1234567891000022000 2344554444439990002 1234567891000022002 2344554444439990402 1234567891000022005 2344554444439990023 //SORTOUT DD SYSOUT=* //SYSIN DD * JOINKEYS F1=INA,FIELDS=(1235,8,A) JOINKEYS F2=INB,FIELDS=(0001,8,A) JOIN UNPAIRED,F1 REFORMAT FIELDS=(F1:0001,1234, ?, F2:09,40) INREC IFOUTLEN=1234, IFTHEN=(WHEN=(1235,01,CH,EQ,C'B'), OVERLAY=(10:1237,19, 40:40,19,CHANGE=(19,C' ',C' '), NOMATCH=(1257,19))) SORT FIELDS=(1225,08,CH,A) OUTREC BUILD=(01,1224) /* //JNF1CNTL DD * INREC IFTHEN=(WHEN=INIT,OVERLAY=(1225:SEQNUM,8,ZD)), IFTHEN=(WHEN=(01,02,CH,EQ,C'05'), OVERLAY=(1235:SEQNUM,8,ZD)) /* //JNF2CNTL DD * INREC BUILD=(SEQNUM,8,ZD,X,01,40) /* |
Srishti Rawat wrote: |
Hi Kolusu,
I made some changes in the positions that's why it wasn't working for me. This code is working. |
output generated using printer-friendly topic mod. All times are GMT - 5 Hours