Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

SPLICE and number of "WITH" keyword

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DFSORT/ICETOOL
View previous topic :: :: View next topic  
Author Message
manuwankenobi

New User


Joined: 02 Mar 2006
Posts: 32
Location: FRANCE

PostPosted: Mon Jan 26, 2009 2:38 pm    Post subject: SPLICE and number of "WITH" keyword
Reply with quote

Hi all,

I need to splice records :

My input file is like this :

KEY01 DATA01
KEY01 DATA02
KEY01 DATAnn
KEY02 DATA01
KEY02 DATAnn
(....)
I need an output file like this :

KEY01 DATA01DATA02...DATAnn
KEY02 DATA01DATA02...DATAnn

We can do this with SPLICE, but I have more than 50 DATAnn and the number of with keyword is limited to 50.

Any suggestion ?

Regards
Back to top
View user's profile Send private message

Frank Yaeger

DFSORT Moderator


Joined: 15 Feb 2005
Posts: 7130
Location: San Jose, CA

PostPosted: Mon Jan 26, 2009 9:45 pm    Post subject:
Reply with quote

Use multiple SPLICE operators, each with 50 WITH operands.
Back to top
View user's profile Send private message
manuwankenobi

New User


Joined: 02 Mar 2006
Posts: 32
Location: FRANCE

PostPosted: Mon Jan 26, 2009 10:27 pm    Post subject:
Reply with quote

Thank you for the answer, I tried this :
Code:

SPLICE FROM(TEMP) TO(OUTDD) ON(1,170,CH) KEEPNODUPS -         
WITHEACH -                                                   
WITH(280,109)  WITH(389,109)  WITH(498,109)  WITH(607,109) - 
WITH(716,109)  WITH(825,109)  WITH(934,109)  WITH(1043,109) -
WITH(1152,109) WITH(1261,109) WITH(1370,109) WITH(1479,109) -
WITH(1588,109) WITH(1697,109) WITH(1806,109) WITH(1915,109) -
WITH(2024,109) WITH(2133,109) WITH(2242,109) WITH(2351,109) -
WITH(2460,109) WITH(2569,109) WITH(2678,109) WITH(2787,109) -
WITH(2896,109) WITH(3005,109) WITH(3114,109) WITH(3223,109) -
WITH(3332,109) WITH(3441,109) WITH(3550,109) WITH(3659,109) -
WITH(3768,109) WITH(3877,109) WITH(3986,109) WITH(4095,109) -
WITH(4204,109) WITH(4313,109) WITH(4422,109) WITH(4531,109) -
WITH(4640,109) WITH(4749,109) WITH(4858,109) WITH(4967,109) -
WITH(5076,109) WITH(5185,109) WITH(5294,109) WITH(5403,109) -
WITH(5512,109)                                               
SPLICE FROM(TEMP) TO(OUTDD) ON(1,170,CH) KEEPNODUPS -         
WITHEACH -                                                   
WITH(5621,109) WITH(5730,109) WITH(5839,109) -               
WITH(5948,109) WITH(6057,109) WITH(6166,109) WITH(6275,109) -
WITH(6384,109) WITH(6493,109) WITH(6602,109) WITH(6711,109) -
WITH(6820,109) WITH(6929,109) WITH(7038,109) WITH(7147,109) -
WITH(7256,109) WITH(7365,109) WITH(7474,109) WITH(7583,109) -
WITH(7692,109) WITH(7801,109) WITH(7910,109) WITH(8019,109) 

But the result is bad, I'm certainly doing somethiong wrong ?

Regards
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Mon Jan 26, 2009 10:30 pm    Post subject:
Reply with quote

Hello,

Quote:
But the result is bad
Define "bad". . .
Back to top
View user's profile Send private message
manuwankenobi

New User


Joined: 02 Mar 2006
Posts: 32
Location: FRANCE

PostPosted: Mon Jan 26, 2009 10:32 pm    Post subject:
Reply with quote

Hello,

Result is bad = result not expected, I get only first occurence of 'DATAnn'
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Moderator


Joined: 15 Feb 2005
Posts: 7130
Location: San Jose, CA

PostPosted: Mon Jan 26, 2009 10:56 pm    Post subject:
Reply with quote

