1 Reply Latest reply on Mar 7, 2017 7:20 PM by user140848

    PowerExchange for Webservices Required for XML Soap Service Calls

    New Member

      I am looking for information around creating a mapping that supports calling (the target) a Soap service.

       

      It appears that we don't have PowerExchange for Webservices addon purchased. And I am made aware of it when I try to create a Web Service Consumer Transformation object in Designer. 

       

      I am wondering if it is required to purchase if we want to make Soap calls via Mapping or is it just for ease of development in the IDE?

       

      If you don't need, what components in powerCenter Designer is available for me to use to accomplish this task via Mapping.

       

      (note: One option cannot be  just perform a curl request in a script command :-/)

       

       

      Thanks in advance!

       

      ~~

       

      Justin

        • 1. Re: PowerExchange for Webservices Required for XML Soap Service Calls
          user140848 Guru

          Hi Justin,

           

          Yes, you need to purchase PowerExchange for Webservices to use the WSC transformations. No, you don't need to use the WSC transformations to make SOAP requests, they just make it easier.

           

          Without PWX you can still do it using the HTTP transformation. You'll have to construct the SOAP request yourself, though. It's useful to use a tool such as SoapUI to generate a sample request, and then put this into an expression and replace the bits that need to vary for each row.

           

          Configure your HTTP transformation with input port "Soap_Request" and header ports "ContentType" (with HTTP Name set to "Content-Type") and SOAPAction, then pass in your SOAP request in the Soap_Request port, pass 'text/xml' to the ContentType port, and pass whatever SOAP action is specified by your webservice in the SOAPAction port.

           

          Here's a simple example of setting up the SOAP request. You can see it's essentially a giant string literal (the formatter doesn't display it correctly because it's split over several lines), with a couple of values inserted. Here everything except the || Org_Name || and || Period_Name || parts is a string literal.

           

          One caveat is that if the webservice has advanced security requirements (e.g. encryption or adding a nonce), the HTTP transformation won't be able to perform the required security negotiation. However, most webservices seem to be happy with basic username/password authentication over HTTPS, which is fine.

           

          Regards,

          Sacha Roscoe