What would be cool is a regex pattern engine that DFSORT can invoke. So,
once the tiny detail of invoking the Java class using a (new, perhaps) Enn
exit is resolved, DFSORT will have regex support. :grin:

Nagesh

On Wed, May 30, 2012 at 3:27 AM, Frank Yaeger <[email protected]> wrote:

> 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
>

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to