cancel
Showing results for 
Search instead for 
Did you mean: 

Message Mapping Problem with UTF-16LE Encoded XML

Former Member
0 Kudos

Hello,

we have the following scenario:

IDoc > BPM > HTTP Sync Call > BPM > IDoc

Resonse message of the HTTP call is a XML file with UTF-16LE processing instruction. This response should then be mapped to a SYSTAT IDoc. However the message mapping fails "...XML Parser: No data allowed here ...".

So obviously the XML is not considered as well-formed.

When taking a look at SXMB_MONI the following message appears: "Switch from current encoding to specific encoding not supported.....".

Strange thing however is if I save the response file as XML and use the same XML file in the test tab message mapping is executed successfully.

I also tried to use a Java Mapping to switch encodings before executing message mapping, but the error remains.

Could the problem be, that the codepage UTF-16LE is not installed on the PI system ? Any idea on that ?

Thank you!

Edited by: Florian Guppenberger on Feb 2, 2010 2:29 PM

Edited by: Florian Guppenberger on Feb 2, 2010 2:29 PM

Accepted Solutions (1)

Accepted Solutions (1)

former_member206760
Active Contributor
0 Kudos

The response that comes from the http call might be with encoding UTF 16 but when the message comes into SXMB_MONI..the default codepage is UTF-8...so u will have to try changing the encoding of the response message structure or the response MT to UTF 16 so that when a message with that encoding comes it can be accepted into XI

Former Member
0 Kudos

Hi,

thank your for your answer.

This is what I have tried to achieve. I apply the java conversion mapping when receiving the response message - i tried to convert the response to UTF-16, UTF-8 but none of them has helped to solve the problem.

I guess that using adapter modules is not an option either as it would modify the request message, but not the response, right?

stefan_grube
Active Contributor
0 Kudos

Sure you can use an adapter module for the response message, when you choose SOAP adapter instead of HTTP adapter.

The graphical mapping tool transforms the encoding itself, other mapping programs like Java mapping have to do it themselves.

Maybe you take a simple XSLT for that task?

Former Member
0 Kudos

Thanks for your advice Stefan.

Problem when using adapter modules is that the request should be UTF-8 encoding, so I cannot use one for both directions.

I already tried to set the encoding in a Java Mapping explicitely which did not work. I will try XSLT too.....

stefan_grube
Active Contributor
0 Kudos

> Problem when using adapter modules is that the request should be UTF-8 encoding, so I cannot use one for both directions.

You have to use different modules for request and response anyway. But if the message is not too big, a simply XSLT would be the easiest solution for this.

former_member206760
Active Contributor
0 Kudos

or may be if u do not know xslt mapping ... u can go for abap mapping as well

Former Member
0 Kudos

Thank you. I will try the XSLT rather than the ABAP mapping

I will let you know if it solved the problem.....

Answers (0)