Partager via


SOAP services support in Azure Logic App

Fresh off the press, native support for SOAP services in Logic App!

This feature builds upon the custom OpenAPI connectors recently released for Logic Apps. You now have the option to create SOAP connectors in Logic Apps, by importing a WSDL file instead of an OpenAPI / Swagger definition. Specifically you can try the Fazio sample public SOAP service. Other services you can try out include:

If you have other public SOAP Service to share, please do so in the comments below.

Comments

  • Anonymous
    November 01, 2017
    Great news :) Thank you for implementing this.I did come accross a German Bankleitzahl service when I was testing SOAP using the Http Connector in Logic Appshttp://www.thomas-bayer.com/axis2/services/BLZService?wsdl For instance BLZ code 31470004 returns Deutsche Bank.
  • Anonymous
    November 06, 2017
    i keep getting "The gateway did not receive a response from 'Microsoft.Web' within the specified time period." or "Both WSDL 'content' and 'url' properties can not be set for a custom API." when uploading the WSDL
    • Anonymous
      November 06, 2017
      Thank you for reporting the issue. My apologies about that, I will investigate it shortly.
    • Anonymous
      November 06, 2017
      The comment has been removed
      • Anonymous
        November 13, 2017
        The comment has been removed
        • Anonymous
          November 15, 2017
          Parsing error translation deployment is about to reach production regions. You will be able to see errors such as "The parsing of the WSDL document failed with error 'Could not resolve type tns:PutObject.'. Check the validity of the WSDL document." instead of the previous "Establishing connection with the service failed with code 'WsdlParsingFailed'."
    • Anonymous
      November 06, 2017
      I have reproduced the “Both WSDL ‘content’ and ‘url’ properties can not be set for a custom API.” when providing either then the other. We will fix this issue. As a temporary workaround for the issue you can create a new Logic App Custom Connector so you can successfully provide either the URL or the file for the WSDL.
      • Anonymous
        November 13, 2017
        We have a fix in review internally for the error “Both WSDL ‘content’ and ‘url’ properties can not be set for a custom API.”
    • Anonymous
      November 07, 2017
      “The gateway did not receive a response from ‘Microsoft.Web’ within the specified time period.”This happens when SOAP pass-through is selected. Only SOAP to REST is implemented at the moment. The SOAP pass-through option is been removed from the UI pending a delayed deployment by the UI owners (sorry it shouldn’t have shown would the deployment not have been delayed). We have not completed the backend support for SOAP pass-through and the middle-layer is not interpreting properly the 500 NotSupportedException returned by the backend (we are also fixing the middle-layer).
      • Anonymous
        November 10, 2017
        I have been receiving “The gateway did not receive a response from ‘Microsoft.Web’ within the specified time period.” today. Is there an ETA for being able to add a SOAP Http Connector?
        • Anonymous
          November 10, 2017
          The comment has been removed
          • Anonymous
            November 11, 2017
            The comment has been removed
          • Anonymous
            November 13, 2017
            The comment has been removed
            • Anonymous
              November 13, 2017
              If you can share you WSDL URL I can take a look. In case the WSDL is not behind a public facing URL you can reach out to Azure support (should be included for free in your subscription) or contact me directly at david (dot) burg (at) microsoft (dot) com. Do include your subscription id so I may look for the telemetry log information matching your error.
          • Anonymous
            November 13, 2017
            Deployment to all Azure regions is complete. Custom SOAP connectors created before this correction should be recreated to resolve the relative path duplication error.A pending change will further allow to see non-SOAP error responses from SOAP services (the change is currently in review internally).
    • Anonymous
      November 24, 2017
      I am trying to add the WSDL of Autotask (https://webservices4.autotask.net/atservices/1.5/atws.wsdl) but experiencing the same problem: The gateway did not receive a response from 'Microsoft.Web' within the specified time period..I'm trying to hook up Autotask with Logic Apps to get some integration going.
      • Anonymous
        November 27, 2017
        Sorry about that, I will look into this SOAP service and its WSDL as well.
        • Anonymous
          November 29, 2017
          There is still an issue with timeouts upon processing specific WSDL documents. Unfortunately it is a bit of an elusive issue as the processing works just fine in local debugging, so I am chasing it through instrumentation and telemetry.
          • Anonymous
            December 28, 2017
            A fix for the parsing timeouts (“The gateway did not receive a response from ‘Microsoft.Web’ within the specified time period.”) has been deployed earlier in this month of December by my colleagues. The issue was related to IIS issue https://blogs.technet.microsoft.com/networking/2017/07/12/https-client-certificate-request-freezes-when-the-server-is-handling-a-large-putpost-request/ and observable mostly (but not consistently) with WSDL documents over 80 Kb. The client certificate secured communication between the Logic App resource provider and the WSDL document parser was timing out because of this. The Logic App resource provider has been improved per the recommendation in the linked article for client side (here Logic App resource provider is the HTTP client calling the WSDL document parser).
      • Anonymous
        December 07, 2017
        We have fixed the issue, it will get deployed by end of next week.
  • Anonymous
    November 13, 2017
    The comment has been removed
  • Anonymous
    November 15, 2017
    We are working on better documenting the current limitations of this preview feature. As the underlying technology is API Management, you can find some of the limitations at:https://docs.microsoft.com/en-us/azure/api-management/api-management-api-import-restrictionsFurthermore from Michael's issue below I learned that the soap action must not be an empty string, i.e. don't do:We create a dictionary using the resource name as a key and the resource name is derived from the SoapAction, so we end up with conflicts.
    • Anonymous
      November 16, 2017
      Thanks for the help David.
  • Anonymous
    November 16, 2017
    Several customers have tried to import Salesforce WSDL documents which hit limitations of our generic SOAP support. For some, the existing Logic App Salesforce connector already address the needs - see https://docs.microsoft.com/en-us/azure/connectors/connectors-create-api-salesforceIt does not cover all of Salesforce, case in point it does not cover at the moment Salesforce Marketing Cloud - see https://feedback.azure.com/forums/287593-logic-apps/suggestions/32287339-support-salesforce-marketing-cloud-as-a-connectorand consider voting for other Salesforce connector ideas at https://feedback.azure.com/forums/287593-logic-apps?query=salesforce
  • Anonymous
    November 17, 2017
    A number of SOAP services written with WCF return 500 Internal Service Error. This is because the service owner has not written handling for exceptions resulting from bad client request, such as out of range input values, or not found resource. The default WCF error handler for unhandled exception assumes there is a mistake in the server code and that the server was not expecting this, hence generates a 500 Internal Server Error response. While from RFC compliance the client expects a 400, 404 or other 4xx, the service will instead return a 500 with a SOAP error of internal server error.Logic App's default handling of 500 responses by Connectors -which SOAP is one of them- is to retry a handful of time because an Internal Server Error may be intermittent thus the request may succeed with retry. However if you are familiar with the SOAP service you are connecting to and are aware that bad client requests result in 500 responses, this behavior is undesirable. For this, you should add a retry policy to the API connection action as documented here:https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-workflow-actions-triggers#apiconnection-action
  • Anonymous
    January 31, 2018
    How to fetch element values from SOAP service response?
    • Anonymous
      February 02, 2018
      The parsing of the WSDL during the creation of the Custom Connector generates an Open API definition with the inputs and outputs of SOAP actions mapped to REST operations. The REST operation output will be available in the Logic App designer to pick (or in code view and you can see the Open API definition operation output in the Custom Connector interface, on the definition tab).Scroll to:"ResponseIt defines the shape of response returned by the underlying connector when making the request."And click on the success response (HTTP 200). You should get a view including:"BodyThe payload that is available on the response. These are the tokens that will show up as the outputs in designer."For error handling the SOAP faults are translated to standard REST error response bodies per Microsoft One API guidelines. See the deep link at https://github.com/Microsoft/api-guidelines/blob/master/Guidelines.md#7102-error-condition-responses
  • Anonymous
    January 31, 2018
    I have created one Logic App, having 1 st Call to SOAP service1. I want to take some element values from response and call to to SOAP service2 which returns required details. Is there any ways to achieve it? Please reply.
    • Anonymous
      February 02, 2018
      Yes you can chain SOAP action calls like with other Logic App actions. The parsing of the WSDL during the creation of the Custom Connector generates an Open API definition with the inputs and outputs of SOAP actions mapped to REST operations. Thus SOAP Action 1 in SOAP Service 1 should have an output definition in the matching Open API, which you can then pick in the Logic App designer for use in subsequent actions including a SOAP Action 2 in a SOAP Service 2.
  • Anonymous
    November 13, 2018
    Hi is there any way to connect to a CRM 2011 WCF Organization Service ?
  • Anonymous
    June 20, 2019
    This blog has been moved off the MSDN platform. Find further content and update at https://www.linkedin.com/today/author/daviburgComments are locked as part of the blog migration, so please reach out to your customer support contact for assistance with Microsoft products and services.