ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » IDOC Parser error

Post new topic  Reply to topic
 IDOC Parser error « View previous topic :: View next topic » 
Author Message
smeunier
PostPosted: Mon Dec 19, 2005 1:11 pm    Post subject: IDOC Parser error Reply with quote

Partisan

Joined: 19 Aug 2002
Posts: 305
Location: Green Mountains of Vermont

I'm converting IDOC message fromats headed to R3LINK interface, to be handled by WBI mySap.com adapter. This in no problem as I have prototyped and validated the process. As I enter test phase to accept IDOC formats from the sender, which work through R3LINK, I encounter the following error:

Code:

ParserException  BIP6118E: The remaining bitstream is too small to contain the indicated structure.
                                       The bitstream, as presented to the 'IDOC' parser, is too small to contain the 'IDOC' structure.  The length of this structure as given in the structure header is '1695'.  The message appears to have been truncated.


This is the size of the transaction which is curently being sent to R3LINK. This includes an SAPH header and a IDOC DC and DD structure. The DC and DD structures appear to be of the correct length and obviously must as they are acceptable by SAP. So I'm lost as to why the IDOC structure does not map. The messageSet map was created via the hdrFiddle.pl script from ia0f support pack. The structure maps to:
SAPH=108
DC=524
DD=1063

Ideas?
[/code]
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Mon Dec 19, 2005 2:00 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

You do not specify the version.
You do not specify whether trailing spaces are removed...
Yes the structure is 1063 long with 1000 significant chars. However if the segment needs less than 1000 chars the rest is usually set to space.
Now if this gets stripped because of trailing spaces you might get a message like what you did.

Enjoy
Back to top
View user's profile Send private message Send e-mail
smeunier
PostPosted: Mon Dec 19, 2005 5:16 pm    Post subject: Reply with quote

Partisan

Joined: 19 Aug 2002
Posts: 305
Location: Green Mountains of Vermont

By version I expect you meant, what version of the message broker? If you this is version 5 with CSD04

The message coming in is padded with spaces, so there is only about 100 off the 1000 bytes filled in, the rest are spaces. Are trailing spaces stripped? Not by me. The Message set uses spaces as the default padding. How would I control the stripping of spaces? Is there a setting as part of the input node? this is where the message is failing. I could verify that, by sending in one full with bogus data.
Back to top
View user's profile Send private message
kimbert
PostPosted: Tue Dec 20, 2005 2:00 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

I can answer a couple of your questions:
Quote:
The Message set uses spaces as the default padding
This is probably not relevant - it looks as if it is the entire message which is being truncated. The 'padding' settings in a message set apply to individual fields.
Quote:
Are trailing spaces stripped? Not by me.
Nor by the message broker. The MQInput node has no such behaviour.
So...what length is your input message. I'm not familiar with SAP messages, but it obviously needs to be at least 1695 bytes long. Have you checked this?
Back to top
View user's profile Send private message
smeunier
PostPosted: Tue Dec 20, 2005 5:19 am    Post subject: Reply with quote

Partisan

Joined: 19 Aug 2002
Posts: 305
Location: Green Mountains of Vermont

The messages coming in are of the correct length, which is why this is even more confusing. I have removed the spaces and added characters. Same message. If I increase the message size to greater than the range of the expected structure in the MRM, I get the same message, just with a different length specified. I have tried running a user trace to determine what may be causing the problem, but I do not see a possible cause. Any suggestions?
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue Dec 20, 2005 5:20 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

Do you have an embedded null in the message?
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
smeunier
PostPosted: Tue Dec 20, 2005 6:24 am    Post subject: Reply with quote

Partisan

Joined: 19 Aug 2002
Posts: 305
Location: Green Mountains of Vermont

The data as shown via the rfhutil utility, does not show any hex zeros' representing nulls. Here is the data shown as the blob on the error message:

