En este post recupero un antiguo video colaborativo que grabé con ERD y pongo el paso a paso en un post separado por si pudiera ser útil como guía rápida más allá de visionar el video.
Identificar el BE y descargar esquema
Lo primero es identificar los BE que vamos a usar, para ello vamos a administración del sistema > Catálogo de eventos de negocio. En nuestro caso usaremos el de revisar el flujo de trabajo de línea de horas. Una vez localizado nos descargamos el esquema

Esto nos va a descargar un fichero de texto que usaremos en el power automate. Un apunte importante es que todos los Business Events de aprobaciones, tienen el mismo esquema, esto nos va a permitir re-usar solo un power automate para tantas aprobaciones como queramos.
Para lograr esto y dado que P.Automate solo nos permite usar un desencadenador para nuestro flujo, tendremos que “generalizar” dicho trigger para que varios Business Events puedan lanzarlo. Esto lo conseguimos en lugar de poniendo como trigger directamente el Business event, poniendo el P.Automate dependiente de una llamada https.
Configurar el P.Automate
Creamos ahora un P.Automate desencadenado por una llamada HTTP
Paso 1: Cuando se recibe una solicitud HTTP
Generamos el esquema a partir de la carga, copiando y pegando el esquema del archivo Txt descargado del BE.

Paso 2: de tipo Ejecutar acción (de finance and Operations).
Para encontrarlo buscamos por D365FO. En este paso vamos a validar la información que viene en el paso anterior. A dicho paso deberemos de pasarle la instancia del entorno de F&O, la acción WorkflowWorkItems-validate y la variable worklowWorkItemInstanceId que nos tiene que aparecer por haber puesto el esquema del BE en el paso anterior.

Paso 3: Condición.
Si el valor de la aprobación es “True” que haga nuestras cosas

Paso 4 Iniciar y esperar una aprobación

le pasamos, por orden
- Aprobar o rechazar: primero en responder
- WorkflowWorkItemSubject
- WorkflowUserEmail
- WorkflowStepInstruction
- LinkToWeb
y por último el nombre del link, o sea qué texto quieres que aparezca en el link al registro
Paso 5 Ejecutar acción (de Finance and operations).
Creamos una acción idéntica que la que creamos en el paso 2 pero cambiando el validate por el complete. También pasamos el WorkFlowWorkItemInstanceID, en el outcome le ponemos el resultado obtenido de la aprobación anterior. Y en run as user, WorkItemOwner

Y ya tenemos completado el Power automate. Ahora vamos a configurar los B.E para que hagan la llamada Http que desencadene nuestro Power Automate.
Aplicación de Azure Active Directory
Ahora usamos una app de Azure active directory que tenga permisos de acceso al ERP. Damos por hecho en este post que ya tenemos una creada y que conocemos su client Id y su secret, si no, tendremos que crearla.
Para crearla podemos seguir el post Consumir Servicios REST y OData en #MSDyn365FO desde Postman (1/2) – Juan Antonio Tomás (jatomas.com) Interesándonos en la parte que explica cómo crear dicha app.
Key Vault
Una vez tenemos la Aplicación de Azure Active directory, creamos el Key Vault.

Seleccionamos una subscripción, un resource group, keyvault name… Vamos a Access policy, para darle acceso al ERP usando la AAD que acabamos de crear o que vamos a usar y le damos acceso al secret de get y list:

Clickamos en Select principal y buscamos por el Client Id de nuestra aplicación de AAD

Le damos a Add, review and create y en unos segundos se debería de haber creado. Ya solo faltaría crear el secret del key vault. Vamos a overview y nos guardamos el Vault Uri que se acaba de crear

Vamos a la pestaña Secret y creamos el Secret. Le ponemos un nombre al secret, y en el valor ponemos la URL del desencadenador de nuestro Power automate.


Le damos a Create y listo!
Activamos el Business Event
Ya tenemos todos los ingredientes necesarios para configurar los BE en F&O. Así que volvemos al formulario de Eventos de negocio, navegamos a la pestaña de Extremos y vamos a crear un nuevo extremo manualmente.

Siguiente y ahora nos pide una serie de información

- Nombre del extremo: Valor que queramos.
- Tipo de extremo:HTTPS
- Descripción: valor que queremos
- Id de aplicación de Azure Active Directory: el client Id de nuestra App de AAD
- El secreto de la misma: (que tenemos que habernos guardado cuando se creó).
- Nombre del DNS de KeyVault: URL que aparece en el overview del Key Vault

- Nombre secreto del key vault: nombre del secreto que hemos creado para nuestro Key Vault

Si no hemos cometido ningún error podremos aceptar sin ningún error. (por ejemplo si el KeyVault y la AAD no estuvieran bien configurados). Una vez tenemos nuestro extremo, vamos al evento de negocio que queremos activar, click en activar y seleccionamos el nombre del extremo que hemos creado previamente:

Et Voilà!!!! Podemos reutilizar dicho extremo para cualquier workflow de aprobación, en este ejemplo aprobación de hoja de horas, pero podemos usar cualquier aprobación, como por ejemplo una aprobación de pedido.
Vamos a probarlo!
Probamos nuestro P.A. Creando y enviando una hoja de horas:


Magia!!! Y podemos aprobar el WF de F&O directamente desde teams o desde el correo.
25 minutos, me costó a mí, qué rápido!
