Very cool. I obviously had no understanding of what the ? option was really to be used for. :-) Now I have the following, that at a glance appears to be working
//SYMNAMES DD * CHR-PAN-ACCOUNT,6,19,CH CHR-PIC-CNT,1223,1,PD CHR-ISSUE-CNT,1224,1,PD CHR-CNT-DATE,1228,3,PD CHR-FEE-BILL-AMT,1234,2,PD CHS-PAN-ACCOUNT,1,19,CH CHS-CNT-DATE,20,3,PD CHS-PIC-CNT,23,2,PD CHS-ISSUE-CNT,25,2,PD CHS-FEE-BILL-AMT,27,3,PD INT-CHR-PAN-ACCOUNT,1,19,CH INT-CHR-CNT-DATE,*,3,PD INT-CHR-PIC-CNT,*,2,PD INT-CHR-ISSUE-CNT,*,2,PD INT-CHR-FEE-BILL-AMT,*,3,PD INT-CHS-CNT-DATE,*,3,PD INT-CHS-FEE-BILL-AMT,*,3,PD INT-FLAG,*,1,CH //JNF1CNTL DD * INREC BUILD=(CHR-PAN-ACCOUNT,CHR-CNT-DATE, CHR-PIC-CNT,TO=PD,LENGTH=2, CHR-ISSUE-CNT,TO=PD,LENGTH=2, CHR-FEE-BILL-AMT,TO=PD,LENGTH=3) //SYSIN DD * * Control statements for JOINKEYS application JOINKEYS F1=CHFIN,FIELDS=(CHS-PAN-ACCOUNT,A),SORTED,NOSEQCK JOINKEYS F2=CHSIN,FIELDS=(CHS-PAN-ACCOUNT,A),SORTED,NOSEQCK JOIN UNPAIRED,F1 REFORMAT FIELDS=(F1:CHS-PAN-ACCOUNT,CHS-CNT-DATE, CHS-PIC-CNT,CHS-ISSUE-CNT,CHS-FEE-BILL-AMT, F2:CHS-CNT-DATE,CHS-FEE-BILL-AMT,?) * Control statements for main task (joined records) OPTION COPY OUTREC IFTHEN=(WHEN=(INT-FLAG,EQ,C'1'), BUILD=(INT-CHR-PAN-ACCOUNT, INT-CHR-CNT-DATE, INT-CHR-PIC-CNT, INT-CHR-ISSUE-CNT, INT-CHR-FEE-BILL-AMT)), IFTHEN=(WHEN=(INT-FLAG,EQ,C'B'), BUILD=(INT-CHR-PAN-ACCOUNT, INT-CHS-CNT-DATE, INT-CHR-PIC-CNT, INT-CHR-ISSUE-CNT, INT-CHS-FEE-BILL-AMT)), IFOUTLEN=29 OUTFIL FNAMES=CHSOUT,FTOV I added a JNF1CNTL to reformat the input records into the same format as file 2 and the output records, rather than doing it inside both IFTHEN/WHENs. I also had to add an IFOUTLEN so that the output record was not padded with spaces to make up for the two fields that were not part of the output record. Great! I had a feeling that an IFTHEN/WHEN was required, but I was looking to put if on the REFORMAT statement, and it wasn't allowed. Didn't occur to me to put it on an OUTREC, but now it seems "obvious". :-) Thanks! Frank >________________________________ > From: Frank Yaeger <yae...@us.ibm.com> >To: IBM-MAIN@bama.ua.edu >Sent: Monday, December 5, 2011 2:52 PM >Subject: Re: DFSORT JOINKEYS question > >Frank Swarbuck on IBM Mainframe Discussion List <IBM-MAIN@bama.ua.edu> >wrote on 12/05/2011 11:43:27 AM: >> Can DFSORT be used to do the following? >> ... > >Frank, > >If I understand correctly what you want to do, you can use a DFSORT >JOINKEYS job like the >following to do it. Note the use of ? in REFORMAT as an indicator. > >//SORT1 EXEC PGM=SORT >//SYMNAMES DD * >CHR-PAN-ACCOUNT,6,19,CH >CHR-PIC-CNT,1223,1,PD >CHR-ISSUE-CNT,1224,1,PD >CHR-CNT-DATE,1228,3,PD >CHR-FEE-BILL-AMT,1234,2,PD >CHS-PAN-ACCOUNT,1,19,CH >CHS-CNT-DATE,20,3,PD >CHS-PIC-CNT,23,2,PD >CHS-ISSUE-CNT,25,2,PD >CHS-FEE-BILL-AMT,27,3,PD >INT-CHR-PAN-ACCOUNT,1,19,CH >INT-CHR-CNT-DATE,*,3,PD >INT-CHR-PIC-CNT,*,1,PD >INT-CHR-ISSUE-CNT,*,1,PD >INT-CHR-FEE-BILL-AMT,*,2,PD >INT-CHS-CNT-DATE,*,3,PD >INT-CHS-FEE-BILL-AMT,*,3,PD >INT-FLAG,*,1,CH >//SYMNOUT DD SYSOUT=* >//CHFIN DD DISP=SHR,DSN=DVFJS.CVSC.CVSCHF >//CHSIN DD DISP=SHR,DSN=DEVA.CVSC.CHS >//CHSOUT DD DISP=SHR,DSN=DEVC.CVSC.CHS >//SYSIN DD * >* CONTROL STATEMENTS FOR JOINKEYS APPLICATION > JOINKEYS F1=CHFIN,FIELDS=(CHR-PAN-ACCOUNT,A),SORTED,NOSEQCK > JOINKEYS F2=CHSIN,FIELDS=(CHS-PAN-ACCOUNT,A),SORTED,NOSEQCK > JOIN UNPAIRED,F1 > REFORMAT FIELDS=(F1:CHR-PAN-ACCOUNT,CHR-CNT-DATE, > CHR-PIC-CNT,CHR-ISSUE-CNT,CHR-FEE-BILL-AMT, > F2:CHS-CNT-DATE,CHS-FEE-BILL-AMT,?) >* CONTROL STATEMENTS FOR MAIN TASK (JOINED RECORDS) > OPTION COPY > OUTREC IFTHEN=(WHEN=(INT-FLAG,EQ,C'1'), > BUILD=(INT-CHR-PAN-ACCOUNT, > INT-CHR-CNT-DATE, > INT-CHR-PIC-CNT,TO=PD,LENGTH=2, > INT-CHR-ISSUE-CNT,TO=PD,LENGTH=2, > INT-CHR-FEE-BILL-AMT,TO=PD,LENGTH=3)), > IFTHEN=(WHEN=(INT-FLAG,EQ,C'B'), > BUILD=(INT-CHR-PAN-ACCOUNT, > INT-CHS-CNT-DATE, > INT-CHR-PIC-CNT,TO=PD,LENGTH=2, > INT-CHR-ISSUE-CNT,TO=PD,LENGTH=2, > INT-CHS-FEE-BILL-AMT,TO=PD,LENGTH=3)) > OUTFIL FNAMES=CHSOUT,FTOV >/* > > >Frank Yaeger - DFSORT Development Team (IBM) - yae...@us.ibm.com >Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration > >=> DFSORT/MVS is on the Web at http://www.ibm.com/storage/dfsort > >---------------------------------------------------------------------- >For IBM-MAIN subscribe / signoff / archive access instructions, >send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO >Search the archives at http://bama.ua.edu/archives/ibm-main.html > > > ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html