Skip to Content
Author's profile photo Ankit Mishra

SOAP adapter: Processing error while sending response from REST to Proxy

Hi Folks,

Recently I was working on a Proxy to REST synchronous scenario, where I was using Async-Sync Bridge to accomplish the same (as per the requirement). You may refer William’s blog for the same: https://blogs.sap.com/2014/01/28/generic-pi-async-sync-bridge-configuration-for-any-adapters/

 

This issue is discussed in few questions raised on sap, but not sure if it was well described completely anywhere. Recollecting all the stuff at a single place. Hope it’s useful for you in case you have the similar issue.

Problem:

The issue came when I was receiving the response back from REST service & it was getting failed in PI due to SOAP adapter: Processing error. Below is the error in detail.

SOAP: Call failed: com.sap.aii.af.sdk.xi.srt.BubbleException: <SOAP:Envelope xmlns:SOAP=”http://schemas.xmlsoap.org/soap/envelope/”>
 

<SOAP:Header></SOAP:Header>
<SOAP:Body>
<SOAP:Fault
xmlns:SOAP=”http://schemas.xmlsoap.org/soap/envelope/”>
<faultcode>SOAP:Client</faultcode>
<faultstring>Error during parsing of SOAP header</faultstring>
<faultactor>http://sap.com/xi/XI/Message/30</faultactor>
<detail>
<SAP:Error SOAP:mustUnderstand=”1″
xmlns:SAP=”http://sap.com/xi/XI/Message/30″>
<SAP:Category>XIProtocol</SAP:Category>
<SAP:Code area=”PARSER”>WRONG_VALUE</SAP:Code>
<SAP:P1>SOAP:Envelope(1)SOAP:Header(1)sap:DynamicConfiguration(1)sap:Record(6)</SAP:P1>
<SAP:P2>origin, x-requested-with, accept, content-type, authorization, JSNLog-RequestId, senderId, sessionId, scope, token, referer,x-ep-user-scopes,x-ep-credit-level,x-ep-user-traits,x-ep-user-roles,x-forwarded-base,x-ep-user-id,cache-control, channelId, senderId, applicationId, DNT</SAP:P2>
<SAP:P3/>
<SAP:P4>ST: ST_XMS_MSGHDR30_DYNAMIC</SAP:P4>
<SAP:AdditionalText>An error occurred when deserializing in the simple transformation program ST_XMS_MSGHDR30_DYNAMIC</SAP:AdditionalText>
<SAP:ApplicationFaultMessage namespace=””/>
<SAP:Stack>XML tag SOAP:Envelope(1)SOAP:Header(1)sap:DynamicConfiguration(1)sap:Record(6) (or one of the attributes) has incorrect value origin, x-requested-with, accept, content-type, authorization, JSNLog-RequestId, senderId, sessionId, scope, token, referer,x-ep-user-scopes,x-ep-credit-level,x-ep-user-traits,x-ep-user-roles,x-forwarded-base,x-ep-user-id,cache-control, channelId, senderId, applicationId, DNT
An error occurred when deserializing in the simple transformation program ST_XMS_MSGHDR30_DYNAMIC
Data loss occurred when converting origin, x-requested-with, accept, content-type, authorization, JSNLog-RequestId, senderId, sessionId, scope, token, referer,x-ep-user-scopes,x-ep-credit-level,x-ep-user-traits,x-ep-user-roles,x-forwarded-base,x-ep-user-id,cache-control, channelId, senderId, applicationId, DNT
</SAP:Stack>
</SAP:Error>
</detail>
</SOAP:Fault>
</SOAP:Body>undefined</SOAP:Envelope>
[null “null”]

Here you can see the highlighted part, which clearly shows you that the error is due to parsing of the SOAP message which contains a value at RECORD number “6” (in my case, it can be different for other scenarios) in DYNAMIC CONFIGURATION (received in response message from REST adapter). This error came in the Receiver ECC Proxy channel (SOAP with XI 3.0)

 

Solution: Refer https://archive.sap.com/discussions/thread/1653020

It can be achieved by removing the DYNAMIC CONFIGURATION value that is causing the issue. In my case it’s the 6th record in DYNAMIC CONFIGURATION. Refer below screenshot:

In the above screenshot the value of the xml tag name “Access-Control-Allow-Headers” is exceeding 200 characters (default maximum allowable length for XI message protocol). The length of the attribute value is defined by the XI message protocol. Values can be a maximum of 200 characters long. If, for example, you assign longer values in the mapping or adapter modules then this can lead to processing errors at runtime or the values are shortened to 200 characters. This shortening can also lead to a processing error. The processing error that occurs depends on the components that access the attributes.

Refer https://help.sap.com/saphelp_nw73/helpdata/en/48/ce299c3a8e5430e10000000a42189b/frameset.htm

Thus, either we need to edit it & make it less than 200 characters or you may delete the same if its not required at the receiver end. In my case I used the delete option by adding the DynamicConfigurationBean in the Module Tab of the Receiver SOAP Proxy Channel.

For more information refer: https://help.sap.com/saphelp_nw74/helpdata/en/45/da2239feb22e98e10000000a155369/frameset.htm

Number Module Name Type Module Key
1 AF_Modules/DynamicConfigurationBean Local Enterprise Bean DynamicConfigurationBean
2 sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean Local Enterprise Bean soap

 

Module Key Parameter Name Parameter Value
DynamicConfigurationBean key.5 delete http://sap.com/xi/XI/System/REST Access-Control-Allow-Headers

Parameter Name = key.5 (5 is used, as the Record count starts from 0 in DYNAMIC CONFIGURATION)

Parameter Value = <action nsuri name> = delete http://sap.com/xi/XI/System/REST Access-Control-Allow-Headers

Once this is configured for the invalid values in Dynamic Configuration the parsing error should be removed.

 

Refer SAP Note: 974481 – https://launchpad.support.sap.com/#/notes/974481 for more such parameters. You can put a length limit to the parameters as well.

 

Thanks

Ankit Mishra

Assigned Tags

      3 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Gagandeep Batra
      Gagandeep Batra

      Awsome!!!

      thanks For Sharing!!!

      Regards

      GB

      Author's profile photo Muni M
      Muni M

      Just curious, did you check with sap on this issue? did sap suggest this to implement?

      I had similar issue in SF integration project where response is getting failed in ECC due to 200 char length limitation. But sap has given note to overcome this issue without modifying the dynamic conf values. https://archive.sap.com/discussions/thread/3776367

      If one is interested in retaining value which is more than 200 char length, there should be some note to tackle or better check with sap.

      Regards,

      Muni

      Author's profile photo Ankit Mishra
      Ankit Mishra
      Blog Post Author

      Thanks Muni for pointing this out. Yeah, that will be a better option to implement note  #2028742 - XI runtime: Enhancing the dynamic header for Success Factors.

      Regards

      Ankit Mishra