cancel
Showing results for 
Search instead for 
Did you mean: 

Mapping Error

Former Member
0 Kudos

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.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

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

Former Member
0 Kudos

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.

Former Member
0 Kudos

Hi

Stefan: What's an hex editor?

Is a program to detect what is the value in hexadecimal.

Search on google there is many programs to download.

Luis

Edited by: Luis Ortiz on Sep 21, 2010 9:44 PM

stefan_grube
Active Contributor
0 Kudos

Where do the data come from?

Hex editor:

http://en.wikipedia.org/wiki/Hex_editor

Former Member
0 Kudos

Thanks. Now I know hex editor can help me identify the junk character's value.

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?

My data comes from R/3.

stefan_grube
Active Contributor
0 Kudos

> 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?

Former Member
0 Kudos

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?

stefan_grube
Active Contributor
0 Kudos

> 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?

Former Member
0 Kudos

Sorry, forgot to mention that.

We send data from R/3 via RFC - so we are using RFC sender communication channel.

PI 7.1.

There should be any ASCII zero values in XML when data come from SAP.

Don't know what is meant by this line.

stefan_grube
Active Contributor
0 Kudos

By the way: is your SAP system unicode or not?

Maybe it is a code page issue.

What is the system language?

Former Member
0 Kudos

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?

stefan_grube
Active Contributor
0 Kudos

> 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.

Former Member
0 Kudos

Thanks. I checked my unicode settings in RFC Sender communication channel, and it is set.

So should not be that issue, right?

stefan_grube
Active Contributor
0 Kudos

> So should not be that issue, right?

Maybe not. But anyway you have to find the cause of the issue and fix it.

Answers (2)

Answers (2)

peter_wallner2
Active Contributor
0 Kudos

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

stefan_grube
Active Contributor
0 Kudos

> 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.