postman dynamics 365 for finance and operations azure active directory

Consumir Servicios REST y OData en #MSDyn365FO desde Postman (2/2)

En el anterior artículo pudimos ver toda la configuración que necesitamos realizar en Azure Active Directory y en Microsoft Dynamics 365 for Finance and Operations para ser capaces de realizar integraciones utilizando para ello servicios REST u OData.

Ahora, vamos a ver los (sencillos) pasos a realizar para poder consumir estos servicios desde Postman. Como ya comentamos en el artículo anterior, lo primero que debemos hacer es instalar Postman, el cual se puede descargar desde este enlace.

Una vez tengamos Postman listo para usar, haremos la primera de las llamadas que necesitamos. Recordad que dijimos que iban a ser dos peticiones, la primera contra Azure AD para conseguir la autorización que nos permita conectar con el ERP y la segunda contra el recurso, en nuestro caso MSDyn365FO, para llevar a cabo la acción en si, tal y como podemos ver en la siguiente imagen.

Ahora, vamos a configurar esta primera petición. Será una llamada POST contra Azure Active Directory, en la que indicaremos todos los datos necesarios en el Body. Para configurarla necesitaremos los siguientes datos:

  • URL: https://login.microsoftonline.com/axazure.com/oauth2/token donde axazure.com es el Tenant Id para mi aplicación
  • Client Id: 642eda97-a3fe-4f4f-b519-d284c10d8d2b que es el Id. de la aplicación de AAD que creamos en el anterior post.
  • Client Secret: Clave secreta que configuramos también en la creación de la aplicación de AAD
  • Resource: El recurso es la URL de nuestra instancia del ERP. Nota: hay que poner la dirección del ERP pero sin la barra ( / ) del final.

Una vez que rellenemos estos datos en Postman nos quedará algo parecido a esto:

Ahora pulsamos el botón Send, y recibiremos una respuesta similar al siguiente JSON, en el que encontraremos el token de acceso a nuestro ERP, el cual, tendrá validez durante los próximos 3600 segundos (una hora).

El siguiente paso será configurar la segunda petición, que será la acción que queramos realizar. Tendremos que realizar una petición de tipo GET, POST, PATCH… dependiendo de la acción que necesitemos. En este caso vamos a realizar una llamada para obtener los Grupos de clientes que tenemos configurados en el sistema, por lo que la haremos de tipo GET.

Para hacer esta llamada, utilizaremos la entidad de datos CustomerGroups, a la que podemos acceder haciendo una llamada GET a la siguiente URL: https://jatomas.sandbox.operations.dynamics.com/data/CustomerGroups. A esta llamada le añadiremos el token de acceso que hemos recibido con la primera de las peticiones, quedando en Postman de la siguiente manera:

Volvemos a darle al botón Send para ejecutar la petición, y como podemos observar, el resultado es satisfactorio, puesto que recibimos una respuesta con estado 200 (OK), lo que significa que hemos obtenido acceso a MSDyn365FO consiguiendo consultar los datos de los Grupos de clientes vía OData. La respuesta que heoms recibido es la siguiente, en la que podemos ver los datos que hemos obtenido sobre los grupos de clientes:

Y hasta aquí esta breve serie de posts en la que hemos visto como, de una forma realmente sencilla, somos capaces de realizar toda clase de pruebas para consultar datos en MSDyn365FO o para ejecutar acciones.

Para más info sobre como consumir servicios REST y OData, podéis consultar la fantástica documentación que tiene Microsoft dentro del sitio docs.microsoft.com o a través del siguiente link.

PD: Como podréis imaginar, no soy ningún experto en la utilización de Postman, simplemente lo he usado para probar mis desarrollos, y la configuración que he realizado del mismo es bastante «rudimentaria» puesto que se puede trabajar dentro de el con todo tipo de entornos y variables que facilitan mucho más la configuración. Podéis consultar todo lo que necesitéis en la propia documentación oficial a través de este enlace.


11 comments / Add your comment below

  1. Hola, tengo la misma configuracion hecha pero postman me devuelve 403 – Forbidden. Tuviste este problema en algun momento? Gracias

    1. Buenas Leonel,
      Dos comprobaciones. Primero asegúrate que le has dado a Conceder permisos para que la aplicación tenga permisos para conectar con el ERP.
      Segundo, hay un nuevo parámetro, dentro de la aplicación de AAD, en el apartado de autenticación, verás un punto que pone «Tipo de cliente predeterminado. Trate la aplicación como cliente público.» Prueba a marcar ese check con el valor Sí. Disculpa por no ponerlo en el artículo, pero las opciones de azure cambian realmente rápido.
      Revisa si con eso solventa y me comentas el resultado.
      Un saludo y gracias por la visita!

      1. Gracias por la rapida respuesta!. Verifique y esta con el valor «Si», tambien en la parte de permisos me figuran las 3 opciones como concedidas para el tenant al que pertenece mi usuario.

          1. Si, tiene concedido los permisos. Por lo que estuve investigando, OAuth2 no usa los mismos permisos que user and password, y por lo tanto habria que configurar diferente los permisos para que el token los tenga. Actualmente si logueo con user and password, me devuelve una lista de permisos. Pero con client_credentials, si reviso el accessToken, no tiene ningun rol ni privilegio asignado. Sigo investigando esto, pero al parecer viene por ese lado. Nose si lo habran cambiado despues de tu post, pero no estoy encontrando solucion por el momento

          2. Pues revisa todo bien, porque tal y como indico en el post debería de seguir funcionando, de echo, nosotros lo estamos utilizando actualmente.

  2. Super buena la Pagina he aprendido mucho ya que recién estoy aprendiendo del ERP. gracias..
    Pero como ya te dije recien estoy aprendiendo hice todo el ejemplo pero la respuesta de la entidad SalesInvoiceHeadersV2 me sale que no se pueden hacer insert, update ni delete que es solo lectura ¿Cómo puedo agregar una factura en el ERP?

    1. Hola Claudio, muchas gracias por tus palabras!. Efectivamente, para hacer una factura de ventas, no es posible «crearla» sin más, es un procedimiento más complejo en el que tienes que partir de un pedido de venta, y facturarlo. Si necesitas facturar los pedidos a través de OData, puedes hacer una acción de OData que reproduzca el procedimiento de facturar y consumirla desde fuera. Las acciones de OData no son más que métodos en las propias entidades que van decorados con el atributo [SysODataAction]. Un saludo!

Responder a Claudio Pino Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies