Extiende la funcionalidad de Power Automate (MS flow) con .Net orientado a Microsoft Dataverse
Extiende la funcionalidad de Power Automate (MS flow) con .Net orientado a Microsoft Dataverse

Extiende la funcionalidad de Power Automate (MS flow) con .Net orientado a Microsoft Dataverse

Hoy os traigo un artículo (en mi opinión) muy interesante para poder transformar y tratar los datos de MS Dataverse de manera avanzada mediante un complemento .Net. Recientemente Microsoft ha lanzado las API’s personalizadas (Custom API) sin embargo estas aún se encuentran en preview y aunque sea un adelanto de lo que nos espera en un futuro cercano, yo os recomiendo hoy por hoy utilizar las acciones personalizadas.

Las acciones personalizadas nos permiten ejecutar código personalizado de un ensamblado .Net desde una llamada a la API de dataverse. Si quieres saber más acerca de desarrollar complementos .Net te recomiendo que visites este post de Microsoft.

Lo primero que vamos a hacer es registrar un complemento .Net en nuestro dataverse y para ello he desarrollado este código que nos permite obtener variables de entrada/salida de nuestro complemento. Únicamente recibe dos fechas como parámetro de entrada y nos devuelve la diferencia en días:

Registramos nuestro complemento mediante Plugin Registration. Si no sabéis podéis seguir este tutorial de Microsoft o consultarme directamente. Y una vez registrado ya podemos dar de alta nuestra acción en dataverse. Para ello tendremos que ir al centro de control antiguo como indico aquí:

Y una vez aquí accedemos a procesos y creamos uno nuevo:

Lo primero que nos va a solicitar es qué tipo de proceso queremos realizar y en este caso seleccionamos acción. En mi caso he seleccionado que la acción será global y esto significa que no irá necesariamente ligado a una entidad en concreto. Damos de alta la acción y seleccionamos los parámetros de entrada para nuestra acción tal y como muestro en la siguiente imagen:

Si bajamos un poco más, nos encontramos el apartado de los pasos. En este cuadro añadiremos si queremos un poco de lógica adicional o, como es este caso, iremos directamente a agregar el ensamblado:

Asignamos los valores de la acción para que dataverse lo pase al complemento .Net:

Y finalmente asignamos el argumento de salida:

Ahora activaremos la acción y ya tendremos esta parte completa. El siguiente paso será ir a crear nuestro Power Automate. En este caso voy a configurar de desencadenador que se ejecute cuando seleccionemos un elemento de la entidad esta entidad reservas y, para hacerlo más complejo, propondré que las fechas sean un parámetro de entrada:

Si os fijáis no estoy haciendo nada con los datos de Dataverse porque voy a solicitar todos los datos al usuario. Introducir datos de dataverse sería sencillo realizando una acción enlazada o colocando un EntityReference como parámetro de entrada. Las posibilidades se expanden y todo lo que no podemos hacer con lowcode se vuelve realidad con este tipo de desarrollos. Finalmente nuestro Power Automate debe tener este aspecto:

Si os fijáis en los parámetros de entrada de la acción he tenido que utilizar una expresión ya que Power Automate no detecta como compatibles los parámetros de entrada del desencadenador con los parámetros de entrada de la acción. Para ello utilizaremos esta sencilla expresión:

triggerBody()['date']

Espero que os haya sido útil y que aprovechéis todo lo que esta plataforma nos ofrece. No siempre es necesario utilizar código pero ya veis que a veces no nos queda otra!

Deja un comentario

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.