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

compare 2 records in seq. file & report differences


IBM Mainframe Forums -> DFSORT/ICETOOL
Post new topic   This topic is locked: you cannot edit posts or make replies.
View previous topic :: View next topic  
Author Message
acevedo

Active User


Joined: 11 May 2005
Posts: 344
Location: Spain

PostPosted: Wed Feb 13, 2008 7:06 pm
Reply with quote

agree!
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10872
Location: italy

PostPosted: Wed Feb 13, 2008 7:17 pm
Reply with quote

it' s amazing the personality changes which take place in these forums.

the thread ...
was started by dr.ostman, who disappeared on fri 8/2
was resurrected on Mon 11/2 by rajatbagga
Back to top
View user's profile Send private message
Skolusu

Senior Member


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

PostPosted: Wed Feb 13, 2008 10:19 pm
Reply with quote

rajatbagga wrote:
hi Skolusu,

Thanks for telling me the problem...Its very difficult to contact system programers at my site and even they wont agree for this..... icon_sad.gif

Is there any other way to code this JCL then please let me know...


Here is the DFSORT/ICETOOL JOB which should work with your version.

Code:

//STEP0100 EXEC PGM=ICETOOL
//TOOLMSG  DD SYSOUT=*
//DFSMSG   DD SYSOUT=*
//IN       DD *
RECORD01INCLUDESSOMETHINGY
RECORD02INCLUDES  NOTHINGX
//T1       DD DSN=&&T1,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE)
//T2       DD DSN=&&T2,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE)
//OUT      DD SYSOUT=*
//TOOLIN   DD *
  COPY FROM(IN) TO(T1) USING(CTL1)
  SPLICE FROM(T1) TO(T2) WITHEACH  ON(161,08,CH) -
    WITH(081,80) KEEPNODUPS USING(CTL2)
  COPY FROM(T2) TO(OUT) USING(CTL3)
//CTL1CNTL DD *
 INREC IFTHEN=(WHEN=INIT,
      OVERLAY=(161:SEQNUM,8,ZD,START=2,INCR=1,
               169:161,8,ZD,MOD,+2,TO=ZD,LENGTH=1)),
    IFTHEN=(WHEN=(169,1,ZD,EQ,01),
     BUILD=(081:01,80,161:161,8,ZD,SUB,169,1,ZD,M11,LENGTH=8))