I don't see a USING for either SPLICE, so I'm guessing you don't have the IFTHEN clauses to put the field from each input record in the right place for SPLICEing so they correspond with the WITH operands, e.g.

Code:

    INREC IFTHEN=(WHEN=INIT,OVERLAY=(8129:SEQNUM,8,ZD)),
      IFTHEN=(WHEN=(8129,8,ZD,EQ,1),BUILD=(1,170,280:171,109)),
      ...


or something like that depending on what your input records really look like and the RECFM and LRECL.

Also, you're using the same files for FROM and TO for both SPLICE operators, so you're just overwriting the first with the second. You need to have a temporary file as the output fo the first SPLICE and as the input of the second SPLICE.

Code:

SPLICE FROM(TEMP) TO(T1) ON(1,170,CH) KEEPNODUPS -
...
SPLICE FROM(T1) TO(OUTDD) ON(1,170,CH) KEEPNODUPS -
...


If you need me to set up the job for you, then you have to give me all of the details. RECFM and LRECL of the input file. Layout of the input records. Layout of the output records. Maximum number of records with the same key.
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Tue Jan 27, 2009 3:50 am    Post subject:
Reply with quote

Hello,

Quote:
Result is bad = result not expected, I get only first occurence of 'DATAnn'
Yes, i suspect that everyone who read this understood that some unexpected result occurred. It should not have been necessary to request a better definition.

Something you need to learn about getting help whether it is from this forum, some vendor support call, or even your co-workers, it that you need to clearly describe the problem. Providing "it didn't work" is just a waste of everyone's time - especially your own. The more quickly you post a clear, complete problem description, the more quickly someone may be able to help.
Back to top
View user's profile Send private message
manuwankenobi

New User


Joined: 02 Mar 2006
Posts: 32
Location: FRANCE

PostPosted: Tue Jan 27, 2009 3:38 pm    Post subject:
Reply with quote

Hello,
I apologize for my bad explanations and/or poor english.
My input file is FB,279 with KEY=170 bytes, data=109 bytes.
For 1 key I can have from 1 to 73 records(same key, different data), the output file will have 1 record for each key and the concatenation of all the datas found for that key.
The input file is already sorted on the key.
Below is the code that I tried, I got an error on the number of "WITH" Keyword, so I'm looking for a way to "bypass" this limit.
Code:

//TOOL     EXEC PGM=ICETOOL
//TOOLMSG  DD SYSOUT=*
//DFSMSG   DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//*-----------------------------------------------------------
//*- INDD : Fichier @ traiter                                -
//*-----------------------------------------------------------
//INDD     DD DISP=SHR,DSN=A500.UNLRAP22.DATA
//*-----------------------------------------------------------
//*- TEMP : Fichier interm{diaire                            -
//*-----------------------------------------------------------
//TEMP     DD DISP=(,DELETE),DSN=&&TEMP,SPACE=(CYL,(500,50),RLSE)
//*-----------------------------------------------------------
//*- OUTDD: Fichier reformat{                                -
//*-----------------------------------------------------------
//OUTDD    DD DISP=(,CATLG,DELETE),DSN=XPF.UNLRAP22.DATA.REFORMAT.BIS,
//         SPACE=(CYL,(500,50),RLSE),UNIT=3390
//TOOLIN   DD *
  SORT FROM(INDD) USING(CTL1)
  SPLICE FROM(TEMP) TO(OUTDD) ON(1,170,CH) KEEPNODUPS -
  WITHEACH -
  WITH(280,109)  WITH(389,109)  WITH(498,109)  WITH(607,109) -
  WITH(716,109)  WITH(825,109)  WITH(934,109)  WITH(1043,109) -
  WITH(1152,109) WITH(1261,109) WITH(1370,109) WITH(1479,109) -
  WITH(1588,109) WITH(1697,109) WITH(1806,109) WITH(1915,109) -
  WITH(2024,109) WITH(2133,109) WITH(2242,109) WITH(2351,109) -
  WITH(2460,109) WITH(2569,109) WITH(2678,109) WITH(2787,109) -
  WITH(2896,109) WITH(3005,109) WITH(3114,109) WITH(3223,109) -
  WITH(3332,109) WITH(3441,109) WITH(3550,109) WITH(3659,109) -
  WITH(3768,109) WITH(3877,109) WITH(3986,109) WITH(4095,109) -
  WITH(4204,109) WITH(4313,109) WITH(4422,109) WITH(4531,109) -
  WITH(4640,109) WITH(4749,109) WITH(4858,109) WITH(4967,109) -
  WITH(5076,109) WITH(5185,109) WITH(5294,109) WITH(5403,109) -
  WITH(5512,109) WITH(5621,109) WITH(5730,109) WITH(5839,109) -
  WITH(5948,109) WITH(6057,109) WITH(6166,109) WITH(6275,109) -
  WITH(6384,109) WITH(6493,109) WITH(6602,109) WITH(6711,109) -
  WITH(6820,109) WITH(6929,109) WITH(7038,109) WITH(7147,109) -
  WITH(7256,109) WITH(7365,109) WITH(7474,109) WITH(7583,109) -
  WITH(7692,109) WITH(7801,109) WITH(7910,109) WITH(8019,109)
//CTL1CNTL DD *
  OPTION EQUALS
  SORT FIELDS=COPY
  OUTREC IFTHEN=(WHEN=INIT,OVERLAY=(280:SEQNUM,8,ZD,RESTART=(1,170))),
  IFTHEN=(WHEN=(280,8,ZD,EQ,01),BUILD=(1,170,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,02),BUILD=(1,170,0109X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,03),BUILD=(1,170,0218X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,04),BUILD=(1,170,0327X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,05),BUILD=(1,170,0436X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,06),BUILD=(1,170,0545X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,07),BUILD=(1,170,0654X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,08),BUILD=(1,170,0763X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,09),BUILD=(1,170,0872X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,10),BUILD=(1,170,0981X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,11),BUILD=(1,170,1090X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,12),BUILD=(1,170,1199X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,13),BUILD=(1,170,1308X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,14),BUILD=(1,170,1417X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,15),BUILD=(1,170,1526X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,16),BUILD=(1,170,1635X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,17),BUILD=(1,170,1744X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,18),BUILD=(1,170,1853X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,19),BUILD=(1,170,1962X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,20),BUILD=(1,170,2071X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,21),BUILD=(1,170,2180X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,22),BUILD=(1,170,2289X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,23),BUILD=(1,170,2398X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,24),BUILD=(1,170,2507X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,25),BUILD=(1,170,2616X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,26),BUILD=(1,170,2725X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,27),BUILD=(1,170,2834X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,28),BUILD=(1,170,2943X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,29),BUILD=(1,170,3052X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,30),BUILD=(1,170,3161X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,31),BUILD=(1,170,3270X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,32),BUILD=(1,170,3379X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,33),BUILD=(1,170,3488X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,34),BUILD=(1,170,3597X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,35),BUILD=(1,170,3706X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,36),BUILD=(1,170,3815X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,37),BUILD=(1,170,3924X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,38),BUILD=(1,170,4033X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,39),BUILD=(1,170,4033X,0109X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,40),BUILD=(1,170,4033X,0218X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,41),BUILD=(1,170,4033X,0327X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,42),BUILD=(1,170,4033X,0436X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,43),BUILD=(1,170,4033X,0545X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,44),BUILD=(1,170,4033X,0654X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,45),BUILD=(1,170,4033X,0763X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,46),BUILD=(1,170,4033X,0872X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,47),BUILD=(1,170,4033X,0981X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,48),BUILD=(1,170,4033X,1090X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,49),BUILD=(1,170,4033X,1199X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,50),BUILD=(1,170,4033X,1308X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,51),BUILD=(1,170,4033X,1417X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,52),BUILD=(1,170,4033X,1526X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,53),BUILD=(1,170,4033X,1635X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,54),BUILD=(1,170,4033X,1744X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,55),BUILD=(1,170,4033X,1853X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,56),BUILD=(1,170,4033X,1962X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,57),BUILD=(1,170,4033X,2071X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,58),BUILD=(1,170,4033X,2180X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,59),BUILD=(1,170,4033X,2289X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,60),BUILD=(1,170,4033X,2398X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,61),BUILD=(1,170,4033X,2507X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,62),BUILD=(1,170,4033X,2616X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,63),BUILD=(1,170,4033X,2725X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,64),BUILD=(1,170,4033X,2834X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,65),BUILD=(1,170,4033X,2943X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,66),BUILD=(1,170,4033X,3052X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,67),BUILD=(1,170,4033X,3161X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,68),BUILD=(1,170,4033X,3270X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,69),BUILD=(1,170,4033X,3379X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,70),BUILD=(1,170,4033X,3488X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,71),BUILD=(1,170,4033X,3597X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,72),BUILD=(1,170,4033X,3706X,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,73),BUILD=(1,170,4033X,3815X,171,109))
  OUTFIL FNAMES=TEMP
