Consume external web services

You can consume web services by adding new class libraries. In Microsoft Dynamics AX 2012, you could consume web services from X++ code by adding Microsoft Visual Studio projects as a reference and by using Aif::CreateServiceClient. This scenario is supported, but the steps have changed. Application Integration Framework (AIF) is no longer supported.

The following steps show how to consume an external StockQuote service from X++.

Note that the web service URL in this sample is fictional. There is no known web service at http://www.contoso.net/stockquote.asmx. To make this code work you will need to adapt it to your specific web service.

  1. Create a new Class Library project in Visual Studio, and name it ExternalServiceLibrary.csproj.

  2. In the Visual Studio project, add a service reference to the external web service: http://www.contoso.net/stockquote.asmx.

  3. Create a new static class, and wrap the StockQuote service operation as shown in the following example.

    public static string GetQuote(string s)
    {
        var binding = new System.ServiceModel.BasicHttpBinding();
        var endpointAddress = new EndpointAddress("http://www.contoso.net/stockquote.asmx");
        ServiceLibrary.QuoteReference.StockQuoteSoapClient client = new ServiceLibrary.QuoteReference.StockQuoteSoapClient(binding, endpointAddress);
    
        //GetQuote is the operation on the StockQuote service
        return client.GetQuote("MSFT");
    }
    
  4. Build the project. The binary ExternalServiceLibrary.dll is created.

  5. Create a new Dynamics project in Visual Studio.

  6. Add ExternalServiceLibrary.dll as a reference.

  7. In the X++ class, you can use the external web services that were referenced in ExternalServiceLibrary.dll.

    public static void main(Args _args)
    {
        info(ServiceLibrary.StockQuoteClass::GetQuote("MSFT"));
    }