See the following messages for details of the error.
2005-12-20 09:17:38.114505 10281 ParserException BIP5902W: An error occurred in parser 'Root' whilst parsing the field named 'IDOC' on behalf of node 'IDOC_IN_ZMDP_CLASS01.MD_SAP.TEST'. The data being parsed was '4d442020000000020000000000000008ffffffff0000000000000222000001b520202020202020200000000000000000414d51204d445341504544312020202043836e0920014501000000000000000000000000000000000000000000000000000000002020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020204d44534150454431202020202020202020202020202020202020202020202020202020202020202020202020202020206d716d75737220202020202016010515000000bf785ec850db68c9ffc129b0f401000000000000000000000b20202020202020202020202020202020202020202020202020202020202020200000000b202020202020202020202020202020202020202020202020202020203230303531323230313431373338303920202020000000000000000000000000000000000000000000000000000000010000000000000000ffffffff4544495f44433430202030313720202020202020202020202020202020343643202020322020205a4d44505f434c41535330312020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020205a4d44505f434c415353202020202020202020202020202020202020202020202020202020202020202020202020202020413030303030303030314c5320204d51535f41534d5f444220202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020534150454431342020204c532020454431453031374d444420202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020205a324d44505f434c415353303030202020202020202020202020202020203031372020202020202020202020202020202030303030303130303030303030324d4444455630313a4d445453544630313a32303034303131333133333634313a35363432343a55504441544550415254303030303034375032303637323030303431313331333336343130303030303230303030304a4a52303030312020202020204d4f4420303120202020202020202020202020203030315a4d5f50524f44554354494f4e5f312020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020200d0a'.
This message gives the name of the field in the parser that was being parsed at the time the error occurred.
You should check for other messages issued with this one for the full context of the error.
2005-12-20 09:17:38.114612 10281 ParserException BIP6118E: The remaining bitstream is too small to
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue Dec 20, 2005 6:26 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

Can you compare this with the output from amqsbcg...

Cause I see a lot of '00' pairs in that BLOB data.....
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
smeunier
PostPosted: Tue Dec 20, 2005 8:48 am    Post subject: Reply with quote

Partisan

Joined: 19 Aug 2002
Posts: 305
Location: Green Mountains of Vermont

I wrote the data to a queue. Ran AMQSBCG. No sure where that data gets written to, so I used a facility called SNOOP. That identified that the message contained imbedded nulls. From what I can tell, and see, those null characters are only in the SAPH header and not in the body of the message. The error messahe indicates a structure error from the IDOC parser not the SAPH header parser. Ahh, but perhaps that is part of the problem? The broker does not know how to handle the message header!?!? and considers it part of the data.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue Dec 20, 2005 9:00 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

AMQSBCG writes data to standard output...

So, "amqsbcg .. >myoutput.txt"...
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
Tibor
PostPosted: Tue Dec 20, 2005 10:31 am    Post subject: Reply with quote

Grand Master

Joined: 20 May 2001
Posts: 1033
Location: Hungary

The IDOC parser should stand in with MRM parser: only SMQ, DC and DD header can parse, DD data need an MRM definition. Is this correct in your config?

Tibor
Back to top
View user's profile Send private message
smeunier
PostPosted: Tue Dec 20, 2005 11:21 am    Post subject: Reply with quote

Partisan

Joined: 19 Aug 2002
Posts: 305
Location: Green Mountains of Vermont

I had redirected the output as you mentioned. There were only what messages that the program had written: such as completed. It consumed the messages off the queue. So whats with that I don't know. However, I think the problem may lie with the SAPH header that is with the message. I had assumed that the broker would consume this, leaving just the IDOC message itself.

Example: SAPH??????l????3MQSTR ????

So I come to this question. Apparently there is no parser for this header withing the broker. So I'm left with best how to handle this situation.

1) Have external interface remove the SAPH record, which was not part of the plan or add it to the messageSet which I'm not sure if that just becomes another message and type. I think so. I hate to do this, because this means adding this to numerous messages. how best can I strip this part of the message out?
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Tue Dec 20, 2005 3:24 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

You have to define the SAPH header as what it is a HEADER.
It is not part of the message payload and as such is not to be parsed by the IDOC handler.

On top of that the SAP header deals with binary information in part for its numerical information as the IDOC is supposed to be only text.

Your parser will kill you if you did not strip the SAPH header (R3-Link)as header from the message.

Enjoy
Back to top
View user's profile Send private message Send e-mail
smeunier
PostPosted: Wed Dec 21, 2005 7:56 pm    Post subject: Reply with quote

Partisan

Joined: 19 Aug 2002
Posts: 305
Location: Green Mountains of Vermont

To resolve the issue. I now receive the message as a BLOB. In a compute node I strip off the first 108 bytes(SAPH) and then send the message to a RCD node and convert to IDOC parser usage. This worked fine.

Thanks all!
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » IDOC Parser error
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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.