cancel
Showing results for 
Search instead for 
Did you mean: 

SOAP message with header

laurent_touillaud
Contributor
0 Kudos

Hi,

We have changed our adapter from http to soap in order to send attachments with the message.

The client is currently working on the webservice but wants to have a non standard soap header in the message.

The problem is i can't even find out where to find the message we are sending. In the adapter i see message is correctly processed to the client but no trace of message.

I tried with the following blog to generate receiver listener

/people/varadharajan.krishnasamy/blog/2007/01/09/troubleshooting-soap-message--xi but when i click 'add' nothing happens.

Does anyone knows how to catch the soap message?

Accepted Solutions (0)

Answers (1)

Answers (1)

prateek
Active Contributor
0 Kudos

U must be able to see the SOAP message both at RWB and sxmb_moni

Regards,

Prateek

laurent_touillaud
Contributor
0 Kudos

Hi Prateek,

If the message i see in RWB or SXMB_MONI is the one sent to the client how can i change it from :

<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">

<SOAP:Header xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:wsse="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">

<SAP:Main versionMajor="3" versionMinor="0" SOAP:mustUnderstand="1" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="wsuid-main-92ABE13F5C59AB7FE10000000A1551F7">

to :

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:Q-ENV="http://www.xxx.com/soap/">

<xs:import namespace="http://www.xxx.com/soap/" schemaLocation="QSOAP.xsd"/>

<xs:element name="Envelope">

<xs:complexType>

<xs:sequence>

<xs:element ref="SOAP-ENV:Header"/>

<xs:element ref="SOAP-ENV:Body"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="Header">

<xs:complexType>

<xs:sequence>

<xs:element ref="Q-ENV:Header"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="Body">

<xs:complexType>

<xs:sequence>

<xs:element ref="Q-ENV:Body"/>

<xs:element ref="Q-ENV:Attachment"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

Thanks for your reply,

Best regards,

Laurent.

prateek
Active Contributor
0 Kudos

Check out the use of "Do Not Use SOAP Envelope" here under Conversion Parameter

http://help.sap.com/saphelp_nw04/helpdata/en/fc/5ad93f130f9215e10000000a155106/frameset.htm

Regards,

Prateek

laurent_touillaud
Contributor
0 Kudos

I think the goal would be to insert new structure under the soap body like this :

<?xml encoding="UTF-8"?>

<SOAP-ENV:Envelope (SOAP-ENV:Header,SOAP-ENV:Body)>

<SOAP-ENV:Header (Q-ENV:Header)>

<SOAP-ENV:Body (Q-ENV:Body,Q-ENV:Attachment)>

<Q-ENV:Header (Q-ENV:Sender-Id,Q-ENV:Receiver-Id,Q-ENV:Correlation-Id,Q-ENV:Message-Id,Q-ENV:Date-Sent,Q-ENV:Document-Type,Q-ENV:Message-Format)>

<Q-ENV:Body (Q-ENV:Content-Type,Q-ENV:Message-Type,Q-ENV:Encoding,Q-ENV:Message-Body)>

<Q-ENV:Attachment (Q-ENV:Content-Type,Q-ENV:Message-ID,Q-ENV:Encoding,Q-ENV:Message-Body)>

<Q-ENV:Sender-Id (#PCDATA)>

<Q-ENV:Receiver-Id (#PCDATA)>

<Q-ENV:Correlation-Id (#PCDATA)>

<Q-ENV:Message-Id (#PCDATA)>

<Q-ENV:Date-Sent (#PCDATA)>

<Q-ENV:Document-Type (#PCDATA)>

<Q-ENV:Message-Format (#PCDATA)>

<Q-ENV:Message-Type (#PCDATA)>

<Q-ENV:Message-ID (#PCDATA)>

<Q-ENV:Content-Type (#PCDATA)>

<Q-ENV:Encoding (#PCDATA)>

<Q-ENV:Message-Body (#PCDATA)>

How can you perform this change?

Is it importing the new xsd structure including in the old structure.

laurent_touillaud
Contributor
0 Kudos

Finally the structure should be like this :

<?xml version="1.0" encoding="UTF-8"?>

<SOAP-ENV:

<SOAP-ENV:Header>

<Q-ENV:QHeader xmlns:Q-ENV="http://www.xxx.com/soap/">

</Q-ENV:QHeader>

</SOAP-ENV:Header>

<SOAP-ENV:Body>

<Q-ENV:QBody xmlns:Q-ENV="http://www.xxx.com/soap/">

</Q-ENV:QBody>

<Q-ENV:QAttachment xmlns:Q-ENV="http://www.xxx.com/soap/">

</Q-ENV:QAttachment>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

where bold values are specific structures to be imported.