Respuestas entre Power Apps y Power Automate

Image for post
Image for post

En muchos escenarios de negocio, Power Apps necesita ejecutar flujos de Power Automate para enviar o recibir información de un servicio o sistema externo o simplemente para ejecutar varias tareas automatizadas. En todos estos casos, el flujo de trabajo siempre debería devolver una respuesta, para que la aplicación pueda interpretar el resultado de la forma más adecuada, aunque el flujo termine en error. En algunos casos, esta respuesta será de un tipo de datos simple (texto, numérico, booleano, fecha, ….) mientras que en otros, necesitaremos devolver listas o estructuras de datos más complejas.

En este artículo nos centraremos en cómo devolver estas respuestas de forma adecuada a Power Apps para que no tengamos que realizar manipulaciones en la app una vez recibida la respuesta. En Power Automate, existen básicamente dos acciones que nos permiten devolver un resultado hacía Power Apps:

A continuación veremos cómo utilizar estas acciones, y analizaremos cuando es mejor utilizar una u otra. Para tal propósito, utilizaremos como ejemplo un flujo muy sencillo en el que devolveremos una lista de clientes a través de una petición HTTP.

Image for post
Image for post

Lo que nos importa es únicamente la última acción del flujo, donde devolvemos una respuesta a Power Apps.

Respond to Power Apps

Esta acción será la primera a considerar cuando queramos devolver un resultado a Power Apps, y nos permite utilizar los siguientes tipos de datos:

Image for post
Image for post

En una misma respuesta, podemos devolver incluso distintos parámetros de salida. En este ejemplo, estamos devolviendo dos parámetros, y CustomerList, ambos de tipo texto:

Image for post
Image for post

Para llamar al flujo desde Power Apps, simplemente tendremos que crear un botón, y utilizar la opción Power Automate ubicada en la pestaña Action:

Image for post
Image for post

El flujo se llama ObtenerClientesDynamics, lo ejecutamos a través de la función Run y guardamos el resultado en una variable global llamada varResponse. Si después de ejecutar el flujo, comprobamos el valor de la variable, esto es lo que encontramos:

Image for post
Image for post

Todo ha funcionado correctamente, por lo que ya podríamos mostrar la lista de clientes en una galería. No obstante, hay que tener en cuenta que el parámetro customerList es un campo de tipo texto en formato JSON, por lo que para poder mostrarlo en una tabla o galería, primero lo tendríamos que convertir en una colección de datos. En este punto es donde aparece una de las limitaciones de la acción Respond to Power Apps, ya que por el momento Power Apps no permite parsear un JSON de forma fácil. Podéis votar esta para que lo que incluyan de forma nativa.

HTTP response

Aunque existe algún para parsear el JSON de forma manual en Power Apps, es mucho más fácil utilizar la acción HTTP response en Power Automate para devolver respuestas con una estructura compleja. La diferencia con la acción anterior, es que en este caso Power Apps ya detectará el resultado como una colección de datos y no como una cadena de texto.

Image for post
Image for post

Cabe destacar que este conector es de tipo premium, por lo que necesitaremos tener una licencia de pago de Power Automate. Esta acción nos permite crear fácilmente una petición HTTP en la que podemos indicar tanto el Status Code, y finalmente el , que es lo que nos ocupa en este ejemplo. En nuestro caso, el body contendrá la lista de clientes en formato JSON.

Al igual que antes, llamaremos al flujo desde Power Apps, pero en este caso, en vez de guardar el resultado en una variable, lo guardaremos directamente en una colección llamada colCustomers:

Image for post
Image for post

Si después de ejecutar el flujo vamos a comprobar la colección, veremos que Power Apps ya ha transformado el JSON en una colección, y al mismo tiempo, cada columna de la colección tendrá asignado de forma automática su tipo de datos: texto, decimal, booleano, etc…

Image for post
Image for post

A partir de aquí, dado que ya tenemos los datos en una colección, podemos utilizarla de forma muy ágil para mostrar los datos en una galería.

Image for post
Image for post

Para finalizar, es interesante mencionar que podríamos incluso utilizar el Status Code de la petición HTTP junto con la en Power Automate para indicar a Power Apps si el flujo está devolviendo una respuesta válida.

Image for post
Image for post

Hasta aquí el post de hoy, en el que hemos analizado dos formas de devolver respuestas desde Power Automate a Power Apps.

Follow the power!

Follow the Power {Platform}, por Miquel Vidal

Blog sobre las BizApps de Microsoft, especialmente Power Platform

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface.

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox.

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store