on 09-21-2010 3:26 PM
Hi.
I am just trying out my first PI scenario, and got stuck in very simple mapping
I keep getting error "EXCEPTION_DURING_EXECUTE" in the XML Monitor.
<SAP:P4>xception: XMLParser : #0 not allowed in Character~</SAP:P4>
The above is the error. Does the error not give me the field which resulted in error? Seems there is some junk character coming, but I cannot see it in the incoming payload. How to know (from monitoring) which field has this junk character?
Also, lets say a junk character is there. WIll PI give exception like this? Can we not let it pass it as it is to the external party and let the external party handle it?
Thanks in adv.
Hi,
Please try changing the file encoding in the Comms channel processing tab to 'ISO-8859-1' this will take care of the special character.
Regards,
Vishal
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Okay, I'd try to change the encoding.
But is there no way I can know which field has the junk character? Just now my message structure is small, so I can still take pain to find it. What if there are multiple records coming in the message and each record is of too big length? How am I supposed to search for my junk character then if PI just gives this error that "#0" not permissible?
Stefan: What's an hex editor?
Thanks in adv again.
> But my question is whether PI can tell which FIELD holds that junk character? Should not be difficult for it, since it already has XML representation of the record, isn't it?
For PI it is no valid XML therefore there are no fields.
Can you watch the XML? Is anything uncommon in it?
> My data comes from R/3.
Could you describe this more detailed?
Thanks Stefan.
My data comes from R/3 database tables - direct select from them based on selection screen criteria. This data is coming from various tables, and we just pass it as it is to PI.
I was thinking that as PI is making XML, it can know which field resulted in error.
But going by your reply, I presume PI will not tell what field resulted in error - it will give the error description only.
Correct?
> My data comes from R/3 database tables - direct select from them based on selection screen criteria. This data is coming from various tables, and we just pass it as it is to PI.
But how? Du you have an ABAP report calling an ABAP proxy/RFC/IDocs? Or do you select directly in table with JDBC adapter?
There should be any ASCII zero values in XML when data come from SAP.
Which PI release/SP do you use?
Unicode system Stefan.
Btw, I think we are going off-topic.
I know of ways how to handle things from R/3 side, if worse come to worse.
I wanted to PI capability since that's a gray area to me -> I repeat my question -> Cannot PI tell me which record and which field resulted in generation of XML message?
> Btw, I think we are going off-topic.
No, we are not.
You have an issue in an XML sent by RFC adapter. RFC adapter creates a wrong entry ascii zero, which is not allowed in XML, so the question is: why it happens, and how to solve?
I think the reason is that you have a unicode system, but not set the unicode flags in communication channel and in SM59 from sender system correctly.
In a unicode system every character is represented by two bytes, for ASCII values one of them is zero.
When PI assumes it is a non-unicode system, the zeros become part of the payload.
So adjust the unicode settings, that should help.
Hello Aishi,
I think the "rule" in EDI is that the sender is responsible for sending correct data. I assume you would also not like to receive an erroneous message from some partner and you would have to fix it.
I am sure there is some special character in your message. Try a different "srcEncoding" in your sender adapter under the tab
"Module".
Best regards,
Peter
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
> Seems there is some junk character coming, but I cannot see it in the incoming payload. How to know (from monitoring) which field has this junk character?
This is an ASCII zero value, a non-printable character. You need a hex editor to watch it.
> Also, lets say a junk character is there. WIll PI give exception like this? Can we not let it pass it as it is to the external party and let the external party handle it?
The ASCII zero value makes it impossible to parse the XML, so PI cannot simple pass it to receiver.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
85 | |
10 | |
10 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.