Las soluciones No-Code han llegado para quedarse, solo hay que ver la cantidad de contenido, casos de uso, artículos, vídeos y eventos dedicados, por ejemplo, a la Power Platform de Microsoft. En mi caso concreto, no creo que esta plataforma haya venido para reemplazar a todas las customizaciones que hacemos a través de X++, si bien, nos pueden ayudar a solucionar ciertos problemas sin necesidad de generar código, de forma más rápida, económica y fácil de mantener.
Pongamos un caso de uso para Finance and Operations: Necesitamos notificar a un usuario o grupo de usuarios cuando los clientes son modificados y son bloqueados/desbloqueados para facturación, pagos, todo… (Actualizar el campo Blocked de la CustTable).
Yo, como programador, lo primero que pienso es: Ok, no existe ningún Business Event que sea lanzado cuando un cliente es modificado, así que, voy a crear mi propio evento personalizado, que me de la información que necesito y sea ejecutado cuando necesito, ¿verdad? Pero…, ¡un momento! Si tenemos un framework de alertas que funciona perfectamente y un evento de negocios que es lanzado cuando se produce una de estas alertas, ¿por qué no aprovecharlo? Está claro que en la alerta que se lanza puede que no venga toda la información que necesitamos, pero jugando un poco con Power Automate podemos conseguirlo en pocos minutos, vamos a ello ;).
Lo primero, obviamente, es configurar la regla de alertas. Crearemos una nueva que se ejecutará cuando el campo Blocked de la tabla CustTable sea editado. Es importante marcar el check de Enviar externamente a sí.
Una vez que tenemos la alerta configurada, pasamos a crear un flow automatizado de Power Automate utilizando el trigger Cuando un evento de negocio ocurre de Dynamics 365 F&O.
Importante, si dejamos el trigger del Flow tal cual está ahora mismo, este se ejecutará para cada uno de las alertas configuradas en el sistema. Para evitar esto y centrarnos únicamente en las alertas que nos interesan, podemos configurar una serie de filtros, y el flow solo se ejecutará cuando la alerta lanzada cumpla con las condiciones del filtro.
Una vez que guardamos el flow, podemos comprobar en el catálogo de eventos de Dynamics F&O que el evento de negocio BusinessEventsAlertEvent ha sido activado contra un extremo de Power Automate.
Lo siguiente que haremos es montar una serie de pasos de tipo Compose para montar una Adaptive Card que publicaremos en Teams para avisar al usuario del cambio ocurrido en uno de los clientes del sistema. Este mensaje se compondrá de el código y nombre del cliente, así como del nuevo valor del campo Blocked.
Si echamos un vistazo al JSON que genera el evento de alertas, vemos que en los campos KeyValue1 y KeyValue2 recibimos tanto el código de cliente como su nombre, pero en ningún campo recibimos el valor del campo Blocked. ¿Es ese un problema? En absoluto, ya que Power Automate dispone de una serie de conectores que nos permiten obtener registros concretos y el evento de negocio de alertas nos provee de los datos necesarios para hacer la búsqueda del cliente (DataAreaId y CustAccount). Por lo tanto, vamos a obtener el registro del cliente que ha sido modificado.
Ahora ya, disponemos de todos los campos que hay en la entidad CustCustomerV3Entity, por lo que somos capaces de montar el mensaje y la estructura de la Adaptive Card y publicarla en Teams mediante el conector específico que se encargará de mandar un mensaje al usuario en cuestión.
Finalizados estos pasos, solo nos queda guardar el flow y probarlo, por lo que vamos a un cliente, modificamos el valor del campo Blocked y esperamos a que ocurra la magia.
Como veis, se ha publicado un nuevo mensaje en Teams a través del Flow bot indicando que el valor del campo Blocked ha sido modificado para un cliente concreto. Además, aparece un botón, y si pulsamos sobre el nos llevará al formulario de clientes, filtrando directamente por el cliente que hemos modificado, todo esto gracias al campo Link que se publica en el evento de negocio de alertas.
Para finalizar el artículo, os dejo con un vídeo en el que vemos el funcionamiento de lo explicado anteriormente y os cuento algunos trucos a tener en cuenta para asegurar que el resultado es el esperado y que todo funciona correctamente. Espero que os guste 🙂
Si queréis conocer más opciones sobre como utilizar la Power Platform para extender las aplicaciones de Finance and Operations, os recomiendo estar atentos a esta serie de TechTalks presentados por Rachel Profitt.
Hasta la próxima!
2 comments / Add your comment below