I have a web service on a client site from which I need to report.
Locally, I mimicked the service using the provided wsdls and have been able to report on these. However, now pointing at the client site I am unable to access the data as the service requires ws addressing headers to be included.
The webservice is expecting the below:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:add="http://www.w3.org/2005/08/addressing" xmlns:ns="CustomerNamespace" xmlns:sch="Schema.xsd">
<soapenv:Header>
<add:From>
<add:Address>Something</add:Address>
<add:ReferenceParameters>
<ns:TransactionGroupID>SomeOtherThing</ns:TransactionGroupID>
<ns:SenderID>911</ns:SenderID>
</add:ReferenceParameters>
</add:From>
<add:Action>Request</add:Action>
<add:MessageID>TestGUID</add:MessageID>
</soapenv:Header>
<soapenv:Body>
<sch:Request>
<sch:SearchCustomerSystem>SystemXYZ</sch:SearchCustomerSystem>
<sch:ServiceID>999999999999</sch:ServiceID>
</sch:Request>
</soapenv:Body>
</soapenv:Envelope>
At present, I ccan get SSRS to produce the below:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Request xmlns="Schema.xsd">
<ServiceID>
999999999999
</ServiceID>
</Request>
</soap:Body>
</soap:Envelope>
Other than creating a custom data extension (which I would rather avoid), is there a way of getting the ws addressing headers into the request?
The following snippet is the part of our WSDL that may be helpful if you have ability to change your WSDL. You will likely only need a bit of the namespaces, particularly the "addressing" related items. The "wsaw" namespace is the one used on our Action attributes that live on wsdl:input attributes under path of wsdl:portType -> wsdl:operation.
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="OurTargetNamespaceHere" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" name="OurServiceNameHere" targetNamespace="OurTargetNamespaceHere">
<wsp:Policy wsu:Id="OurCustomPolicy_policy">
<wsp:ExactlyOne>
<wsp:All>
<sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
<wsp:Policy>
<sp:TransportToken>
<wsp:Policy>
<sp:HttpsToken RequireClientCertificate="false"/>
</wsp:Policy>
</sp:TransportToken>
<sp:AlgorithmSuite>
<wsp:Policy>
<sp:Basic256/>
</wsp:Policy>
</sp:AlgorithmSuite>
<sp:Layout>
<wsp:Policy>
<sp:Strict/>
</wsp:Policy>
</sp:Layout>
</wsp:Policy>
</sp:TransportBinding>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With