Siebel consultants use a wizard to build Web service WSDLs from their integration objects. One thing to watch out for is the value for ElementFormDefault in the WSDL. Sometimes (Not sure why) they will generate the WSDL and will have the following line:
<xsd:schema xmlns:xsdLocal0="http://www.CompanyName.co.uk/103Product/BBTErrorReturn" targetNamespace=http://www.CompanyName.co.uk/103Product/BBTErrorReturn xmlns:xsd="http://www.w3.org/2001/XMLSchema">
Which is fine but then the return value you get from the web service call is qualified, which looks like this:
xml version="1.0" encoding="UTF-8" ?>
- <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <SOAP-ENV:Body xmlns="http://www.CompanyName.co.uk/xml/BBT_Account_And_Address_Inbound/BBT_Account_And_Address_Inbound">
- <BBTErrorReturn xmlns="http://www.CompanyName.co.uk/103Product/BBTErrorReturn">
<ErrorCode xmlns="http://www.CompanyName.co.uk/103Product/BBTErrorReturn">0x6cbe -- 0x6b0c -- 0x80d8ErrorCode>
<ErrorMessage xmlns="http://www.CompanyName.co.uk/103Product/BBTErrorReturn">'Street Address' is a required field. Please enter a value for the field. (SBL-DAT-00498) -- Stack trace: Service [BBT_Account_and_Address_Inbound].Service_PreInvokeMethod(), Line: 282 -- Error invoking service 'BBT_Account_and_Address_Inbound', method 'AccountAddressInbound' at step 'Update Account And Address'.(SBL-BPR-00162)ErrorMessage>
BBTErrorReturn>
SOAP-ENV:Body>
SOAP-ENV:Envelope>
You end up having a dehydrated orchestration because you will are not able to read the SOAP response. If you use the SOAP Tool Kit as a proxy you can see the response coming back ok In addition if you use debug view to output the message from inside the orchestration, you will only see the top element without the sub elements.
The way around this is by manually editing the WSDL to add the attribute elementFormDefault="qualified". So that line should look like this:
<xsd:schema elementFormDefault="qualified"
targetNamespace="http://www.siebel.com/xml/BBT Admin Product Definition"
xmlns:xsdLocal1="http://www.siebel.com/xml/BBT Admin Product Definition"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
Then regenerate your schemas again from the Web reference. I tried just changing the schemas generated from the WSDL but that did not work. My best guess is that BizTalk 2004 uses the WSDL rather than the xsd file that VS2003 produces.
I hope this helps few people.