En el post de hoy voy a hablar de cómo usar la Power Platform y business events para sacar las aprobaciones del workflow estándar de Microsoft Dynamics 365 Finance and Operations fuera de MSDyn365FO.

¿Cómo? Usando business events, power automate y adaptive cards para mostrar mensajes bonitos en Microsoft Teams.

Si quieres saber más acerca de los business events en Dynamics 365 puedes leer estos posts de Juan Antonio Tomás:

Business events del Workflow

Los business events del workflow no se usan para sustituir el framework de workflow del estándar, sinó que se ejecutan junto a él, igual que los business events de alertas. Para que se ejecuten los business events del workflow el proceso estándar tiene que ejecutarse antes, y cuando se crean los workitems el business event se disparará.

Categorías de workflow
Categorías de workflow

Si creamos un nuevo flow de Power Automate y añadimos el trigger de FnO veremos que podemos seleccionar distintas categorías de workflow, dependiendo de lo que queramos conseguir.

En mi ejemplo usaremos la categoría Workflow workitem. Esto hará que se lance el flow cuando se crea un workitem.

Voy a seguir este tutorial como base, pero en los pasos de aprobación cambiaremos los correos y Dynamics 365 por Microsoft Teams.

Flow de Power Automate

¿Cómo es mi flow? Pues es algo como esto:

Aprobando workflows desde Teams con adaptive cards 2
De workflow a Flow

¡No os vayáis! En realidad es muy sencillo, sólo tiene muchos pasos extra para hacer todo más bonito. Vamos a ver qué hace cada paso.

Trigger

Aprobando workflows desde Teams con adaptive cards 3
Trigger del flow para workflow

Este es nuestro trigger, el paso que lo inicia todo y que se ejecutará cuando un workitem del workflow Aprobar solicitud de compra se cree.

Cuando se inicie el trigger necesitaremos parsear su salida usando la acción Parse JSON. Tendremos que suministrarle un ejemplo del schema, para que al parsear sepa qué elementos tiene el JSON. Podemos descargar un ejemplo en el workspace de los business events:

Aprobando workflows desde Teams con adaptive cards 4
Descargar schema de los business events

Usaremos el contenido del fichero que se descarga como ejemplo en el flow.

Ejecutar acción

Aprobando workflows desde Teams con adaptive cards 5
Validamos la instancia

Este paso valida que el workflow que ha lanzado el business event está ejecutándose, tiene un id de instancia válido y que esté pendiente de aprobación.

Ahora evaluamos si se está ejecutando y continuamos.

Adaptive cards

Continuaremos creando unas adaptive cards que nos ayudarán a mostrar la información en Microsoft Teams de una forma bonita. Pero, ¿qué son las adaptive cards?

Tarjetas adaptables es el formato de intercambio de tarjeta abierta que permite a los desarrolladores intercambiar el contenido de la interfaz de usuario de una manera habitual y coherente.

A ver… claro… las adaptive cards son una forma de construir una interfaz y mostrar información en distintos sistemas. Si visitáis su web veréis que hay un diseñador con el que podéis jugar. Cuando terminéis de crear vuestra tarjeta podéis copiar el JSON y ahí tenéis toda la información que se mostrará y cómo se mostrará. Al mandar este JSON a Teams se genera la UI automáticamente, con imágenes, textos, links, botones, etc.

Aprobando workflows desde Teams con adaptive cards 6

En este paso creamos un texto con la información que obtenemos al parsear el resultado del business event. Con ello mostraremos al usuario qué se le ha asignado y por qué.

En el siguiente paso simplemente me guardo la URL que abrirá la solicitud de compra en Dynamics 365.

Y, para acabar, montamos la adaptive card con el JSON del diseñador:

Aprobando workflows desde Teams con adaptive cards 7
Adaptive card para Flow

El primer elemento Outputs corresponde al texto que se mostrará y el segundo a la URL. Esta tarjeta tiene texto y un botón View que abre Dynamics 365.

Pero, ¿por qué hago los pasos compose extra? Porque a veces el JSON no se carga bien si metemos el texto y campos ahí. Y además que está más limpio y ordenado!

En el siguiente paso mandaremos la tarjeta al usuario que tiene el workflow asignado:

Aprobando workflows desde Teams con adaptive cards 8

En este caso el valor del elemento Outputs es el que hemos creado en el primer compose. ¿Y cómo se ve la tarjeta?

Aprobando workflows desde Teams con adaptive cards 9
Adaptive card

Aquí vemos el número de solicitud y el motivo de la aprobación. Y podemos abrir el formulario en 365 con el botón View.

Aprobación

Aprobando workflows desde Teams con adaptive cards 10

Después de mostrar la información al usuario, preguntamos qué acción quiere realizar con la adaptive card de la izquierda.

Aquí podemos ver que tiene un action set con dos acciones: Aprobar y Denegar.

Por lo demás es una tarjeta simple que sólo pregunta si queremos aprobar o denegar la solicitud de compra.

Ahora posteamos la tarjeta al usuario y esperamos que tome una acción:

Aprobando workflows desde Teams con adaptive cards 11

Esta tarjeta será así:

Aprobando workflows desde Teams con adaptive cards 12

Simplemente un botón de Aprobar y otro de Rechazar.

Y ahora viene la parte complicada. Esta acción está en preview y la salida no se muestra en el siguiente paso porque… no lo sé, ¿porque está en preview? Pero tiene una solución muy fácil que descubrí en este video de Mar Llambí. Sólo tenemos que añadir otro paso compose en el que le pondremos la expresión outputs(‘Post_and_wait’)?[‘body’]?[‘submitActionId’], donde Post_and_wait es el nombre de la acción anterior.

Ahora ya podemos evaluar qué botón se ha pulsado y aprobar o denegar el workitem usando la acción WorkflowWorkItems-complete:

Aprobando workflows desde Teams con adaptive cards 13

¡Y listo! Si vamos a ver el histórico del workflow de la solicitud de compra veremos el mensaje de aprobación en el workitem:

Aprobando workflows desde Teams con adaptive cards 14
Workflow aprobado!

Conclusión

Como he dicho otras veces y quise mostrar con mi PatatApp, podemos usar la Power Platform con Dynamics 365 for Finance and Operations. Cada día es mejor y ofrece más soluciones que nos permiten cambiar la funcionalidad estándar de FnO. ¡Y se puede hacer en muy poco tiempo!

¡A probarlo!

¡Suscríbete!

Recibe un correo cuando se publique un nuevo post

Write A Comment

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

¡NO sigas este enlace o serás bloqueado en este sitio!