MVSFORUMS.com A Community of and for MVS Professionals
View previous topic :: View next topic
Author
Message
cyberuser Beginner Joined: 15 Oct 2005 Posts: 29 Topics: 12
Posted: Tue Feb 13, 2007 1:13 pm Post subject: select only desire recs
Hello Everyone,
Would be possible to retrieve only the lines with "_______" and the first line above ?
Code:
FB/80 IN :
XYXYXYX ABC NNNN
XYXYXYX ABC NNNN
XYXYXYX ABC NNNN <- desired
_______ XYXYXYX <- desired
_______ XYXYXYX <- desired
XYXYXYX ABC NNNN
XYXYXYX ABC NNNN
XYXYXYX ABC NNNN <- desired
_______ XYXYXYX <- desired
XYXYXYX ABC NNNN <- desired
_______ XYXYXYX <- desired
_______ XYXYXYX <- desired
_______ XYXYXYX <- desired
FB/80 OUT :
XYXYXYX ABC NNNN
_______ XYXYXYX
_______ XYXYXYX
XYXYXYX ABC NNNN
_______ XYXYXYX
XYXYXYX ABC NNNN
_______ XYXYXYX
_______ XYXYXYX
_______ XYXYXYX
Any suggestions are welcome
Back to top
kolusu Site Admin Joined: 26 Nov 2002 Posts: 12378 Topics: 75 Location: San Jose
Posted: Tue Feb 13, 2007 3:11 pm Post subject:
cyberuser ,
Try this DFSORT/ICETOOL JCL.
Code:
//STEP0100 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN DD *
XYXYXYX ABC NNNN
XYXYXYX ABC NNNN
XYXYXYX ABC NNNN <- DESIRED
_______ XYXYXYX <- DESIRED
_______ XYXYXYX <- DESIRED
XYXYXYX ABC NNNN
XYXYXYX ABC NNNN
XYXYXYX ABC NNNN <- DESIRED
_______ XYXYXYX <- DESIRED
XYXYXYX ABC NNNN <- DESIRED
_______ XYXYXYX <- DESIRED
_______ XYXYXYX <- DESIRED
_______ XYXYXYX <- DESIRED
//OUT DD SYSOUT=*
//TOOLIN DD *
SPLICE FROM(IN) TO(OUT) WITHEACH -
ON(161,8,CH) -
WITH(081,80) -
KEEPNODUPS USING(CTL1)
//CTL1CNTL DD *
INREC IFTHEN=(WHEN=INIT,
OVERLAY=(001:01,80,
081:01,80,
161:SEQNUM,8,ZD,START=2,INCR=1,
169:161,8,ZD,MOD,+2,TO=ZD,LENGTH=1),HIT=NEXT),
IFTHEN=(WHEN=(169,1,ZD,EQ,0),
OVERLAY=(081:80X,
161:161,8,ZD,SUB,169,1,ZD,M11,LENGTH=8)),
IFTHEN=(WHEN=(169,1,ZD,EQ,1),
OVERLAY=(001:80X,
161:161,8,ZD,SUB,169,1,ZD,M11,LENGTH=8))
OUTFIL FNAMES=OUT,IFOUTLEN=80,
INCLUDE=(08,7,CH,EQ,C'_______',OR,
88,7,CH,EQ,C'_______'),
IFTHEN=(WHEN=(08,07,CH,EQ,C'_______',AND,
81,80,CH,EQ,C' '),
BUILD=(01,80)),
IFTHEN=(WHEN=NONE,
BUILD=(01,80,/,
81,80))
/*
Hope this helps...
Cheers
Kolusu _________________ Kolusu
www.linkedin.com/in/kolusu
Back to top
Frank Yaeger Sort Forum Moderator Joined: 02 Dec 2002 Posts: 1618 Topics: 31 Location: San Jose
Posted: Tue Feb 13, 2007 3:35 pm Post subject:
Note that you'll need z/OS DFSORT V1R5 PTF UK90007 or DFSORT R14 PTF UK90006 (April, 2006) in order to use INREC with SPLICE. If you don't have the April, 2006 PTF, you won't get the correct results with Kolusu's job. Ask your System Programmer to install the PTF (it's free). For complete details on all of the new DFSORT and ICETOOL functions available with the April, 2006 PTF, see:
www.ibm.com/servers/storage/support/software/sort/mvs/peug/ _________________ Frank Yaeger - DFSORT Development Team (IBM)
Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration
DFSORT is on the Web at:
www.ibm.com/storage/dfsort
Back to top
kolusu Site Admin Joined: 26 Nov 2002 Posts: 12378 Topics: 75 Location: San Jose
Posted: Wed Feb 14, 2007 2:23 pm Post subject:
Cyberuser,
Just found a bug in the job.
Code:
LINE01 ABC NNNN
LINE02 ABC NNNN
LINE03 ABC NNNN <- DESIRED
LINE04 _______ XYXYXYX <- DESIRED
LINE05 _______ XYXYXYX <- DESIRED
LINE06 ABC NNNN
LINE07 ABC NNNN
LINE08 ABC NNNN <- DESIRED <=== did not pick
LINE09 _______ XYXYXYX <- DESIRED
LINE10 ABC NNNN <- DESIRED
LINE11 _______ XYXYXYX <- DESIRED
LINE12 _______ XYXYXYX <- DESIRED
LINE13 _______ XYXYXYX <- DESIRED
I did not pick line 08 record as the logic was to pair every 2 records as 1 long record and then check for the desired records. So when I paired it was paired with Line 07 which does not have the indicator.
So to redeem myself I coded another version. Hope fully this does not have the bug.
Code:
//STEP0100 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN DD *
LINE01 ABC NNNN
LINE02 ABC NNNN
LINE03 ABC NNNN <- DESIRED
LINE04 _______ XYXYXYX <- DESIRED
LINE05 _______ XYXYXYX <- DESIRED
LINE06 ABC NNNN
LINE07 ABC NNNN
LINE08 ABC NNNN <- DESIRED
LINE09 _______ XYXYXYX <- DESIRED
LINE10 ABC NNNN <- DESIRED
LINE11 _______ XYXYXYX <- DESIRED
LINE12 _______ XYXYXYX <- DESIRED
LINE13 _______ XYXYXYX <- DESIRED
//OUT DD SYSOUT=*
//TOOLIN DD *
SELECT FROM(IN) TO(OUT) ON(81,8,CH) ALLDUPS USING(CTL1)
//CTL1CNTL DD *
INREC IFTHEN=(WHEN=INIT,
OVERLAY=(81:SEQNUM,8,ZD)),
IFTHEN=(WHEN=(8,7,CH,EQ,C'_______'),
OVERLAY=(89:SEQNUM,8,ZD,
81:81,8,ZD,SUB,89,8,ZD,M11,LENGTH=8)),
IFTHEN=(WHEN=NONE,
OVERLAY=(81:SEQNUM,8,ZD))
OUTFIL FNAMES=OUT,
BUILD=(01,80)
Hope this helps...
Cheers
Kolusu _________________ Kolusu
www.linkedin.com/in/kolusu
Back to top
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum