IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Regarding Splice option of Icetool


IBM Mainframe Forums -> DFSORT/ICETOOL
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
suganthyprabha

New User


Joined: 28 Jul 2005
Posts: 58

PostPosted: Thu Jul 28, 2005 12:34 pm
Reply with quote

Hi all,

i am having doubt in 'with' syntax of Splice option. i have seen this Jcl from Forum only. In this
i couldn't able to understand what ' with(12,1) ' means?

with(p,m) -- in this what p and m stands for? I have seen this syntax using QW.
we didn't mark CTL3 with c'12'. then how it identfies?

Code:
 
//job1 JOB (U,4019),'aaa',CLASS=0,MSGCLASS=R,MSGLEVEL=(1,1),   
//     NOTIFY=&SYSUID                                               
//S1 EXEC PGM=ICETOOL                                               
//TOOLMSG DD SYSOUT=*                                               
//DFSMSG  DD SYSOUT=*                                               
//IN1     DD DSN=a.b.c,DISP=SHR                         
//IN2     DD DSN=x.y.z,DISP=SHR                         
//OUT12   DD SYSOUT=*                                               
//OUT1    DD SYSOUT=*                                               
//OUT2    DD SYSOUT=*                                               
//T1      DD DSN=&&T1,DISP=(MOD,PASS),UNIT=SYSDA,SPACE=(TRK,(3,3))     
//TOOLIN  DD *                                                     
    COPY FROM(IN1) TO(T1) USING(CTL1)                               
    COPY FROM(IN2) TO(T1) USING(CTL2)                               
    SPLICE FROM(T1) TO(OUT12) ON(1,10,CH) WITH(12,1) -         
    USING(CTL3) KEEPNODUPS   
/*                                                                     
//CTL1CNTL DD *                                                       
    OUTREC FIELDS=(1,10,12:C'11')                                     
//CTL2CNTL DD *                                                       
    OUTREC FIELDS=(1,10,12:C'22')                                     
//CTL3CNTL DD *                                                       
    OUTFIL FNAMES=OUT12,INCLUDE=(12,2,CH,EQ,C'12'),OUTREC=(1,10)       
    OUTFIL FNAMES=OUT1,INCLUDE=(12,2,CH,EQ,C'11'),OUTREC=(1,10)       
    OUTFIL FNAMES=OUT2,INCLUDE=(12,2,CH,EQ,C'22'),OUTREC=(1,10)       
/*     

Thanks and regards,
prabha.
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Developer


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

PostPosted: Thu Jul 28, 2005 10:34 pm
Reply with quote

In WITH(p,m) the p is the starting position and m is the length.

You can find complete details on the SPLICE operator of DFSORT's ICETOOL, with examples, in "z/OS DFSORT Application Programming Guide" at:

publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/ICE1CA10/6.13?DT=20050222160456

For an explanation of a similar SPLICE example, see this Smart DFSORT Trick:

www.ibm.com/servers/storage/support/software/sort/mvs/tricks/srtmst02.html#t05
Back to top
View user's profile Send private message
janmejay
Warnings : 1

New User


Joined: 22 Jun 2007
Posts: 85
Location: bangalore

PostPosted: Thu May 08, 2008 3:58 pm
Reply with quote

hi i am also being strucked at same point. can anyone tell me , how it will identify CTL3 , with(12,1)

Thanks and regards,
prabha.[/quote]
Back to top
View user's profile Send private message
rajatbagga

Active User


Joined: 11 Mar 2007
Posts: 199
Location: india

PostPosted: Thu May 08, 2008 4:54 pm
Reply with quote

Hello janmejay,

Well first use the links posted above by Frank.... you will get your answers.

Let me give you a brief idea how this works:

Code:
SPLICE FROM(T1) TO(OUT12) ON(1,10,CH) WITH(12,1) -         
    USING(CTL3) KEEPNODUPS 


The DATA present in T1 will be Spliced based on the KEY field specified in ON i.e (1,10,CH)... where 1 is the starting position and 10 is the length of KEY based on which you will perform splice operation. The values which will be spliced are specified in WITH i.e. (12,1)....where 12 is the starting position and 1 is the length of field with you want to Splice USING a control card which is specified as: USING(CTL3). So the control will go to the control card :----

Code:
//CTL3CNTL DD *                                                       
    OUTFIL FNAMES=OUT12,INCLUDE=(12,2,CH,EQ,C'12'),OUTREC=(1,10)       
    OUTFIL FNAMES=OUT1,INCLUDE=(12,2,CH,EQ,C'11'),OUTREC=(1,10)       
    OUTFIL FNAMES=OUT2,INCLUDE=(12,2,CH,EQ,C'22'),OUTREC=(1,10)       
/*     
 


I hope this will help you
Back to top
View user's profile Send private message
janmejay
Warnings : 1

New User


Joined: 22 Jun 2007
Posts: 85
Location: bangalore

PostPosted: Fri May 09, 2008 8:09 am
Reply with quote

how it will identify the c'12' . only c'11' and c'22' identifier is being specified in the files.
Back to top
View user's profile Send private message
janmejay
Warnings : 1

New User


Joined: 22 Jun 2007
Posts: 85
Location: bangalore

PostPosted: Fri May 09, 2008 11:07 am
Reply with quote

it working fine for me. thankx
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> DFSORT/ICETOOL

 


Similar Topics
Topic Forum Replies
No new posts SCOPE PENDING option -check data DB2 2
No new posts Shift left VB record without x00 endi... DFSORT/ICETOOL 11
No new posts how to calculate SUM value for VB fil... DFSORT/ICETOOL 1
No new posts how to calculate SUM for VB file usin... JCL & VSAM 1
No new posts OUTFIL with SAVE option DFSORT/ICETOOL 7
Search our Forums:

Back to Top