/*


Thanks for your help.
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Moderator


Joined: 15 Feb 2005
Posts: 7130
Location: San Jose, CA

PostPosted: Tue Jan 27, 2009 11:35 pm    Post subject:
Reply with quote

I believe this DFSORT/ICETOOL job will do what you asked for:

Code:

//S1   EXEC  PGM=ICETOOL
//TOOLMSG   DD  SYSOUT=*
//DFSMSG    DD  SYSOUT=*
//INDD     DD DISP=SHR,DSN=A500.UNLRAP22.DATA
//T1  DD DISP=(,PASS),DSN=&&T1,SPACE=(CYL,(500,50),RLSE)
//T2  DD DISP=(,PASS),DSN=&&T2,SPACE=(CYL,(500,50),RLSE)
//T3  DD DISP=(MOD,PASS),DSN=&&T3,SPACE=(CYL,(500,50),RLSE)
//OUTDD    DD DISP=(,CATLG,DELETE),DSN=XPF.UNLRAP22.DATA.REFORMAT.BIS,
//         SPACE=(CYL,(500,50),RLSE),UNIT=3390
//TOOLIN   DD *
  COPY FROM(INDD) USING(CTL1)
  SPLICE FROM(T1) TO(T3) ON(1,170,CH) KEEPNODUPS -
  WITHEACH -
  WITH(280,109)  WITH(389,109)  WITH(498,109)  WITH(607,109) -
  WITH(716,109)  WITH(825,109)  WITH(934,109)  WITH(1043,109) -
  WITH(1152,109) WITH(1261,109) WITH(1370,109) WITH(1479,109) -
  WITH(1588,109) WITH(1697,109) WITH(1806,109) WITH(1915,109) -
  WITH(2024,109) WITH(2133,109) WITH(2242,109) WITH(2351,109) -
  WITH(2460,109) WITH(2569,109) WITH(2678,109) WITH(2787,109) -
  WITH(2896,109) WITH(3005,109) WITH(3114,109) WITH(3223,109) -
  WITH(3332,109) WITH(3441,109) WITH(3550,109) WITH(3659,109) -
  WITH(3768,109) WITH(3877,109) WITH(3986,109) WITH(4095,109) -
  WITH(4204,109) WITH(4313,109) WITH(4422,109) WITH(4531,109) -
  WITH(4640,109) WITH(4749,109) WITH(4858,109) WITH(4967,109) -
  WITH(5076,109) WITH(5185,109) WITH(5294,109) WITH(5403,109) -
  WITH(5512,109) WITH(5621,109)
  COPY FROM(T2) TO(T3)
  SPLICE FROM(T3) TO(OUTDD) ON(1,170,CH) KEEPNODUPS -
  WITHEACH -
  WITH(5730,109) WITH(5839,109) -
  WITH(5948,109) WITH(6057,109) WITH(6166,109) WITH(6275,109) -
  WITH(6384,109) WITH(6493,109) WITH(6602,109) WITH(6711,109) -
  WITH(6820,109) WITH(6929,109) WITH(7038,109) WITH(7147,109) -
  WITH(7256,109) WITH(7365,109) WITH(7474,109) WITH(7583,109) -
  WITH(7692,109) WITH(7801,109) WITH(7910,109) WITH(8019,109)
/*
//CTL1CNTL DD *
  INREC IFTHEN=(WHEN=INIT,
    OVERLAY=(280:SEQNUM,8,ZD,RESTART=(1,170),8127:X))
  OUTFIL FNAMES=T1,
    INCLUDE=(280,8,ZD,LE,51),
  IFTHEN=(WHEN=(280,8,ZD,EQ,01),BUILD=(1,170,171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,02),BUILD=(1,170,280:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,03),BUILD=(1,170,389:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,04),BUILD=(1,170,498:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,05),BUILD=(1,170,607:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,06),BUILD=(1,170,716:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,07),BUILD=(1,170,825:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,08),BUILD=(1,170,934:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,09),BUILD=(1,170,1043:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,10),BUILD=(1,170,1152:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,11),BUILD=(1,170,1261:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,12),BUILD=(1,170,1370:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,13),BUILD=(1,170,1479:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,14),BUILD=(1,170,1588:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,15),BUILD=(1,170,1697:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,16),BUILD=(1,170,1806:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,17),BUILD=(1,170,1915:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,18),BUILD=(1,170,2024:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,19),BUILD=(1,170,2133:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,20),BUILD=(1,170,2242:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,21),BUILD=(1,170,2351:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,22),BUILD=(1,170,2460:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,23),BUILD=(1,170,2569:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,24),BUILD=(1,170,2678:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,25),BUILD=(1,170,2787:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,26),BUILD=(1,170,2896:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,27),BUILD=(1,170,3005:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,28),BUILD=(1,170,3114:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,29),BUILD=(1,170,3223:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,30),BUILD=(1,170,3332:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,31),BUILD=(1,170,3441:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,32),BUILD=(1,170,3550:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,33),BUILD=(1,170,3659:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,34),BUILD=(1,170,3768:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,35),BUILD=(1,170,3877:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,36),BUILD=(1,170,3986:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,37),BUILD=(1,170,4095:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,38),BUILD=(1,170,4204:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,39),BUILD=(1,170,4313:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,40),BUILD=(1,170,4422:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,41),BUILD=(1,170,4531:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,42),BUILD=(1,170,4640:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,43),BUILD=(1,170,4749:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,44),BUILD=(1,170,4858:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,45),BUILD=(1,170,4967:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,46),BUILD=(1,170,5076:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,47),BUILD=(1,170,5185:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,48),BUILD=(1,170,5294:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,49),BUILD=(1,170,5403:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,50),BUILD=(1,170,5512:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,51),BUILD=(1,170,5621:171,109))
  OUTFIL FNAMES=T2,
    INCLUDE=(280,8,ZD,GT,51),
  IFTHEN=(WHEN=(280,8,ZD,EQ,52),BUILD=(1,170,5730:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,53),BUILD=(1,170,5839:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,54),BUILD=(1,170,5948:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,55),BUILD=(1,170,6057:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,56),BUILD=(1,170,6166:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,57),BUILD=(1,170,6275:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,58),BUILD=(1,170,6384:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,59),BUILD=(1,170,6493:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,60),BUILD=(1,170,6602:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,61),BUILD=(1,170,6711:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,62),BUILD=(1,170,6820:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,63),BUILD=(1,170,6929:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,64),BUILD=(1,170,7038:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,65),BUILD=(1,170,7147:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,66),BUILD=(1,170,7256:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,67),BUILD=(1,170,7365:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,68),BUILD=(1,170,7474:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,69),BUILD=(1,170,7583:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,70),BUILD=(1,170,7692:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,71),BUILD=(1,170,7801:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,72),BUILD=(1,170,7910:171,109)),
  IFTHEN=(WHEN=(280,8,ZD,EQ,73),BUILD=(1,170,8019:171,109))
/*
Back to top
View user's profile Send private message
Skolusu

Senior Member


Joined: 07 Dec 2007
Posts: 2205
Location: San Jose

PostPosted: Tue Jan 27, 2009 11:55 pm    Post subject: Reply to: SPLICE and number of "WITH" keyword
Reply with quote

manuwankenobi,

You really don't need a splice to get the desired results. You can very easily club all the data into a single record using the new WHEN=GROUP function of DFSORT available with z/OS DFSORT V1R5 PTF UK90013 (July, 2008) like this:

Code:

//STEP0100 EXEC PGM=ICETOOL                               
//TOOLMSG  DD SYSOUT=*                                   
//DFSMSG   DD SYSOUT=*                                   
//IN       DD DSN=&&T1,DISP=SHR                           
//OUT      DD SYSOUT=*                                   
//TOOLIN   DD *                                           
  SELECT FROM(IN) TO(OUT) ON(1,170,CH) LAST USING(CTL1)   
//CTL1CNTL DD *                                           
  INREC IFTHEN=(WHEN=INIT,                               
  OVERLAY=(8128:171,109,SEQNUM,8,ZD,RESTART=(1,170))),   
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,01),             
  RECORDS=73,PUSH=(0171:8128,109)),                       
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,02),             
  RECORDS=72,PUSH=(0280:8128,109)),                       
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,03),             
  RECORDS=71,PUSH=(0389:8128,109)),                       
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,04),             
  RECORDS=70,PUSH=(0498:8128,109)),                       
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,05),             
  RECORDS=69,PUSH=(0607:8128,109)),                       
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,06),             
  RECORDS=68,PUSH=(0716:8128,109)),                       
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,07),             
  RECORDS=67,PUSH=(0825:8128,109)),                       
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,08),             
  RECORDS=66,PUSH=(0934:8128,109)),                       
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,09),             
  RECORDS=65,PUSH=(1043:8128,109)),                       
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,10),             
  RECORDS=64,PUSH=(1152:8128,109)),                       
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,11),             
  RECORDS=63,PUSH=(1261:8128,109)),                       
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,12),             
  RECORDS=62,PUSH=(1370:8128,109)),                       
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,13),             
  RECORDS=61,PUSH=(1479:8128,109)),                       
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,14),             
  RECORDS=60,PUSH=(1588:8128,109)),                       
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,15),             
  RECORDS=59,PUSH=(1697:8128,109)),                       
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,16),             
  RECORDS=58,PUSH=(1806:8128,109)),                       
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,17),             
  RECORDS=57,PUSH=(1915:8128,109)),                       
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,18),             
  RECORDS=56,PUSH=(2024:8128,109)),                       
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,19),       
  RECORDS=55,PUSH=(2133:8128,109)),                 
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,20),       
  RECORDS=54,PUSH=(2242:8128,109)),                 
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,21),       
  RECORDS=53,PUSH=(2351:8128,109)),                 
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,22),       
  RECORDS=52,PUSH=(2460:8128,109)),                 
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,23),       
  RECORDS=51,PUSH=(2569:8128,109)),                 
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,24),       
  RECORDS=50,PUSH=(2678:8128,109)),                 
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,25),       
  RECORDS=49,PUSH=(2787:8128,109)),                 
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,26),       
  RECORDS=48,PUSH=(2896:8128,109)),                 
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,27),       
  RECORDS=47,PUSH=(3005:8128,109)),                 
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,28),       
  RECORDS=46,PUSH=(3114:8128,109)),                 
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,29),       
  RECORDS=45,PUSH=(3223:8128,109)),                 
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,30),       
  RECORDS=44,PUSH=(3332:8128,109)),                 
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,31),       
  RECORDS=43,PUSH=(3441:8128,109)),                 
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,32),       
  RECORDS=42,PUSH=(3550:8128,109)),                 
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,33),       
  RECORDS=41,PUSH=(3659:8128,109)),                 
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,34),       
  RECORDS=40,PUSH=(3768:8128,109)),                 
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,35),       
  RECORDS=39,PUSH=(3877:8128,109)),                 
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,36),       
  RECORDS=38,PUSH=(3986:8128,109)),                 
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,37),       
  RECORDS=37,PUSH=(4095:8128,109)),                 
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,38),     
  RECORDS=36,PUSH=(4204:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,39),     
  RECORDS=35,PUSH=(4313:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,40),     
  RECORDS=34,PUSH=(4422:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,41),     
  RECORDS=33,PUSH=(4531:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,42),     
  RECORDS=32,PUSH=(4640:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,43),     
  RECORDS=31,PUSH=(4749:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,44),     
  RECORDS=30,PUSH=(4858:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,45),     
  RECORDS=29,PUSH=(4967:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,46),     
  RECORDS=28,PUSH=(5076:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,47),     
  RECORDS=27,PUSH=(5185:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,48),     
  RECORDS=26,PUSH=(5294:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,49),     
  RECORDS=25,PUSH=(5403:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,50),     
  RECORDS=24,PUSH=(5512:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,51),     
  RECORDS=23,PUSH=(5621:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,52),     
  RECORDS=22,PUSH=(5730:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,53),     
  RECORDS=21,PUSH=(5839:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,54),     
  RECORDS=20,PUSH=(5948:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,55),     
  RECORDS=19,PUSH=(6057:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,56),     
  RECORDS=18,PUSH=(6166:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,57),     
  RECORDS=17,PUSH=(6275:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,58),     
  RECORDS=16,PUSH=(6384:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,59),     
  RECORDS=15,PUSH=(6493:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,60),     
  RECORDS=14,PUSH=(6602:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,61),     
  RECORDS=13,PUSH=(6711:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,62),     
  RECORDS=12,PUSH=(6820:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,63),     
  RECORDS=11,PUSH=(6929:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,64),     
  RECORDS=10,PUSH=(7038:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,65),     
  RECORDS=09,PUSH=(7147:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,66),     
  RECORDS=08,PUSH=(7256:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,67),     
  RECORDS=07,PUSH=(7365:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,68),     
  RECORDS=06,PUSH=(7474:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,69),     
  RECORDS=05,PUSH=(7583:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,70),     
  RECORDS=04,PUSH=(7692:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,71),     
  RECORDS=03,PUSH=(7801:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,72),     
  RECORDS=02,PUSH=(7910:8128,109)),               
  IFTHEN=(WHEN=GROUP,BEGIN=(8237,8,ZD,EQ,73),     
  RECORDS=01,PUSH=(8019:8128,109))
               
  OUTFIL BUILD=(1,8127)                           
//*


If you don't have the July, 2008 PTF installed, ask your System Programmer to install it (it's free).

For complete details on the new WHEN=GROUP and the other new functions available with PTF UK90013, see:

www.ibm.com/systems/support/storage/software/sort/mvs/ugpf/
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Wed Jan 28, 2009 3:13 am    Post subject: Reply to: SPLICE and number of "WITH" keyword
Reply with quote

Hello,

Quote:
I apologize for my bad explanations and/or poor english.
Not to worry - we can help with the English icon_smile.gif

With practice, the explanations will also improve icon_wink.gif

Both will be to your long-term advantage.

Good luck,

d
Back to top
View user's profile Send private message
manuwankenobi

New User


Joined: 02 Mar 2006
Posts: 32
Location: FRANCE

PostPosted: Wed Jan 28, 2009 4:16 pm    Post subject:
Reply with quote

Hello,

Skolusu : I don't have the PTF, I will have it later
Franck : Great !
Dick : I keep your remarks in mind

A last remark : as T1,T2,T3 are FB files, as my input file is 580,000,000 records I calculate that the sum of T1 + T2 + T3 will be about 4,8 Terabytes !!!

Could T1,T2,T3 be VB ?
Would the solution from Skolusu need less space ?

Thanks for all.
Regards
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Moderator


Joined: 15 Feb 2005
Posts: 7130
Location: San Jose, CA

PostPosted: Wed Jan 28, 2009 9:47 pm    Post subject:
Reply with quote

Kolusu's solution does NOT use any intermediate files (no T1, T2 or T3) so it would need less space.
Back to top
View user's profile Send private message
manuwankenobi

New User


Joined: 02 Mar 2006
Posts: 32
Location: FRANCE

PostPosted: Thu Sep 10, 2009 3:10 pm    Post subject:
Reply with quote

Hello,
As we got the magic PTF this summer, I could test Kolusu's solution, it works fine with less disk space used.

Sorry to reactivate this old thread, but I think it is important to inform about working solutions.

Thanks for all. icon_biggrin.gif
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Thu Sep 10, 2009 7:07 pm    Post subject: Reply to: SPLICE and number of "WITH" keyword
Reply with quote

Good to hear it is working - thanks for letting us know icon_smile.gif

d
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DFSORT/ICETOOL All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts syncsort: copy lines after the keyword shreya19 SYNCSORT 7 Fri Dec 02, 2016 9:47 am
No new posts Amount field is getting corrupted whe... thesumitk SYNCSORT 5 Tue Oct 18, 2016 8:20 pm
No new posts hot to get details when "EXEC CI... Andi1982 CICS 11 Tue Sep 20, 2016 5:01 pm
No new posts Sequence number add in SORT pshongal SYNCSORT 3 Fri Sep 02, 2016 3:32 pm
No new posts Multi row fetch - "for read only... Nileshkul DB2 3 Sun Aug 14, 2016 12:52 am


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us