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

Reply via email to