MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Split File using the indicator

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Utilities
View previous topic :: View next topic  
Author Message
maxisnowhere
Beginner


Joined: 25 May 2005
Posts: 59
Topics: 20

PostPosted: Wed Jan 31, 2007 12:25 pm    Post subject: Split File using the indicator Reply with quote

Hi,

I've a file like this:

Code:

AA01
AA02
AA03X
BB01
BB02
BB03Y
CC01
CC02
CC03X

I wanto to split the file like this:
First file: all record with X in tecord 03 and same letter key:
Code:

AA01
AA02
AA03X
CC01
CC02
CC03X

Second file: all record with Y in tecord 03 and same letter key:
Code:

BB01
BB02
BB03Y


any idea?

Thank a lot 4 all help!
Have a good one!!!
_________________
Maxisnowhere
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12376
Topics: 75
Location: San Jose

PostPosted: Wed Jan 31, 2007 1:01 pm    Post subject: Reply with quote

maxisnowhere,

Try this DFSORT/ICETOOL job. I assumed that your input is of FB recfm and 80 byte lrecl

Code:

//STEP0100 EXEC PGM=ICETOOL                             
//TOOLMSG  DD SYSOUT=*                                   
//DFSMSG   DD SYSOUT=*                                   
//IN       DD *                                         
AA01                                                     
AA02                                                     
AA03X                                                   
BB01                                                     
BB02                                                     
BB03Y                                                   
CC01                                                     
CC02                                                     
CC03X                                                   
//T1       DD DSN=&T1,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE)
//X        DD SYSOUT=*                                   
//Y        DD SYSOUT=*                                   
//TOOLIN   DD *                                         
  SPLICE FROM(IN) TO(T1) ON(1,2,CH) WITH(01,88) -       
         WITHALL KEEPBASE USING(CTL1)                   
                                                         
  SORT FROM(T1) USING(CTL2)                             
//CTL1CNTL DD *                                         
  SORT FIELDS=(01,02,CH,A,                               
               89,01,CH,A)                               
                                                         
  INREC IFTHEN=(WHEN=INIT,                               
                OVERLAY=(81:SEQNUM,8,ZD,C'9')),         
        IFTHEN=(WHEN=(5,1,CH,EQ,C'X'),                   
                OVERLAY=(89:C'1')),                     
        IFTHEN=(WHEN=(5,1,CH,EQ,C'Y'),                   
                OVERLAY=(89:C'2'))                       
                                                         
//CTL2CNTL DD *                             
  SORT FIELDS=(81,08,CH,A)                 
                                           
  OUTFIL FNAMES=X,INCLUDE=(89,1,ZD,EQ,1),   
  OUTREC=(01,80)                           
                                           
  OUTFIL FNAMES=Y,INCLUDE=(89,1,ZD,EQ,2),   
  OUTREC=(01,80)                           
