Como sabéis, uno de los mayores cambios a nivel técnico con la aparición de la versión 7 de Dynamics AX (AX7), o como ahora lo conocemos, Microsoft Dynamics 365 for Finance and Operations (aka MSDyn365FO), es que pasamos de tener un ERP basado en una arquitectura de 3 capas, en el que el usuario interactuaba directamente con una aplicación de 32 bits (Ax32.exe), a trabajar directamente con un ERP basado en la nube en el que el cliente trabaja con una aplicación web, con todo lo que ello conlleva.
Para mi como desarrollador e implantador, una de las áreas que más ha mejorado con todo este cambio es la de las integraciones. Actualmente tenemos infinidad de posibilidades para integrar el ERP con aplicaciones de terceros. Por nombrar unas pocas, podemos exponer servicios SOAP, servicios REST, entidades de datos vía OData que nos permiten realizar cualquier tipo de operación CRUD, integración mediante ficheros utilizando el DIXF… Todo esto nos ha facilitado muchísimo la vida, y ahora, os quería enseñar lo sencillo que es conectar con MSDyn365FO para consumir servicios REST o para utilizar las Data Entities vía OData utilizando para ello Postman, lo que nos va a permitir testear nuestra solución de una forma muy ágil.
Lo primero que necesitamos, obviamente, es instalar Postman en nuestro equipo, cosa que podemos hacer desde este enlace de forma sencilla y totalmente gratuita.
Lo siguiente que tenemos que hacer, es llevar a cabo la configuración necesaria para poder autenticarnos contra los servicios del ERP. Estos servicios OData y REST soportan la autenticación estándar OAuth 2.0, algo que podemos conseguir a través de los registros de aplicaciones de Azure Active Directory (AAD). El funcionamiento a nivel general de este tipo de autenticación lo podemos ver en la siguiente imagen.
Como veis, la aplicación cliente, solicitará un token de autorización para poder acceder a un recurso concreto, y con el token de acceso que reciba, será capaz de realizar peticiones directamente contra nuestro ERP. En el próximo artículo veremos que se trata básicamente de dos llamadas http, la primera como decíamos, para obtener el token de acceso, y la segunda para interactuar u obtener los datos directamente del ERP.
Ahora, vamos a ver como registrar nuestra aplicación de AAD.
Entramos en el portal de azure y nos dirigimos a Azure Active Directory > Registros de aplicaciones.
Pulsamos sobre el botón de Nuevo registro de aplicaciones, y rellenamos los datos que nos aparecen a continuación.
En tipo de aplicación tenemos dos opciónes: Nativa o Aplicación web o API. La principal diferencia entre ambas, es que, la aplicación Nativa utilizará un nombre de usuario y contraseña para poder autenticarse y recibir autorización para utilizar el recurso, mientras que la opción de Aplicación web o API no requiere de la utilización de un usuario, si no que, utiliza una clave secreta asociada a la aplicación para ello, y como veremos, posteriormente las peticiones solicitadas por esa aplicación serán ejecutada por un usuario concreto de MSDyn365FO, manteniendo confidencialidad en cuanto a la utilización, por lo que parece la opción más lógica cuando son agentes externos los que la van a utilizar para integrarse con nosotros.
Una vez que hemos creado nuestra aplicación, tenemos que realizar una pequeña configuración para poder utilizarla. Lo primero será concederle permisos para que pueda conectar contra nuestro ERP, para ello vamos a Configuración > Permisos necesarios > Agregar.
Posteriormente vamos a Seleccionar una API > Microsoft Dynamics ERP > Seleccionar.
En el siguiente paso, seleccionaremos los permisos necesarios para conectar con MSDyn365FO, y pulsaremos de nuevo el botón Seleccionar.
Para finalizar la asignación de permisos, solo tenemos que darle al botón Listo.
Importante, una vez que ya hemos seleccionado los permisos que queremos dar a nuestra aplicación de AAD para conectar con el ERP, tenemos que pulsar sobre el botón Conceder permisos, si no lo hacemos no podremos conectar, recibiendo como respuesta errores 401 por fallo en la autenticación. (Alguna vez me ha pasado… 😅)
Para finalizar con el registro de la aplicación, necesitamos generar la clave secreta que nos permitirá realizar la autenticación y nos autorizará la conexión con MSDyn365FO. Para ello, vamos dentro de la configuración a Claves y creamos una nueva, rellenando una descripción y la duración que queremos darle. Una vez guardada se generará el valor de la clave, el cual tenemos que copiar y guardar, ya que no será visible nunca más.
Y con todo esto ya tenemos lo que necesitamos dentro de AAD para poder conectar con nuestro ERP, lo único que nos faltaría es, dirigirnos a nuestra instancia de MSDyn365FO para dar acceso a esta aplicación de AAD que acabamos de crear. Para ello, tenemos que ir a Administración del sistema > Configurar > Aplicaciones de Azure Active Directory. Creamos un nuevo registro en este formulario, en el que tendremos que indicar el Id. de aplicación de la aplicación de AAD que acabamos de crear, un nombre descriptivo que nos identifique para que se utiliza esta aplicación, y por último, el usuario que se va a encargar de ejecutar las peticiones autorizadas por esta aplicación de AAD.
Como hemos comentado antes, la aplicación que hemos creado es de tipo Aplicación web o API, lo que nos permitía conectar con MSDyn365FO sin necesidad de compartir un nombre de usuario y contraseña con el tercero que necesita integrarse con nosotros, puesto que todas las peticiones autorizadas por esta aplicación, serán, como decía, ejecutadas por el usuario que indiquemos en este formulario.
Y hasta aquí todo lo referente a la configuración previa que necesitamos realizar para poder realizar peticiones desde Postman. Obviamente, esta configuración es exactamente igual para cualquier tipo de integración que necesitemos hacer con servicios OData o REST, independientemente de quién o qué sea lo que va a enviar las peticiones (Postman, código, Flow, Logic Apps…).
En el próximo artículo veremos la configuración a realizar en Postman para poder realizar nuestro testing lanzando peticiones http contra Microsoft Dynamics 365 for Finance and Operations.
7 comments / Add your comment below