Configuración en D365FO y Azure de un endpoint de tipo service bus

El objetivo de éste post es mostrar todos los pasos necesarios para realizar la configuración de un Endpoint en D365 y lo necesario en Azure para que cuando suceda un business events de cierto tipo, se ejecute cierta acción.

Hay distintitos Business events de caja, aquí se muestra cómo crear la configuración para que cada que se realice la confirmación de una orden de compra se envíe un mensaje a una queue de un service bus de azure, con el objetivo de que posterioremente una logic app detecte cuando el mensaje haya llegado a la queue y envíe un mail.

Lo primero (tratándose de U26 y posteriores) es ir a System Administration -> Setup -> Business events

Business events purchase orders

Básicamente lo único necesario es la configuración del endpoint, podemos crear un endpoint de distintos tipos:

Y en este caso que vamos a configurar un service bus queue, necesitamos algunos componentes y configuraciones en azure.

En el siguiente diagrama se muestran todos los elementos necesarios y vamos a ir configurando cada uno.

Elementos necesario en configuracion de endpoint business events

Registrar la aplicación (D365FO) en Azure y crear el Application Key

Primero es necesario registrar la aplicación D365FO en Azure, para esto vamos al portal de azure y en el Azue Active Directory -> App registrations -> Nuevo registro

Registro aplicacion d365fo en azure

Capturamos el nombre de nuestro Application Id y las opciones como se muestra en la siguiente pantalla:

Agregamos los permisos para Dynamics ERP

Seleccionamos AX.FullAccess y OData.FullAccess

Creamos un nuevo “Client Secret” en “Certificates & secrets”, nos aseguramos de copiar el “value” porque no se vuelve a mostrar.

Nuestro Application Id del registro de la aplicación lo encontramos en el Overview; hasta aquí hemos obtenido dos puntos importantes del primer diagrama que se muestra arriba: el Application Id (Azure Active Directory application) y el Client Secret (Azure application secret).

Configurando en D365FO el Application Id de Azure

Se agrega el Application Id generado en Azure dentro de la página “Azure active directory applications” en D365FO.

Crear el Service Bus en Azure y el Queue

Debe ser de tipo “Standar” y el queue para efectos del ejemplo seleccionamos de 1GB y de aquí el dato importante que vamos a obtener para la configuración de nuestro endpoint es el nombre de la queue.

Adicional a este dato, necesitamos un dato para la configuración siguiente del Vault, así que nos copiamos el “Primary Connection String” de la sección de “Shared Access policies” porque lo vamos a usar en la configuración del “Secret” del KayVault.

Crear el Key Vault

La última configuración necesaria dentro de Azure, es el Key Vault. Buscaos Key Vault enre los elementos a crear en azure portal, asignamos el nombre, elegimos que sea de tipo Estándar y click en «Crear».

Del overview obtenemos el DNS Name porque lo vamos a necesitar para la configuración del EndPoint en D365FO. Este dato en la configuración del endpoint en D365FO se llama KeyVault DNS.

Creamos un nuevo “Secret” en el KeyVault y en la propiedad “Value” pegamos el “Primary Connection String” del ServiceBus y tomamos nota del nombre que le hayamos configurado porque es requerido de igual forma para la configuración del endpoint en D365FO. En la configuración lo pide como KeyVault secret name.

Adicional a esto, en la configuración del KeyVault, en los “Access policies” debemos crear una nueva política para la aplicación que registramos en el AAD.

Las “Access policies” debe verse así:

Crear endpoint en los Business events

Elegimos un business event estandar, en este caso el llamado Purchase orders, para que al momento de confirmar una Orden de compra nos envíe el business event a nuestro Queue del Service Bus.

Business events purchase orders

En la pestaña de “Endpoint” click en “New”

Y con eso se crea el endpoint en D365FO, visualizándolo de la siguiente manera:

Hasta aquí es toda la configuración en D365FO y Azure necesaria para la configuración del endpoint, lo siguiente es asignar el endpoint al business event y esto se realiza por cada empresa donde los necesitemos, para que cada vez que se confirme una orden de compra, el business event envíe un mensaje a la queue del service bus. Para lograr eso, en la pantalla donde se listan los business event, elegimos el deseado y con el botón «Activate» seleccionamos el endpoint en la ventana emergente así como la empresa.

Una vez activado, podemos ver el detalle y un resumen de errores dentro de “Active events”.

Finalmente, debemos arrancar el batch de Business events dentro de D365FO, con esta tarea por lotes corriendo se ejecutarán todos los business event activados.

Es posible asignar un mismo endpoint a varios business event, aunque para efectos prácticos esto no es viable puesto que no vamos a querer que se trate de la misma manera en un queue una confirmación de orden de compra que una confirmación de orden de venta.

Una vez terminada toda la configuración, ya empezaremos a recibir mensajes en nuestro queue y podemos realizar cualquier acción con esos mensajes, en el siguiente post, veremos cómo realizar una logic app en azure para que se envíe un correo cada vez que se confirme una orden de compra que fue el business event que configuramos.

,

Enviar información de D365F&O a un Data Lake

El cambio que representa el cómo se almacena y se accede a…

Consumir un servicio SOAP Custom utilizando SoapUI

En algunas ocasiones es necesario consumir un servicio SOAP…
,

Soluciones de almacenamiento en Azure

¿Qué es Azure? Azure es un servicio de computación en…