View previous topic :: View next topic
Author
Message
vinodkrs New User Joined: 25 Mar 2008Posts: 10 Location: india
hi,
i have a input file as shown below
B25569946
A53895899
C56658858
D84666688
B89986566
C65849565
A98895885
C56659568
D66535856
A89566656
B15848689
D23894955
the records with first byte 'A' must be sorted based on bytes 2 and 3
the records with first byte 'B' must be sorted based on bytes 4 and 5
the records with first byte 'C' must be sorted based on bytes 6 and 7
the records with first byte 'D' must be sorted based on bytes 8 and 9
the jcl and the parameter used is as shown below
//STEP01 EXEC PGM=SORT,PARM='DYNALLOC=(SYSDA,16)'
//SYSOUT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//*
//SORTIN DD DSN=*****************************
//* RECORD 1
//SORTOF01 DD DSN=&&SORT1,DISP=(NEW,PASS),
// UNIT=SYSALLDA,
// SPACE=(CYL,(5,5),RLSE),
// DCB=(LRECL=2600,BLKSIZE=0,RECFM=FB)
//* RECORD 2
//SORTOF02 DD DSN=&&SORT2,DISP=(NEW,PASS),
// UNIT=SYSALLDA,
// SPACE=(CYL,(5,5),RLSE),
// DCB=(LRECL=2600,BLKSIZE=0,RECFM=FB)
//* RECORD 3
//SORTOF03 DD DSN=&&SORT3,DISP=(NEW,PASS),
// UNIT=SYSALLDA,
// SPACE=(CYL,(5,5),RLSE),
// DCB=(LRECL=2600,BLKSIZE=0,RECFM=FB)
//* RECORD 4
//SORTOF04 DD DSN=&&SORT4,DISP=(NEW,PASS),
// UNIT=SYSALLDA,
// SPACE=(CYL,(5,5),RLSE),
// DCB=(LRECL=2600,BLKSIZE=0,RECFM=FB)
//SYSIN DD DSN=***************(SORT1),DISP=SHR
//*
//STEP02 EXEC PGM=SORT,PARM='DYNALLOC=(SYSDA,16)'
//SYSOUT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//*
//SORTIN DD DSN=&&SORT1,DISP=(SHR,DELETE)
// DD DSN=&&SORT2,DISP=(SHR,DELETE)
// DD DSN=&&SORT3,DISP=(SHR,DELETE)
// DD DSN=&&SORT4,DISP=(SHR,DELETE)
//*
//SORTOUT DD DSN=********************,
// DISP=(,CATLG),UNIT=SYSALLDA,
// SPACE=(CYL,(5,5),RLSE),
// DCB=(LRECL=2600,BLKSIZE=0,RECFM=FB)
//*
//SYSIN DD DSN=****************(SORT2),DISP=SHR
SORT1
SORT FIELDS=COPY
OUTFIL FILES=01,
INCLUDE=(1,1,CH,EQ,C'A')
SORT FIELDS=(2,2,CH,A)
OUTFIL FILES=02,
INCLUDE=(1,1,CH,EQ,C'B')
SORT FIELDS=(4,2,CH,A)
OUTFIL FILES=03,
INCLUDE=(1,1,CH,EQ,C'C')
SORT FIELDS=(6,2,CH,A)
OUTFIL FILES=04,
INCLUDE=(1,1,CH,EQ,C'D')
SORT FIELDS=(8,2,CH,A)
SORT2
SORT FIELDS=COPY
But while trying this its abending.
kindly provide me a solution to this.
Back to top
murmohk1 Senior Member Joined: 29 Jun 2006Posts: 1436 Location: Bangalore,India
Vinod,
Use multiple passes in the same step. Try ICETOOL/SYNCTOOL (applicable).
Back to top
expat Global Moderator Joined: 14 Mar 2007Posts: 8797 Location: Welsh Wales
Also posting the error messages from the run would be helpful
Back to top
vinodkrs New User Joined: 25 Mar 2008Posts: 10 Location: india
is it possible to do this using syncsort?
the error messages are
WER269A SORT STATEMENT : DUPLICATE STATEMENT FOUND
WER269A SORT STATEMENT : DUPLICATE STATEMENT FOUND
WER269A SORT STATEMENT : DUPLICATE STATEMENT FOUND
WER269A SORT STATEMENT : DUPLICATE STATEMENT FOUND
Back to top
ParagChouguley Active User Joined: 03 Feb 2007Posts: 175 Location: PUNE(INDIA)
Hi,
Here is a syncsort ICETOOL job that will do what you had asked.
Code:
//S1 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN1 DD *
B25569946
A53895899
C56658858
D84666688
B89986566
C65849565
A98895885
C56659568
D66535856
A89566656
B15848689
D23894955
/*
//OUTA DD DSN=OUTPUT-FILE-FOR-A,
// DSORG=PS,RECFM=FB,DISP=(NEW,CATLG,DELETE)
//OUTB DD DSN=OUTPUT-FILE-FOR-B,
// DSORG=PS,RECFM=FB,DISP=(NEW,CATLG,DELETE)
//OUTC DD DSN=OUTPUT-FILE-FOR-C,
// DSORG=PS,RECFM=FB,DISP=(NEW,CATLG,DELETE)
//OUTD DD DSN=OUTPUT-FILE-FOR-D,
// DSORG=PS,RECFM=FB,DISP=(NEW,CATLG,DELETE)
//TOOLIN DD *
SORT FROM(IN1) TO(OUTA) USING(SRT1)
/*
//SRT1CNTL DD *
SORT FIELDS=(1,2,CH,A)
INREC IFTHEN=(WHEN=(1,1,CH,EQ,C'A'),
BUILD=(2,2,1,9)),
IFTHEN=(WHEN=(1,1,CH,EQ,C'B'),
BUILD=(4,2,1,9)),
IFTHEN=(WHEN=(1,1,CH,EQ,C'C'),
BUILD=(6,2,1,9)),
IFTHEN=(WHEN=(1,1,CH,EQ,C'D'),
BUILD=(8,2,1,9))
OUTFIL FNAMES=(OUTA),INCLUDE=(3,1,CH,EQ,C'A'),OUTREC=(3,9)
OUTFIL FNAMES=(OUTB),INCLUDE=(3,1,CH,EQ,C'B'),OUTREC=(3,9)
OUTFIL FNAMES=(OUTC),INCLUDE=(3,1,CH,EQ,C'C'),OUTREC=(3,9)
OUTFIL FNAMES=(OUTD),INCLUDE=(3,1,CH,EQ,C'D'),OUTREC=(3,9)
/*
File for A:
Code:
A53895899
A89566656
A98895885
File for b:
Code:
B25569946
B15848689
B89986566
File for C:
Code:
C56658858
C65849565
C56659568
File for D:
Code:
D23894955
D66535856
D84666688
--Parag
Back to top
Please enable JavaScript!