//CTL2CNTL DD *
 OUTFIL FNAMES=T2,
 IFTHEN=(WHEN=INIT,OVERLAY=(161:80X)),
 IFTHEN=(WHEN=(001,1,CH,NE,081,1,CH),OVERLAY=(161:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(002,1,CH,NE,082,1,CH),OVERLAY=(162:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(003,1,CH,NE,083,1,CH),OVERLAY=(163:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(004,1,CH,NE,084,1,CH),OVERLAY=(164:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(005,1,CH,NE,085,1,CH),OVERLAY=(165:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(006,1,CH,NE,086,1,CH),OVERLAY=(166:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(007,1,CH,NE,087,1,CH),OVERLAY=(167:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(008,1,CH,NE,088,1,CH),OVERLAY=(168:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(009,1,CH,NE,089,1,CH),OVERLAY=(169:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(010,1,CH,NE,090,1,CH),OVERLAY=(170:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(011,1,CH,NE,091,1,CH),OVERLAY=(171:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(012,1,CH,NE,092,1,CH),OVERLAY=(172:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(013,1,CH,NE,093,1,CH),OVERLAY=(173:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(014,1,CH,NE,094,1,CH),OVERLAY=(174:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(015,1,CH,NE,095,1,CH),OVERLAY=(175:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(016,1,CH,NE,096,1,CH),OVERLAY=(176:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(017,1,CH,NE,097,1,CH),OVERLAY=(177:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(018,1,CH,NE,098,1,CH),OVERLAY=(178:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(019,1,CH,NE,099,1,CH),OVERLAY=(179:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(020,1,CH,NE,100,1,CH),OVERLAY=(180:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(021,1,CH,NE,101,1,CH),OVERLAY=(181:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(022,1,CH,NE,102,1,CH),OVERLAY=(182:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(023,1,CH,NE,103,1,CH),OVERLAY=(183:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(024,1,CH,NE,104,1,CH),OVERLAY=(184:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(025,1,CH,NE,105,1,CH),OVERLAY=(185:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(026,1,CH,NE,106,1,CH),OVERLAY=(186:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(027,1,CH,NE,107,1,CH),OVERLAY=(187:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(028,1,CH,NE,108,1,CH),OVERLAY=(188:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(029,1,CH,NE,109,1,CH),OVERLAY=(189:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(030,1,CH,NE,110,1,CH),OVERLAY=(190:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(031,1,CH,NE,111,1,CH),OVERLAY=(191:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(032,1,CH,NE,112,1,CH),OVERLAY=(192:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(033,1,CH,NE,113,1,CH),OVERLAY=(193:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(034,1,CH,NE,114,1,CH),OVERLAY=(194:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(035,1,CH,NE,115,1,CH),OVERLAY=(195:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(036,1,CH,NE,116,1,CH),OVERLAY=(196:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(037,1,CH,NE,117,1,CH),OVERLAY=(197:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(038,1,CH,NE,118,1,CH),OVERLAY=(198:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(039,1,CH,NE,119,1,CH),OVERLAY=(199:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(040,1,CH,NE,120,1,CH),OVERLAY=(200:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(041,1,CH,NE,121,1,CH),OVERLAY=(201:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(042,1,CH,NE,122,1,CH),OVERLAY=(202:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(043,1,CH,NE,123,1,CH),OVERLAY=(203:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(044,1,CH,NE,124,1,CH),OVERLAY=(204:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(045,1,CH,NE,125,1,CH),OVERLAY=(205:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(046,1,CH,NE,126,1,CH),OVERLAY=(206:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(047,1,CH,NE,127,1,CH),OVERLAY=(207:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(048,1,CH,NE,128,1,CH),OVERLAY=(208:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(049,1,CH,NE,129,1,CH),OVERLAY=(209:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(050,1,CH,NE,130,1,CH),OVERLAY=(210:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(051,1,CH,NE,131,1,CH),OVERLAY=(211:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(052,1,CH,NE,132,1,CH),OVERLAY=(212:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(053,1,CH,NE,133,1,CH),OVERLAY=(213:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(054,1,CH,NE,134,1,CH),OVERLAY=(214:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(055,1,CH,NE,135,1,CH),OVERLAY=(215:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(056,1,CH,NE,136,1,CH),OVERLAY=(216:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(057,1,CH,NE,137,1,CH),OVERLAY=(217:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(058,1,CH,NE,138,1,CH),OVERLAY=(218:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(059,1,CH,NE,139,1,CH),OVERLAY=(219:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(060,1,CH,NE,140,1,CH),OVERLAY=(220:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(061,1,CH,NE,141,1,CH),OVERLAY=(221:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(062,1,CH,NE,142,1,CH),OVERLAY=(222:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(063,1,CH,NE,143,1,CH),OVERLAY=(223:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(064,1,CH,NE,144,1,CH),OVERLAY=(224:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(065,1,CH,NE,145,1,CH),OVERLAY=(225:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(066,1,CH,NE,146,1,CH),OVERLAY=(226:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(067,1,CH,NE,147,1,CH),OVERLAY=(227:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(068,1,CH,NE,148,1,CH),OVERLAY=(228:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(069,1,CH,NE,149,1,CH),OVERLAY=(229:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(070,1,CH,NE,150,1,CH),OVERLAY=(230:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(071,1,CH,NE,151,1,CH),OVERLAY=(231:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(072,1,CH,NE,152,1,CH),OVERLAY=(232:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(073,1,CH,NE,153,1,CH),OVERLAY=(233:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(074,1,CH,NE,154,1,CH),OVERLAY=(234:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(075,1,CH,NE,155,1,CH),OVERLAY=(235:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(076,1,CH,NE,156,1,CH),OVERLAY=(236:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(077,1,CH,NE,157,1,CH),OVERLAY=(237:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(078,1,CH,NE,158,1,CH),OVERLAY=(238:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(079,1,CH,NE,159,1,CH),OVERLAY=(239:C'+'),HIT=NEXT),
 IFTHEN=(WHEN=(080,1,CH,NE,160,1,CH),OVERLAY=(240:C'+'))
//CTL3CNTL DD *
 OUTFIL FNAMES=OUT,IFOUTLEN=80,
 IFTHEN=(WHEN=(161,80,CH,EQ,C' '),BUILD=(01,80,/,081,80)),
 IFTHEN=(WHEN=NONE,BUILD=(01,80,/,161,80,/,081,80))
/*
Back to top
View user's profile Send private message
rajatbagga

Active User


Joined: 11 Mar 2007
Posts: 199
Location: india

PostPosted: Fri Feb 15, 2008 10:37 pm
Reply with quote

Thank you very much Kolusu.... icon_smile.gif
Back to top
View user's profile Send private message
rajatbagga

Active User


Joined: 11 Mar 2007
Posts: 199
Location: india

PostPosted: Tue Sep 20, 2016 10:50 am
Reply with quote

Skolusu wrote:
dr.ostman,

Here is DFSORT/ICETOOL Job which will give the desired results. However there are certain limitations for the job.

1. We can compare upto a max lrecl of 9999.
2. Input files are are always FB (no variable block files)

You need to supply the LRECL of the file to be compared via SYMNAMES DD.
Code:

//SYMNAMES DD *
LRECL,+nnnn


The range of n is from +1 to +4096.

Once you supply the LRECL in STEP0100 of the job it automatically builds the control cards on the fly and the actual compare is done in step0200 using the dynamic control cards created in step0100.

Code:

//STEP0100 EXEC PGM=ICETOOL
//TOOLMSG  DD SYSOUT=*
//DFSMSG   DD SYSOUT=*
//SYMNAMES DD *
LRECL,+0080
//IN       DD *
DUMMY RECORD
//C1       DD DSN=&&C1,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE)
//C2       DD DSN=&&C2,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE)
//C3       DD DSN=&&C3,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE)
//C5       DD DSN=&&C5,DISP=(,PASS),SPACE=(CYL,(5,5),RLSE)
//T1       DD DSN=&&T1,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE)
//T2       DD DSN=&&T2,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE)
//TOOLIN   DD *
  COPY FROM(IN) USING(CTL1)
  COPY FROM(IN) USING(CTL2)
//CTL1CNTL DD *
  SORT FIELDS=COPY
  OUTREC FIELDS=(+0,ADD,LRECL,ZD,LENGTH=4,X,
                 +1,ADD,(+0,MUL,LRECL),ZD,LENGTH=4,X,
                 +1,ADD,LRECL,ZD,LENGTH=4,X,
                 +1,ADD,(+2,MUL,LRECL),ZD,LENGTH=4,80:X)

  OUTFIL FNAMES=T1,
  BUILD=(C'SPLICE FROM(IN) TO(M1) WITHEACH  ON(',16,4,
         C',08,CH) - ',/,
         C'WITH(',11,4,C',',1,4,
         C') KEEPNODUPS USING(CTL1)',/,
         C'COPY FROM(M1) TO(OUT) USING(CTL2)',80:X)

  OUTFIL FNAMES=T2,
  BUILD=(C' OUTFIL FNAMES=OUT,IFOUTLEN=',1,4,C',',/,
         C' IFTHEN=(WHEN=(',16,4,C',',1,4,
         C',CH,EQ,C',C'''',X,C'''',
         C'),BUILD=(01,',1,4,C',/,',
         11,4,C',',1,4,C')),',/,
         C' IFTHEN=(WHEN=NONE,BUILD=(01,',
         1,4,C',/,',16,4,C',',1,4,C',/,',11,4,C',',1,4,
         C'))',80:X)

  OUTFIL FNAMES=C1,
         BUILD=(C' INREC IFTHEN=(WHEN=INIT,',/,
                5X,C'OVERLAY=(',16,4,
                C':SEQNUM,8,ZD,START=2,INCR=1,',/,
                14X,+8,ADD,16,4,ZD,EDIT=(TTTT),
                C':',16,4,C',8,ZD,MOD,+2,TO=ZD,LENGTH=1)),',/,
                4X,C'IFTHEN=(WHEN=(',
                +8,ADD,16,4,ZD,EDIT=(TTTT),
                C',1,ZD,EQ,01),',/,
                5X,C'BUILD=(',11,4,C':01,',1,4,C',',
                16,4,C':',16,4,
                C',8,ZD,SUB,',
                +8,ADD,16,4,ZD,EDIT=(TTTT),
                C',1,ZD,M11,LENGTH=8))',80:X)

  OUTFIL FNAMES=C2,
         BUILD=(C' OUTFIL FNAMES=M1,',/,
                C' IFTHEN=(WHEN=INIT,OVERLAY=(',16,4,C':',
                1,4,C'X)),',80:X)

  OUTFIL FNAMES=C3,
         BUILD=(C' IFTHEN=(WHEN=(1,1,CH,NE,1,1,CH),',
                C'OVERLAY=(1:1,1))',80:X)

  OUTFIL FNAMES=CTL2CNTL,
         BUILD=(C' OPTION COPY,STOPAFT=1',/,
                C' OUTFIL FNAMES=C5,REPEAT=',1,4,C',',/,
                C' OUTREC=(C''',
                C' IFTHEN=(WHEN=(',C'''',C',',
                C'SEQNUM,4,ZD,START=',6,4,C',',72:C'*',/,
                9X,C'C''',C',1,CH,NE,',C'''',C',',
                C'SEQNUM,4,ZD,START=',11,4,C',',72:C'*',/,
                9X,C'C''',C',1,CH),OVERLAY=(',C'''',C',',
                C'SEQNUM,4,ZD,START=',16,4,C',',72:C'*',/,
                9X,C'C''',C':C',C'''',C',C',4C'''',C',C',
                C'''',C'+',C'''',C',C',4C'''',C',C',
                C'''',C'),HIT=NEXT),',C'''',C',80:X)',80:X)
/*
//CTL2CNTL DD DSN=&&C4,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE)
/*
//STEP0200 EXEC PGM=ICETOOL
//TOOLMSG  DD SYSOUT=*
//DFSMSG   DD SYSOUT=*
//IN       DD DSN=YOUR INPUT FILE,
//            DISP=SHR
//M1       DD DSN=&&M1,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE)
//OUT      DD SYSOUT=*
//TOOLIN   DD DSN=&&T1,DISP=SHR
//CTL1CNTL DD DSN=&&C1,DISP=SHR
//         DD DSN=&&C2,DISP=SHR
//         DD DSN=&&C5,DISP=SHR
//         DD DSN=&&C3,DISP=SHR
//CTL2CNTL DD DSN=&&T2,DISP=SHR
/*



Hello Skolusu, I know it's been a while now, but is the above code still valid.. I tried to run it for 380 LRECL but it failed at STEP0200 giving


Code:
ICE000I 0 - CONTROL STATEMENTS FOR 5650-ZOS, Z/OS DFSORT V2R1  - 15:08 ON TUE SE
           OUTFIL FNAMES=OUT,IFOUTLEN=0380,                                     
           IFTHEN=(WHEN=(0761,0380,CH,EQ,C' '),BUILD=(01,0380,/,0381,0380)),   
           IFTHEN=(WHEN=NONE,BUILD=(01,0380,/,0761,0380,/,0381,0380))           
ICE146I 0 END OF STATEMENTS FROM CTL2CNTL - PARAMETER LIST STATEMENTS FOLLOW   
          DEBUG NOABEND,ESTAE                                                   
          OPTION MSGDDN=DFSMSG,LIST,MSGPRT=ALL,RESINV=0,SORTDD=CTL2,SORTIN=M1,SO
                         TOUT=OUT,DYNALLOC                                     
          SORT FIELDS=COPY                                                     
ICE221A 1 INVALID FIELD OR CONSTANT IN OUT      IFTHEN 1 CONDITION 1           


Regards,
Rajat
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Tue Sep 20, 2016 11:56 am
Reply with quote

Did you attempt to look at the diagnostic message, ICE221A? Poke that into a search and the first hit should be one at IBM, click and you should go to the Knowledgecentre and it should show the full explanation of the record. If you ignore the bits which are obviously, from the actual content of the message in your case, not relevant, then the first line you will come to describes your problem.
Back to top
View user's profile Send private message
rajatbagga

Active User


Joined: 11 Mar 2007
Posts: 199
Location: india

PostPosted: Tue Sep 20, 2016 1:33 pm
Reply with quote

Bill Woodger wrote:
Did you attempt to look at the diagnostic message, ICE221A? Poke that into a search and the first hit should be one at IBM, click and you should go to the Knowledgecentre and it should show the full explanation of the record. If you ignore the bits which are obviously, from the actual content of the message in your case, not relevant, then the first line you will come to describes your problem.


Hello Bill, Thanks, I did had a look at the error message, but interesting part is that the same job work perfectly well with 80 bytes of data. However when I used the data with 380 LRECL it failed. I compared the card which are generated in both the cases and they both appear to the same [just the offset values were adjusted accordingly]

I saw that there is a limitation of 9999 LRECL and the file must be FB but that doesn't seem to be true any more... based on the error i received.

Regards,
Rajat



Regards,
Rajat
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Tue Sep 20, 2016 3:05 pm
Reply with quote

You didn't notice a 256 byte limit?

Quote:
ddname and n>0 indicates that an IFTHEN WHEN, BEGIN or END operand of an OUTFIL statement caused the error. ddname identifies the first data set in the associated OUTFIL group. n identifies the number of the associated IFTHEN clause (starting at 1 for the first IFTHEN clause in the OUTFIL statement).

One of the following errors was detected:

the length for a field with a format other than SS was greater than 256
the length for a PD field not used with NUM was 256
the length for a PD0 field was less than 2 or greater than 8
the length for a CSF or FS field not used with NUM was greater than 32
the length for a UFF or SFF field was greater than 44
the length for a CSL, CST, ASL, or AST field was 1
the decimal constant for an FI field was greater than +9223372036854775807 or less than -9223372036854775808
the decimal constant for a BI field was greater than 18446744073709551615 or less than +0
the number of digits (including leading zeros) in the decimal constant for an FI or BI field was greater than 31
the length for a Y2 field was not 2 for Y2C, Y2Z, Y2P or Y2S, or 1 for Y2D or Y2B, or 3–6 for Y2T or Y2W, or 2–3 for Y2U or Y2X, or 3–4 for Y2V or Y2Y
a Y2 field was compared to another Y2 field with a different number of non-year digits
a Y2 field was compared to a Y constant with a different number of non-year digits
a Y2 field other than Y2S, Y2T or Y2W was compared to Y'LOW', Y'BLANKS' or Y'HIGH'
a Y2 field was compared to a constant that was not a Y constant.
Back to top
View user's profile Send private message
Arun Raj

Moderator


Joined: 17 Oct 2006
Posts: 2481
Location: @my desk

PostPosted: Tue Sep 20, 2016 6:12 pm
Reply with quote

I think rajatbagga was trying to highlight this point here.
Skolusu wrote:
dr.ostman,

Here is DFSORT/ICETOOL Job which will give the desired results. However there are certain limitations for the job.

1. We can compare upto a max lrecl of 9999.
2. Input files are are always FB (no variable block files)
Not sure if the solution was tested with a dataset as long as 380 bytes back then. Regardless, there had been valid points raised about if this is the right tool to be used for such a requirement.
Back to top
View user's profile Send private message
Terry Heinze

JCL Moderator


Joined: 14 Jul 2008
Posts: 1249
Location: Richfield, MN, USA

PostPosted: Tue Sep 20, 2016 6:45 pm
Reply with quote

I hope dr.ostman hasn't been waiting 8 years for a solution. icon_smile.gif
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10872
Location: italy

PostPosted: Tue Sep 20, 2016 6:50 pm
Reply with quote

nope the &idiot disappeared after having complained about Skolusu skills
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Tue Sep 20, 2016 8:01 pm
Reply with quote

The limit mentioned referred to the LRECL, not to the length of a comparison field which was changed eight-and-a-half years later and which couldn't have been predicted at the time.

To compare longer than 256 for a single field, just have it as multiple fields adding up in length to the desired size and use AND.

If after eight-and-a-half years they have a newer release of DFSORT, there's probably a different way to do the whole shebang.
Back to top
View user's profile Send private message
Arun Raj

Moderator


Joined: 17 Oct 2006
Posts: 2481
Location: @my desk

PostPosted: Tue Sep 20, 2016 8:36 pm
Reply with quote

Bill Woodger wrote:
The limit mentioned referred to the LRECL, not to the length of a comparison field which was changed eight-and-a-half years later and which couldn't have been predicted at the time.
Bill,

Kolusu's dynamic sort as I understand, is to compare each byte of the record since the original 80-byte requirement stated so. So if the SYMNAMES have LRECL=200, it generates control statements to compare each byte from pos-1 to pos-200. However if anyone trying to use this to compare any datasets longer than 256 lrecl to do a byte-by-byte comparison is going to end up with ICE221A error.

Even though I am not so in favor of a SORT approach to handle this, rajatbagga has a point that the '9999 LRECL limit' does not really hold good for comparisons beyond 256.
Back to top
View user's profile Send private message
Rohit Umarjikar

Global Moderator


Joined: 21 Sep 2010
Posts: 3048
Location: NYC,USA

PostPosted: Tue Sep 20, 2016 8:50 pm
Reply with quote

rajatbagga, Please start a new topic with new requirement. locked.
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Tue Sep 20, 2016 8:50 pm
Reply with quote

Yes, but it is not that part which is failing. Take the IFTHEN out and 380 is not a problem (except for with the results). Just changing the IFTHEN should get the thing rumbling again. When giving someone directions to find a place, you don't have to say "remember to wear your trousers!" do you? There's things people should know/be able to work out without being spoon-fed everything.
Back to top
View user's profile Send private message
Arun Raj

Moderator


Joined: 17 Oct 2006
Posts: 2481
Location: @my desk

PostPosted: Tue Sep 20, 2016 9:13 pm
Reply with quote

All are welcome to take the directions provided here and build on it to achieve what they want. At the same time if something is overlooked, I think we got to admit that too.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   This topic is locked: you cannot edit posts or make replies. View Bookmarks
All times are GMT + 6 Hours
Forum Index -> DFSORT/ICETOOL Goto page 1, 2  Next

 


Similar Topics
Topic Forum Replies
No new posts How to split large record length file... DFSORT/ICETOOL 10
No new posts Extracting Variable decimal numbers f... DFSORT/ICETOOL 17
No new posts SFTP Issue - destination file record ... All Other Mainframe Topics 2
No new posts Access to non cataloged VSAM file JCL & VSAM 18
No new posts Compare only first records of the fil... SYNCSORT 7
Search our Forums:

Back to Top