Seguro que si has estado atento/a a las últimas novedades y actualizaciones en RRSS, habrás visto que hace bien poquito ha salido una nueva funcionalidad que permite ejecutar Custom Action desde Power Fx sin necesidad de utilizar Power Automate como teníamos que hacer hasta ahora.
Si recuerdas los posts donde hablaba sobre las Custom API (parte I y parte II), veíamos como las Custom API se comportaban como Custom Action salvo con las diferencias que puedes encontrar en la documentación oficial. Por lo que cuando vi esta nueva funcionalidad lo primero que pensé fue: "si se pueden ejecutar Custom Action desde Power Fx... ¿también puedo ejecutar Custom API´s?". La respuesta, ya te la adelanto, es si. 😎
En el ejemplo de hoy voy a seguir dándole continuidad al caso que proponía en este post donde comentaba como una Custom API podía devolver una response customizada. En aquel ejemplo, trabajaba con un modelo de datos donde 1 Organización tenía N Environments y 1 Environment tenía N Aplicaciones. En esta entrada, trabajaremos con ese mismo ejemplo.
Hecha esta breve introducción, me gustaría recordar como hasta ahora podíamos ejecutar Custom API desde Power Fx:
Construimos un flujo de Power Automate que invoque a la API, donde la response de la API es el output del propio flujo
Desde Power Fx invocamos al flujo de Power Automate y formateamos y convertimos los datos recibidos a una colección... (para poder hacer esto activa la funcionalidad experimental de ParseJSON)
...para poder vincular la colección colOrganizations a una galería.
En el caso en el que trabajes en un escenario con muchas Custom API, podría darse el caso en que la cantidad de flujos a construir fuese elevada, o si optásemos por tener un único flujo de Power Automate para invocar a nuestras Custom API, podría ser que la lógica de este flujo se complicase demasiado.
Pues bien, con esta nueva funcionalidad que nos trae Microsoft, vamos a poder quitarnos de en medio el/los flujo/s de Power Automate e invocar a la Custom API desde la propia aplicación.
¿Cómo? muy fácil. Desde la propia aplicación Canvas sobre la que estés trabajando selecciona Settings > Upcoming features y selecciona la (por ahora) última opción: Enable access to Microsoft Dataverse actions.
Lo siguiente que tenemos que hacer es agregar un nuevo origen de datos a nuestra aplicación. En concreto la tabla con nombre Environment. Y... ¡listo!. Lo único que nos falta por hacer es empezar a invocar a las acciones o (en este caso) a la Custom API que queremos ejecutar.
Fíjate cómo la plataforma va haciendo su trabajo y mientras escribes el nombre de la tabla Environment en una fórmula Power Fx, van apareciendo todas las acciones y API´s disponibles en ese entorno. Además cuando seleccionas la acción o API, observa también cómo Power Fx te va proponiendo lo que esa función está esperando como parámetros de entrada.
Como hemos visto antes, la Custom API con la que yo estoy trabajando en esta pequeña prueba de concepto espera como entrada un nombre de una organización para poder devolver la lista de entornos y sus apps como respuesta, por lo que lo sólo tenemos que actualizar nuestra fórmula para no invocar al flujo de Power Automate y trabajar directamente con la API.
Lógicamente todo esto se puede complicar bastante más. Por ejemplo si necesitamos pasar objetos con una estructura mas compleja como request. En ese caso te recomiendo, paciencia y revisar muy muy bien la documentación oficial de Microsoft.
Por último y no menos importante... ¡lo de siempre!: esta funcionalidad está aun en fase experimental por lo que no es recomendable su uso en entornos productivos. ¡Espero haber sido de ayuda!. ¡Gracias por haber llegado hasta aquí! ¡Nos vemos en la próxima!
Comments