cancel
Showing results for 
Search instead for 
Did you mean: 

SHeadercookie in SOAP sender adapter

former_member194786
Active Contributor
0 Kudos

Hi All,

We have a synchronous web service (SOAP to proxy) scenario where there is a requirement to capture the remote user name and pass to the SAP system. When I tried to access this parameter by setting the dynamic configuration, I get the parameter as part of dynamic config parameters. However, there is another parameter SHeaderCOOKIE which gets set and the length of this parameter goes beyond the allowed length of 200 characters (as per following link: http://help.sap.com/saphelp_nwpi711/helpdata/en/48/ce299c3a8e5430e10000000a42189b/frameset.htm). This results in the message processing to fail in mapping with the error: "Mapping "<mapping name>" failed to execute: MappingException: Mapping failed, IllegalArgumentException: Value is too long (511/200): $Version=0; com.sap.engine.security.authentication.original_application_url".

I would like to understand:

  • Is there a way to handle this using the standard features?
  • If not, do I need to use adapter module to handle this? Or will SOAP axis allow to handle more than 200 characters?

Appreciate your inputs on this.

Regards,

Sanjeev.

Accepted Solutions (1)

Accepted Solutions (1)

former_member194786
Active Contributor
0 Kudos

Hi All,

Does anyone have any idea on how to handle this error? Or is there a SAP note on the same? I looked through the SCN and service marketplace but could not find anythign related to this error.

Regards,

Sanjeev.

markangelo_dihiansan
Active Contributor
0 Kudos

Hello Sanjeev,

I did not find the technical name SHeaderCOOKIE. The technical name for remote user is SRemoteUser though.

As far as I know, there is no workaround for the 200-character limit (maybe you can ask them to disable cookies). This limit is also existing in URLs set by dynamic config (although you can use a URL shortener).

Regards,

Mark

former_member194786
Active Contributor
0 Kudos

Hi Mark,

Thanks for the quick response. Should have also mentioned earlier that its HTTPs interface. I am not sure how to disable cookies in this case. Can you please shed some more light on that?

Currently,I am using SOAPUI to test the interface, although I have also noticed same error in end-to-end execution with the third-party system as well.

Regards,

Sanjeev.

markangelo_dihiansan
Active Contributor
0 Kudos

Hello Sanjeev,

I get it now. In our system, when the Keep Headers is checked, the SHeaderCOOKIE looks like this:

<SAP:Record namespace="http://sap.com/xi/XI/System/SOAP" name="SHeaderCOOKIE">$Version="1"; saplb_*="(host_SID_SysNr)8019150"; $Path="/"</SAP:Record> . Perhaps you might need your Basis to look into this.

Aside from that, is the Keep Headers option unchecked in your SOAP Sender CC? Are you using SHeaderCOOKIE in your mapping?

Regards,

Mark

former_member194786
Active Contributor
0 Kudos

Hi Mark,

No, we are not using this parameter in our mapping. I just need to use the SRemoteUser field to identify the user who had sent the request.

In fact I noticed that I see the version 0 of the cookie in the dynamic config property in PI msg. It looks like this:

<sap:Record namespace="http://sap.com/xi/XI/System/SOAP" name="SHeaderCOOKIE">$Version=0;

com.sap.engine.security.authentication.original_application_url=POST#<some text>$Path=/XISOAPAdapter</sap:Record>

Whereas in SOAPUI there are 2 versions maintained:

Cookie: $Version=0; com.sap.engine.security.authentication.original_application_url=POST#<some text>; $Path=/XISOAPAdapter

Cookie: $Version="1"; saplb_*="(<host name>_<sysid>_<sysnr>401404950"; $Path="/"

Not sure why PI takes only the first one and ignores the second one, but could there be a work-around to play around with it in module?

Regards,

Sanjeev.

former_member194786
Active Contributor
0 Kudos

Hi All,

SAP note for this issue:

http://service.sap.com/sap/support/notes/1805037

Regards,

Sanjeev.

Answers (0)