/*                                         


Hope this helps...

Cheers

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
maxisnowhere
Beginner


Joined: 25 May 2005
Posts: 59
Topics: 20

PostPosted: Fri Feb 02, 2007 8:26 am    Post subject: Reply with quote

Hi Kolusu,
I've tryide but it gve no result:

The first SPLICE go well, but the second SORT:
Code:

//CTL2CNTL DD *                                   
  SORT FIELDS=(81,08,CH,A)                         
                                                   
  OUTFIL FNAMES=X,INCLUDE=(89,1,ZD,EQ,1),         
  OUTREC=(01,80)                                   
  OUTFIL FNAMES=Y,INCLUDE=(89,1,ZD,EQ,2),         
  OUTREC=(01,80)                                   

Give me such output:

X        : BSAM USED, LRECL = 80, BLKSIZE = 80, TYPE = FB
Y        : BSAM USED, LRECL = 80, BLKSIZE = 80, TYPE = FB
BA-K10929 BB-K06751 BC-K10929 CB-K90000 E8-K90000         
IN MAIN STORAGE SORT                                     
INSERT 0, DELETE 0                                       
RECORDS - IN: 9, OUT: 9                                   
X        : DELETED = 9, REPORT = 0, DATA = 0             
X        : TOTAL IN = 9, TOTAL OUT = 0                   
Y        : DELETED = 9, REPORT = 0, DATA = 0             
Y        : TOTAL IN = 9, TOTAL OUT = 0                   
NO DATA RECORDS FOR AN OUTFIL DATA SET - RC=0             

Embarassed sorry to bother you!
Thanks a lot!

Maxisnowhere
_________________
Maxisnowhere
Back to top
View user's profile Send private message
Frank Yaeger
Sort Forum Moderator
Sort Forum Moderator


Joined: 02 Dec 2002
Posts: 1618
Topics: 31
Location: San Jose

PostPosted: Fri Feb 02, 2007 11:09 am    Post subject: Reply with quote

When I run Kolusu's job exactly as he shows it, I get output in X and Y - the DFSORT messages are:

Code:

ICE054I 0 RECORDS - IN: 9, OUT: 9                         
ICE227I 0 X        : DELETED = 3, REPORT = 0, DATA = 6     
ICE228I 0 X        : TOTAL IN = 9, TOTAL OUT = 6           
ICE227I 0 Y        : DELETED = 6, REPORT = 0, DATA = 3     
ICE228I 0 Y        : TOTAL IN = 9, TOTAL OUT = 3           


So you're doing something different. Please show your JCL and control statements.
_________________
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
View user's profile Send private message Send e-mail Visit poster's website
maxisnowhere
Beginner


Joined: 25 May 2005
Posts: 59
Topics: 20

PostPosted: Fri Feb 02, 2007 11:16 am    Post subject: Reply with quote

Here's my job:
Code:

//AILSORT JOB  (95140,T),'MAX',MSGLEVEL=(1,1),MSGCLASS=Q,       
//         CLASS=T,REGION=0M,NOTIFY=AILEM                       
//STEP0100 EXEC PGM=ICETOOL                                     
//TOOLMSG  DD SYSOUT=*                                         
//DFSMSG   DD SYSOUT=*                                         
//IN       DD *                                                 
AA01                                                           
AA02                                                           
AA03X                                                           
BB01                                                           
BB02                                                           
BB03Y                                                           
CC01                                                           
CC02                                                           
CC03X                                                           
//T1       DD DSN=&T1,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE)       
//X        DD SYSOUT=*                                         
//Y        DD SYSOUT=*                                         
//TOOLIN   DD *             
  SPLICE FROM(IN) TO(T1) ON(1,2,CH) WITH(01,88) -         
         WITHALL KEEPBASE USING(CTL1)                     
                                                           
  SORT FROM(T1) USING(CTL2)                               
//CTL1CNTL DD *                                           
  SORT FIELDS=(01,02,CH,A,                                 
               89,01,CH,A)                                 
                                                           
    INREC IFTHEN=(WHEN=INIT,                               
                  OVERLAY=(81:SEQNUM,8,ZD,C'9')),         
          IFTHEN=(WHEN=(5,1,CH,EQ,C'X'),                   
                  OVERLAY=(89:C'1')),                     
          IFTHEN=(WHEN=(5,1,CH,EQ,C'Y'),                   
                  OVERLAY=(89:C'2'))                       
                                                           
//CTL2CNTL DD *                                           
    SORT FIELDS=(81,08,CH,A)                       
                                                   
    OUTFIL FNAMES=X,INCLUDE=(89,1,ZD,EQ,1),       
    OUTREC=(01,80)                                 
                                                   
    OUTFIL FNAMES=Y,INCLUDE=(89,1,ZD,EQ,2),       
    OUTREC=(01,80)                                 
/*       


I'm not really used in these stuff...sorry

thanks a lot!

maxisnowhere
_________________
Maxisnowhere
Back to top
View user's profile Send private message
Frank Yaeger
Sort Forum Moderator
Sort Forum Moderator


Joined: 02 Dec 2002
Posts: 1618
Topics: 31
Location: San Jose

PostPosted: Fri Feb 02, 2007 12:42 pm    Post subject: Reply with quote

Max,

I get output for X and Y with your job as well. I don't understand why you're not getting any output. Please post all of the //DFSMSG output for your run so I can have a look. Please include the message numbers (e.g. ICE000I).
_________________
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
View user's profile Send private message Send e-mail Visit poster's website
maxisnowhere
Beginner


Joined: 25 May 2005
Posts: 59
Topics: 20

PostPosted: Fri Feb 02, 2007 1:00 pm    Post subject: Reply with quote

Here is it:
Code:

IDENTIFIER FROM CALLING PROGRAM IS 0001                                         
BLOCKSET     SORT  TECHNIQUE SELECTED                                           
VISIT http://www.ibm.com/storage/dfsort FOR DFSORT PAPERS, EXAMPLES AND MORE   
- CONTROL STATEMENTS FOR 5694-A01, Z/OS DFSORT V1R5 - 11:31 ON FRI FEB 02, 2007
  SORT FIELDS=(01,02,CH,A,                                              00031105
               89,01,CH,A)                                              00031205
                                                                        00031305
  INREC IFTHEN=(WHEN=INIT,                                              00031405
                OVERLAY=(81:SEQNUM,8,ZD,C'9')),                         00031505
        IFTHEN=(WHEN=(5,1,CH,EQ,C'X'),                                  00031605
                OVERLAY=(89:C'1')),                                     00031705
        IFTHEN=(WHEN=(5,1,CH,EQ,C'Y'),                                  00031805
                OVERLAY=(89:C'2'))                                      00031905
                                                                        00032005
END OF STATEMENTS FROM CTL1CNTL - PARAMETER LIST STATEMENTS FOLLOW             
DEBUG NOABEND,ESTAE                                                             
OPTION MSGDDN=DFSMSG,LIST,MSGPRT=ALL,RESINV=0,SORTDD=CTL1,SORTIN=IN,SOR*       
               TOUT=T1,DYNALLOC,SZERO,EQUALS,NOVLSHRT,LOCALE=NONE,NOCHE*       
               CK                                                               
SORT FIELDS=(1,2,CH,A)                                                         
MODS E35=(ICE35DU,12288)                                                       
RECORD TYPE IS F - DATA STARTS IN POSITION 1                                   
C5-K05352 C6-Q95214 C7-K90000 C8-K05352 E9-K06751 C9-BASE   E5-K10929 E6-K90000
ICEAM2 ENVIRONMENT IN EFFECT - ICEAM2 INSTALLATION MODULE SELECTED             
AILSORT .STEP0100.        , INPUT LRECL = 80, BLKSIZE = 80, TYPE = FB           
MAIN STORAGE = (MAX,6291456,6266880)                                           
MAIN STORAGE ABOVE 16MB = (5259264,5242880)                                     
OPTIONS: OVFLO=RC0 ,PAD=RC0 ,TRUNC=RC0 ,SPANINC=RC16,VLSCMP=N,SZERO=Y,RESET=Y,VS
OPTIONS: SIZE=6291456,MAXLIM=1048576,MINLIM=450560,EQUALS=Y,LIST=Y,ERET=RC16 ,MS
OPTIONS: VIO=N,RESDNT=ALL ,SMF=NO   ,WRKSEC=Y,OUTSEC=Y,VERIFY=N,CHALT=N,DYNALOC=
OPTIONS: RESALL=4096,RESINV=0,SVC=109 ,CHECK=N,WRKREL=Y,OUTREL=Y,CKPT=N,STIMER=Y
OPTIONS: TMAXLIM=6291456,ARESALL=0,ARESINV=0,OVERRGN=16384,CINV=Y,CFW=Y,DSA=0   
OPTIONS: VLSHRT=N,ZDPRINT=Y,IEXIT=N,TEXIT=N,LISTX=N,EFS=NONE    ,EXITCK=S,PARMDD
OPTIONS: HIPRMAX=OPTIMAL,DSPSIZE=MAX ,ODMAXBF=0,SOLRF=Y,VLLONG=N,VSAMIO=N,MOSIZE
OPTIONS: NULLOUT=RC0                                                           
EXCP ACCESS METHOD USED FOR T1                                                 
BSAM ACCESS METHOD USED FOR IN                                                 
DC 500000 TC 0 CS DSVNN KSZ 7 VSZ 7                                             
FSZ=6250 RC  IGN=0 E  AVG=96 0  WSP=779 C  DYN=16 56648                         
DE-K10929 D5-K05352 D3-K10929 D7-Q91626 E8-K90000                               
OUTPUT LRECL = 89, BLKSIZE = 27946, TYPE = FB   (SDB)                           
SORTOUT LRECL OF 89 IS DIFFERENT FROM SORTIN(NN) LRECL OF 80 - RC=0             
INSERT 3, DELETE 3                                                             
RECORDS - IN: 9, OUT: 9                                                         
NUMBER OF BYTES SORTED: 720                                                     
TOTAL WORK DATA SET TRACKS ALLOCATED: 30 , TRACKS USED: 30                     
MEMORY OBJECT STORAGE USED = 0M BYTES                                           
HIPERSPACE STORAGE USED = 0K BYTES                                             
DATA SPACE STORAGE USED = 0K BYTES                                             
END OF DFSORT                                                                   
IDENTIFIER FROM CALLING PROGRAM IS 0002                                         
BLOCKSET     SORT  TECHNIQUE SELECTED                                           
VISIT http://www.ibm.com/storage/dfsort FOR DFSORT PAPERS, EXAMPLES AND MORE   
- CONTROL STATEMENTS FOR 5694-A01, Z/OS DFSORT V1R5 - 11:31 ON FRI FEB 02, 2007
  SORT FIELDS=(81,08,CH,A)                                              00032205
                                                                        00032305
  OUTFIL FNAMES=X,INCLUDE=(89,1,ZD,EQ,1),                               00032405
  OUTREC=(01,80)                                                        00032505
                                                                        00032605
  OUTFIL FNAMES=Y,INCLUDE=(89,1,ZD,EQ,2),                               00032705
  OUTREC=(01,80)                                                        00032805
END OF STATEMENTS FROM CTL2CNTL - PARAMETER LIST STATEMENTS FOLLOW             
DEBUG NOABEND,ESTAE                                                             
OPTION MSGDDN=DFSMSG,LIST,MSGPRT=ALL,RESINV=0,SORTDD=CTL2,SORTIN=T1,DYN*       
               ALLOC                                                           
RECORD TYPE IS F - DATA STARTS IN POSITION 1                                   
C5-K05352 C6-Q95214 C7-K90000 C8-K05352 E4-K06751 C9-BASE   E5-K10929 E6-K90000
ICEAM2 ENVIRONMENT IN EFFECT - ICEAM2 INSTALLATION MODULE SELECTED             
AILSORT .STEP0100.        , INPUT LRECL = 89, BLKSIZE = 27946, TYPE = FB       
MAIN STORAGE = (MAX,6291456,6291456)                                           
MAIN STORAGE ABOVE 16MB = (6217223,6217223)                                     
OPTIONS: OVFLO=RC0 ,PAD=RC0 ,TRUNC=RC0 ,SPANINC=RC16,VLSCMP=N,SZERO=Y,RESET=Y,VS
OPTIONS: SIZE=6291456,MAXLIM=1048576,MINLIM=450560,EQUALS=N,LIST=Y,ERET=RC16 ,MS
OPTIONS: VIO=N,RESDNT=ALL ,SMF=NO   ,WRKSEC=Y,OUTSEC=Y,VERIFY=N,CHALT=N,DYNALOC=
OPTIONS: RESALL=4096,RESINV=0,SVC=109 ,CHECK=Y,WRKREL=Y,OUTREL=Y,CKPT=N,STIMER=Y
OPTIONS: TMAXLIM=6291456,ARESALL=0,ARESINV=0,OVERRGN=16384,CINV=Y,CFW=Y,DSA=0   
OPTIONS: VLSHRT=N,ZDPRINT=Y,IEXIT=N,TEXIT=N,LISTX=N,EFS=NONE    ,EXITCK=S,PARMDD
OPTIONS: HIPRMAX=OPTIMAL,DSPSIZE=MAX ,ODMAXBF=2097152,SOLRF=Y,VLLONG=N,VSAMIO=N,
OPTIONS: NULLOUT=RC0                                                           
EXCP ACCESS METHOD USED FOR T1                                                 
DC 27946 TC 0 CS DSVVV KSZ 8 VSZ 8                                             
FSZ=314 RC  IGN=0 E  AVG=92 0  WSP=38 C  DYN=2 56588                           
STORAGE USED FOR OUTFIL : BELOW 16M = 72704, ABOVE 16M = 164864                 
X        : BSAM USED, LRECL = 80, BLKSIZE = 80, TYPE = FB                       
Y        : BSAM USED, LRECL = 80, BLKSIZE = 80, TYPE = FB                       
DE-K10929 D5-K05352 D9-K90000 CB-K90000 E8-K90000                               
IN MAIN STORAGE SORT                                                           
INSERT 0, DELETE 0                                                             
RECORDS - IN: 9, OUT: 9                                                         
X        : DELETED = 9, REPORT = 0, DATA = 0                                   
X        : TOTAL IN = 9, TOTAL OUT = 0                                         
Y        : DELETED = 9, REPORT = 0, DATA = 0                                   
Y        : TOTAL IN = 9, TOTAL OUT = 0                                         
NO DATA RECORDS FOR AN OUTFIL DATA SET - RC=0                                   
NUMBER OF BYTES SORTED: 801                                                     
TOTAL WORK DATA SET TRACKS ALLOCATED: 15 , TRACKS USED: 0                       
MEMORY OBJECT STORAGE USED = 0M BYTES                                           
HIPERSPACE STORAGE USED = 0K BYTES                                             
DATA SPACE STORAGE USED = 0K BYTES                   
END OF DFSORT


Thnk for yout help, will read any answas monday!

Have a good week end!
_________________
Maxisnowhere
Back to top
View user's profile Send private message
Frank Yaeger
Sort Forum Moderator
Sort Forum Moderator


Joined: 02 Dec 2002
Posts: 1618
Topics: 31
Location: San Jose

PostPosted: Fri Feb 02, 2007 3:59 pm    Post subject: Reply with quote

Ah, I see the problem. You need z/OS DFSORT V1R5 PTF UK90007 (April, 2006) to use INREC with SPLICE and you don't have that PTF installed. Ask your System Programmer to install it (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/

Alernatively, you can change the job to use an extra COPY operator like this:

Code:

//STEP0100 EXEC PGM=ICETOOL
//TOOLMSG  DD SYSOUT=*
//DFSMSG   DD SYSOUT=*
//IN       DD *
AA01
AA02
AA03X
BB01
BB02
BB03Y
CC01
CC02
CC03X
//TX       DD DSN=&TX,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE),UNIT=SYSDA
//T1       DD DSN=&T1,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE),UNIT=SYSDA
//X        DD SYSOUT=*
//Y        DD SYSOUT=*
//TOOLIN   DD *
  COPY FROM(IN) TO(TX) USING(CTLX)
  SPLICE FROM(TX) TO(T1) ON(1,2,CH) WITH(01,88) -
         WITHALL KEEPBASE USING(CTL1)
  SORT FROM(T1) USING(CTL2)
//CTLXCNTL DD *
    INREC IFTHEN=(WHEN=INIT,
                  OVERLAY=(81:SEQNUM,8,ZD,C'9')),
          IFTHEN=(WHEN=(5,1,CH,EQ,C'X'),
                  OVERLAY=(89:C'1')),
          IFTHEN=(WHEN=(5,1,CH,EQ,C'Y'),
                  OVERLAY=(89:C'2'))
//CTL1CNTL DD *
  SORT FIELDS=(01,02,CH,A,
               89,01,CH,A)
//CTL2CNTL DD *
    SORT FIELDS=(81,08,CH,A)
    OUTFIL FNAMES=X,INCLUDE=(89,1,ZD,EQ,1),
    OUTREC=(01,80)
    OUTFIL FNAMES=Y,INCLUDE=(89,1,ZD,EQ,2),
    OUTREC=(01,80)
/*

_________________
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
View user's profile Send private message Send e-mail Visit poster's website
maxisnowhere
Beginner


Joined: 25 May 2005
Posts: 59
Topics: 20

PostPosted: Mon Feb 05, 2007 1:45 am    Post subject: Reply with quote

wonderfull,
now it function!

I will anyway ask to our System Programmer to install the ptf.

Thanks a lot!!!

You are really nice Very Happy

See you next time, have a good one!
_________________
Maxisnowhere
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Utilities All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
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


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group