Home Page › Forums › BizTalk 2004 – BizTalk 2010 › SOAP request from Biztalk 2006 without WSDL
- This topic has 1 reply, 1 voice, and was last updated 8 years, 10 months ago by
community-content.
-
AuthorPosts
-
-
October 28, 2007 at 6:45 AM #18285
Hello gurus:
I have the following case:
I have to create and send a SOAP 1.2 envelope from within Biztalk 2006. The payload is created through a BizTalk mapping between two XML Schemas. A WSDL for the corresponding service is not available. The communication with the soap endpoint is over SSL.
The general functionality is as follows:
Step 1: an incoming XML message is received; the message conforms to the XML Schema a.xsd
Step 2: the message is transformed according to a Biztalk mapping (the thing with functors, with semantics like XSLT); the result conforms to b.xsd an constitutes the payload
Step 3: the payload is included in a SOAP envelope; the envelope contains parameters from within the payload (aka promotion); See attached example
Step 4: the SOAP envelope is sent to a SOAP endpoint
Step 5: synchronously, the sender receives a status response; this too conforms to an XML Schema.
ENDI did have some partial success, but I'm not sure I'm doing the right thing. Any help is appreciated.
Here is how the message should look like:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding"
xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Header>
<tceps:endpoints xmlns:tceps="urn:schemas-TCA:/docs/endpoint.tcendpoint" SOAP-ENV:mustUnderstand=ÓtrueÓ>
<tceps:to>
<tceps:address>receiveraddress</tceps:address>
</tceps:to>
<tceps:from>
<tceps:address>senderaddress</tceps:address>
</tceps:from>
</tceps:endpoints>
<tcprop:properties xmlns:tcprop="urn:schemas-TCA:/docs/property.tcproperty" SOAP-ENV:mustUnderstand=ÓtrueÓ>
<tcprop:identity>(GUID)</tcprop:identity>
<tcprop:sentAt>(PROMOTED DateTime)</tcprop:sentAt>
<tcprop:expiresAt>(sentAt + 10 hours)</tcprop:expiresAt>
<tcprop:topic>Order</tcprop:topic>
</tcprop:properties>
<tcproc:process xmlns:tcproc="urn:schemas-TCA:/docs/process.tcprocess" SOAP-ENV:mustUnderstand=ÓtrueÓ>
<tcproc:correlationid>(GUID)</tcproc:correlationid>
<tcproc:relatedDocid>(PROMOTED int)</tcproc:relatedDocid>
</tcproc:process>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<Payload xmlns="Declare conformance with b.xsd">
<Content> … </Content>
<Payload/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
-
November 6, 2007 at 9:40 PM #18353
I know with the new WCF Adapters you have total control of the output Envelope. You should be able to use the WCF Adapter to send a message to the web service – I think? Just use the Basic HTTP Binding.
Then, you should be able to define your SOAP Envelope inside the Message tab (I think that’s what is’s called) inside the WCF Configuration.
Hope this helps.
-
-
AuthorPosts
- The forum ‘BizTalk 2004 – BizTalk 2010’ is closed to new topics and replies.