Hmmm ... seems to be some problem posting from Lotus Notes here today.  
So I'm trying again from the archives.

Note: I'm not unretired today - I don't retire until Thursday. :-)

Assuming ** will only appear as the last node, and * will never
appear as the first node, I think the DFSORT JOINKEYS job below 
will give you the output you want.  I set it up to do a maximum 
of 8 nodes, but if it does what you want, it can be extended to 
do more nodes.

I tested it with various patterns and dsnames I made up.  
I assumed I understood which dsnames you would want to 
include, but my understanding of the rules could be 
wrong.  If you find a pattern/dsname pair that doesn't
work, let me know what it is and what the rules are.

//S1 EXEC PGM=SORT        
//SYSOUT DD SYSOUT=*      
//IN1 DD DSN=...  pattern file (e.g. xxx.yyy.*.zzz.**)
//IN2 DD DSN=...  dsnames file (e.g. xxx.yyy.a.zzz.q.r)        
//SORTOUT DD DSN=...  output file                                           
//SYSIN DD *                                                    
  JOINKEYS F1=IN1,FIELDS=(101,8,A)                              
  JOINKEYS F2=IN2,FIELDS=(101,8,A)                              
  REFORMAT FIELDS=(F2:1,44,F1:201,8,F1:101,64,F2:101,64)                 
  INREC IFTHEN=(WHEN=(53,8,CH,EQ,117,8,CH),OVERLAY=(45:C'1'),    
    HIT=NEXT),                                                   
   IFTHEN=(WHEN=(46,1,CH,EQ,C'0',AND,                            
        61,8,CH,EQ,125,8,CH),OVERLAY=(46:C'1'),HIT=NEXT),        
   IFTHEN=(WHEN=(47,1,CH,EQ,C'0',AND,                            
        69,8,CH,EQ,133,8,CH),OVERLAY=(47:C'1'),HIT=NEXT),        
   IFTHEN=(WHEN=(48,1,CH,EQ,C'0',AND,                            
        77,8,CH,EQ,141,8,CH),OVERLAY=(48:C'1'),HIT=NEXT),        
   IFTHEN=(WHEN=(49,1,CH,EQ,C'0',AND,                            
        85,8,CH,EQ,149,8,CH),OVERLAY=(49:C'1'),HIT=NEXT),        
   IFTHEN=(WHEN=(50,1,CH,EQ,C'0',AND,                            
        93,8,CH,EQ,157,8,CH),OVERLAY=(50:C'1'),HIT=NEXT),        
   IFTHEN=(WHEN=(51,1,CH,EQ,C'0',AND,                            
       101,8,CH,EQ,165,8,CH),OVERLAY=(51:C'1'),HIT=NEXT),        
   IFTHEN=(WHEN=(52,1,CH,EQ,C'0',AND,                            
       109,8,CH,EQ,173,8,CH),OVERLAY=(52:C'1'))                  
   SORT FIELDS=(1,44,CH,A,45,8,CH,A),EQUALS                      
   SUM FIELDS=NONE                                               
   OUTFIL INCLUDE=(45,8,CH,EQ,C'11111111'),BUILD=(1,44)      
//JNF1CNTL DD *                                                  
  INREC IFTHEN=(WHEN=INIT,                                       
    PARSE=(%01=(ENDBEFR=C'.',FIXLEN=8),                          
           %02=(ENDBEFR=C'.',FIXLEN=8),                          
           %03=(ENDBEFR=C'.',FIXLEN=8),                          
           %04=(ENDBEFR=C'.',FIXLEN=8),                          
           %05=(ENDBEFR=C'.',FIXLEN=8),                          
           %06=(ENDBEFR=C'.',FIXLEN=8),                          
           %07=(ENDBEFR=C'.',FIXLEN=8),                          
           %08=(ENDBEFR=C'.',FIXLEN=8)),                         
      OVERLAY=(101:%01,%02,%03,%04,%05,%06,%07,%08,201:8C'0')),      
     IFTHEN=(WHEN=(109,2,CH,EQ,C'* '),OVERLAY=(202:C'1'),HIT=NEXT),  
     IFTHEN=(WHEN=(117,2,CH,EQ,C'* '),OVERLAY=(203:C'1'),HIT=NEXT),  
     IFTHEN=(WHEN=(125,2,CH,EQ,C'* '),OVERLAY=(204:C'1'),HIT=NEXT),  
     IFTHEN=(WHEN=(133,2,CH,EQ,C'* '),OVERLAY=(205:C'1'),HIT=NEXT),  
     IFTHEN=(WHEN=(141,2,CH,EQ,C'* '),OVERLAY=(206:C'1'),HIT=NEXT),  
     IFTHEN=(WHEN=(149,2,CH,EQ,C'* '),OVERLAY=(207:C'1'),HIT=NEXT),  
     IFTHEN=(WHEN=(157,2,CH,EQ,C'* '),OVERLAY=(208:C'1'),HIT=NEXT),  
     IFTHEN=(WHEN=(109,2,CH,EQ,C'**'),OVERLAY=(202:7C'1')),          
     IFTHEN=(WHEN=(117,2,CH,EQ,C'**'),OVERLAY=(203:6C'1')),          
     IFTHEN=(WHEN=(125,2,CH,EQ,C'**'),OVERLAY=(204:5C'1')),          
     IFTHEN=(WHEN=(133,2,CH,EQ,C'**'),OVERLAY=(205:4C'1')),          
     IFTHEN=(WHEN=(141,2,CH,EQ,C'**'),OVERLAY=(206:3C'1')),          
     IFTHEN=(WHEN=(149,2,CH,EQ,C'**'),OVERLAY=(207:2C'1')),          
     IFTHEN=(WHEN=(157,2,CH,EQ,C'**'),OVERLAY=(208:C'1'))    
//JNF2CNTL DD *                                            
  INREC IFTHEN=(WHEN=INIT,                                 
    PARSE=(%01=(ENDBEFR=C'.',FIXLEN=8),                    
           %02=(ENDBEFR=C'.',FIXLEN=8),                    
           %03=(ENDBEFR=C'.',FIXLEN=8),                    
           %04=(ENDBEFR=C'.',FIXLEN=8),                    
           %05=(ENDBEFR=C'.',FIXLEN=8),                    
           %06=(ENDBEFR=C'.',FIXLEN=8),                    
           %07=(ENDBEFR=C'.',FIXLEN=8),                    
           %08=(ENDBEFR=C'.',FIXLEN=8)),                   
      OVERLAY=(101:%01,%02,%03,%04,%05,%06,%07,%08))      
/*         

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: INFO IBM-MAIN

Reply via email to