[AX 2012 R3 - How To] Consumir servicios Web externos

agosto 25, 2016 Christian Amado 0 Comentarios

Microsoft Dynamics AX En esta ocasión, voy a demostrar cómo consumir un servicio web desde AX. El artículo que se encuentra en el MSDN es muy bueno para empezar, pero no esa API de Bing ya no está disponible.

Básicamente, vamos a verificar si nuestro JSON es válido y el resultado lo mostraremos en el infolog del AX.

Prerrequisitos

Para completar este tutorial se necesita:
  1. Microsoft Visual Studio 2010+.
  2. Visual Studio Tools for Dynamics AX 2012.
  3. Librería JSON.NET.

Librería DLL en .NET

Ahora, utilizando las herramientas de Visual Studio para Dynamics AX 2012 crearemos un proyecto de tipo "Librería de Clase en C#" y allí escribiremos el código necesario:
using Newtonsoft.Json;
using System.Net;

namespace TestJSON
{
    public class Prueba
    {
        public string getData()
        {
            var url = "http://validate.jsontest.com/?json=%7B%22key%22:%22value%22%7D";

            var client = new WebClient();
            string jsonData = client.DownloadString(url);

            var records = JsonConvert.DeserializeObject(jsonData);


            return records.ToString();
        }
    }
}
Ahora, iremos a la carpeta donde están las dll generadas, las vamos a copiar en el Servidor y Cliente de AX Para el servidor la ruta se parece a:
C:\Program Files\Microsoft Dynamics AX\60\Server\MicrosoftDynamicsAX\bin

Para el cliente la ruta se parece a:
C:\Program Files (x86)\Microsoft Dynamics AX\60\Client\Bin

En el AX vamos a agregar la referencia a dichas dlls:
1

Por último, vamos a crear un Job donde llamaremos a la librería y ejecutaremos el siguiente código:
static void Job16(Args _args)
{
    TestJSON.Prueba pr;
    str             resultado;
    ;
    
    pr = new TestJSON.Prueba();
    resultado pr.getData();
    
    info(resultado);
}
De esta manera se consume un servicio web, en este caso, en formato JSON.