on 05-02-2013 12:49 PM
Hello all,
i have a scenario RFC -> XI/PI -> SOAP. In XI/PI there are two mappings for the request. At first the standard mapping (XI/PI Message Mapping) is performed. Then my java mapping will be used. In SXMB_MONI i see the payload, the specific characters (e.g. umbaut) are correct displayed. But the receiver said to me, the question mark instead of umlaut was in SOAP messages.
My question is: what could be the problem? Could i see the payload after java mapping? If yes, how? Thx.
Regards,
Fanglin
Hi Fanglin,
the reason is actually at receiver side, not at PI. You need to communicate that. They have either to change their service or to provide you the codepage to be send. You can change the encoding at adapter leve as described by Aaron.
/Udo
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Fanglin,
Regarding your question as to how you can see the payload after java mapping, I believe you should already see the final version of the output message (PI mapping + java mapping) via SXMB_MONI (from the payload of either the Technical Routing or the Call Adapter). However, I still suggest that you go to Runtime Workbench Message Monitoring to see the actual message that was sent to your receiver system. Just make sure you are looking at the Database of the Adapter Engine. You should see a list of messages from there and you can check the Details of the particular message you need to look at. It should open a window with 3 tabs. Go to the tab Message Content and select "payload" from the drop down. This should show you the payload of the message that was sent to your receiver system so check if the field contains the special characters or if you already see "???" in the payload.
Since you are seeing the special characters in SXMB_MONI then it looks like your RFC sender sends the data with Unicode enabled. Assuming that this is correct, checking the message as explained above will tell you if an encoding change is happening in PI or not. PI, by default, uses UTF-8 encoding. If you already see "???" characters from the RWB monitoring, then that means an encoding conversion took place already. Check if the SOAP receiver channel has any module configuration for encoding or it might be possible that the java mapping made the encoding change (not sure if java coding can make this change). One way of changing the encoding can be done using the steps in this link: http://help.sap.com/saphelp_nw04/helpdata/en/45/d169186a29570ae10000000a114a6b/content.htm If an encoding change is happening, try to remove it and test again.
However, if you are able to see the special characters from RWB, then there is an encoding conflict with the receiver system. Since PI is sending the special characters correctly (either in UTF-8 or any encoding that can read umlaut), the fact that the receiver is seeing these as ?? means that they cannot read the characters. Please check with the receiver system what kind of encoding can they accept. I checked the umlaut character and it should be available in both uft-8 and iso-8859-1 encoding.
I hope this helps.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Also, which charset does your partner / receiver web service expect the message... iss-8859-1?
Have you tried setting this in the SOAP receiver adapter?
"
5. Enter the code for the Web service provider:
○ XMBWS.XMLEncoding=<encoding>
Specifies which XML code to use for the Web service provider. The default value is UTF-8.
"
http://help.sap.com/saphelp_nw04/helpdata/en/bf/27fd3b651f6a1ce10000000a11402f/content.htm
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Fanglin,
Have you tried to test it from the Operation Mapping? (Test tab is right next to Definition tab).
This may show you the output from the Java mapping.
Also maybe you could display trace information in your Java Mapping (Trace Level All)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi ,,
take the payload in ECC ,, put that operation mapping ..go 1-1 and 2-2 to see each individual mapping.you can compare where you are getting the error.
Regards,
Loordh.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
101 | |
13 | |
13 | |
11 | |
11 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.