cancel
Showing results for 
Search instead for 
Did you mean: 

Passing data in SOAP Header

HarshC
Active Participant
0 Kudos

Hi,

I'm trying to make a SOAP call. As part of the SOAP message, I need to pass a string called session id. This doesn't seem possible from the message type, which only represents the SOAP body schema. How do I handle the SOAP header data in XI?

Regards,

Harsh

Accepted Solutions (1)

Accepted Solutions (1)

HarshC
Active Participant
0 Kudos

Hi Udo,

Thanks for the quick response. I'm trying to build the soap envelope manually. I imported this into the repository as an ED. But I'm not able to define use it in message mapping. Can you help me with this? I'm attaching the xml. Regards,

Harsh

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

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<types>

<xsd:element name="ABC">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="soapenv:Header">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="urn:SessionID" type="xsd:string" />

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

<xsd:sequence>

<xsd:element name="soapenv:Body">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="urn:getserverTimeStamp" type="xsd:string" />

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</types>

<message name="getServerTimestampRequest">

<part element="urn:getServerTimestamp" name="parameters" />

</message>

</xsd:schema>

udo_martens
Active Contributor
0 Kudos

Hi Harsh,

as i told you the interface will NOT be validated by XI. So - in my point of view - it would be easier to use an XSLT, where you just copy an example, delete the content, and your envelope is ready. Going your way is accepting some manually work.

Regards,

Udo

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi Harsh,

Check this blog

/people/padmankumar.sahoo/blog/2005/02/15/an-overview-of-soap

Will give you an idea..

cheers

Prashanth

P.S Please mark helpful answers

udo_martens
Active Contributor
0 Kudos

Hi Harsh,

you can check on (in the channel) "dont use SOAP envelope" and build it for your own (in the mapping) or you just use the http adapter for your task.

Regards,

Udo

HarshC
Active Participant
0 Kudos

Hi Udo,

Can you elaborate a little. I'm assuming in this case that I need to build two message types one for the body and one for the header? The body message type can be imported from the wsdl being called, what about the header?

Also, how does http adapter help in this scenario?

Regards,

Harsh

udo_martens
Active Contributor
0 Kudos

Hi Harsh,

you have to build the datatype for yourself (Root tag: soap:envelope) if you check the envelope off in channel. The HTTP adapter can be used as well to send SOAP messages - you have to build the "envelope" here in the same way.

The message type - the interface - will be not validated during runtime if you dont use message mapping. For other mappings you can put a dummy there.

Regards,

Udo