[AX 2012 R3 - How To] Consumir servicios Web externos
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:- Microsoft Visual Studio 2010+.
- Visual Studio Tools for Dynamics AX 2012.
- 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:
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.