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

HELP understanding Error msg ICE126A


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

New User


Joined: 15 Dec 2005
Posts: 72
Location: RALEIGH NC, USA

PostPosted: Fri Jan 25, 2008 2:00 am
Reply with quote

Please help me understand the error msg ICE126A

This is the JCL
Code:
//SORTIN   DD DISP=SHR,DSN=TMASTSUM.D123107   
//SORTOUT  DD DSN=TMASTSUM.RDF,                   
//         DCB=(LRECL=167,BLKSIZE=167,RECFM=FB),UNIT=DISK, 
//         VOL=SER=TRN002,SPACE=(CYL,(600,10),RLSE)         
//SORTWK01 DD UNIT=SYSDA,SPACE=(CYL,(100,25))               
//SYSPRINT DD SYSOUT=*                                     
//SYSOUT   DD SYSOUT=*                                     
//SYSIN    DD *                                             
    OPTION COPY                                             
    INREC BUILD=(1,38,X'00',40:39,49,X'00',51:50,117)     
 


This is the output from the job
Code:
  OPTION COPY                                               
            INREC BUILD=(1,38,X'00',40:39,49,X'00',51:50,117)         
ICE201I  0 RECORD TYPE IS F - DATA STARTS IN POSITION 1                 
ICE126A 0 INCONSISTENT *INREC   IFTHEN 0 REFORMATTING FIELD FOUND       
ICE751I 0 C5-K05352 C6-Q95214 C7-K90000 C8-K05352 E9-K06751 E7-K90000   
ICE052I 3 END OF DFSORT                                                 



I'm trying to insert HEX 00 in between filelds
The input record is FB, lrecl =165
The output will be FB 168 because I'm insert two one-btye fields

What am I doing wrong ?
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: Fri Jan 25, 2008 2:31 am
Reply with quote

Code:
   
   INREC BUILD=(1,38,X'00',40:39,49,X'00',51:50,117)   


You received the errror message because you have overlapping fields.

40:39,49,X'00'

builds the output record up to position 89. But then you have 51: which says to start the next byte in position 51 which is before 89. You can't overlap fields that way.

I think maybe you are using the ending position (49) instead of the length.

If you tell me where you want to insert those two X'00' characters, I can tell you how to set up the INREC statement. It appears you want the first X'00' after input positions 1 to 38. But where do you want the second X'00' - after input positions 39 to what?

Quote:
The input record is FB, lrecl =165
The output will be FB 168 because I'm insert two one-btye fields


That would be 165+2 = 167, not 168.

Also, you can remove the //SORTWK01 DD statement - it isn't used for COPY. You can also remove the //SYSPRINT DD statement as DFSORT doesn't use it.
Back to top
View user's profile Send private message
srj1957

New User


Joined: 15 Dec 2005
Posts: 72
Location: RALEIGH NC, USA

PostPosted: Fri Jan 25, 2008 10:47 pm
Reply with quote

Thanks Frank re :
Quote:
I think maybe you are using the ending position (49) instead of the length.


Yes I was ...thanks for reminding me
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 Error to read log with rexx CLIST & REXX 11
No new posts Error when install DB2 DB2 2
No new posts CLIST - Virtual storage allocation error CLIST & REXX 5
No new posts Error while running web tool kit REXX... CLIST & REXX 5
No new posts Getting Error while trying to establi... DB2 3
Search our Forums:

Back to Top