Skip to Content
0
Former Member
Apr 21, 2011 at 08:09 AM

SOAP Adapter with protocol XI 3.0 and adapter modules

39 Views

Hi,

we have developed an adapter module to base64 decode and unzip the contents of an xml tag. We have successfully tested it with a soap sender channel using native soap protocol.

When trying to use it in a scenario ERP Proxy -> PI Soap Adapter (configured to expect XI 3.0 protocol) we encounter the following problem:

The payload of the message is (in the module you get the payload with message.getMainPayload().getContent() ):

<sap:Manifest xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/' xmlns:sap='http://sap.com/xi/XI/Message/30' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:wsu='http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd' wsu:Id='wsuid-manifest-5CABE13F5C59AB7FE10000000A1551F7'>
	<sap:Payload xlink:type='simple' xlink:href='cid:payload-4DAE8AFC5C960461E10080000A03112B @ sap.com'>
		<sap:Name>MainDocument</sap:Name>
		<sap:Description/>
		<sap:Type>Application</sap:Type>
	</sap:Payload>
</sap:Manifest>

If you look at a message in XI 3.0 format this is the part that is found in the tag <SOAP:Body>. So it seams that for the adapter module the message is treated as a normal soap message and the soap body is treated as payload.

We have tried to get the real payload (which is an attachment in the message) with message.getAttachment(String name) but getAttachmentIterator() returned an iterator pointing to an empty list.

Any ideas what could be wrong or how to remedy the problem?