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) - [email protected]
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 [email protected] with the message: INFO IBM-MAIN