Menu

Microsoft Flow Tip: Cómo recuperar un solo valor de una consulta que devuelve múltiples registros

Microsoft Flow Tip: Cómo recuperar un solo valor de una consulta que devuelve múltiples registros

Cuando comienzas a usar Microsoft Flow para automatizar tareas y mejorar la productividad de tu entorno una de acciones más comunes son las búsquedas de datos en base a filtros. Ya sea enfocado a recorrer registros de Dynamics, listas de Sharepoint, tablas en una base de datos SQL, etc., una de las desventajas de los conectores de Flow es que por norma general no ofrecen la posibilidad de hacer una búsqueda de un solo elemento filtrando por un campo que no sea su campo de identificación (Id).

 

Cuanto necesitamos filtrar un elemento, pero no disponemos de este identificador, tenemos que recurrir a una obtención de todas las filas y aplicar un filtro sobre este de la siguiente manera:

 

obtener-datos-con-microsoft-flow

Ejemplo de obtención de datos en base a un filtro en Microsoft Flow

En este ejemplo podemos observar que utilizando la acción Obtener Filas de la sección SQL podemos definir no solo el listado de todas las filas de una tabla, en este caso TProvincias, sino que podemos filtrar estos resultados de la consulta. En este caso el filtro está establecido para que devuelva un registro que coincida con un Id obtenido anteriormente en el Flow que en esta tabla no es el Id principal. Además, como tenemos claro que esta consulta solo devolverá un registro limitamos el resultado a este registro asignando el primer puesto a 1.

 

Aquí viene el problema, si intentamos, por ejemplo, insertar esta provincia que hemos obtenido dentro de un registro de Dynamics con la acción Crear un nuevo registro sucederá lo siguiente:

 

creación-registro-microsoft-flow

 

En el momento en el que asignamos a uno de los campos de la creación del registro uno de los valores recuperados del paso anterior automáticamente se generará una condición de repetición entre todos los valores devueltos.

 

condiciones-microsoft-flow

 

Esto ocurre porque al ser una obtención de filas, la salida del paso Obtener Provincia siempre será un array de resultados.

Esto supone una carga extra al proceso que entiende que tendrá que moverse entre múltiples resultados y además una complicación extra a la hora de entender el proceso que realizará el Flow.

Para evitar esto, siempre y cuando nos veamos obligados a utilizar una acción con este tipo de salida podemos recurrir a la operación de datos Compose o en español Redactar.

compose-microsoft-flow

 

Esta acción nos permitirá quedarnos con aquellos elementos de la salida anterior que nos interesen, en este caso podremos filtrar que solo se recupere el primer elemento (y único) del

array devuelto.

filtro-array-microsoft-flow

 

Para esto tendremos que utilizar la expresión first en el editor avanzado de expresiones indicando desde donde obtenemos los datos y que valor específico buscamos, en este caso será el campo descripción del valor de salida de la acción Obtener_Provincia.

first(body('Obtener_Provincia')?)?

 

Ahora Podemos comprobar cómo, al usar la salida de esta acción en nuestra creación de registro de Dynamics el bucle no aparecerá quedando una estructura más limpia y mejorando el tiempo de procesado.

 

registro-dynamics-microsoft-flow

 

dynamics-y-microsoft-flow

 

Como podemos ver no solo nos ahorramos este bucle sino bucles anidados en caso de necesitar recorrer más de una tabla en busca de estos registros. Ahora podemos ejecutar el proceso y comprobar el resultado:

 

ejecución-procesos-microsoft-flow

Obtención de provincias

estructura-microsoft-flow

Ejecución de la acción Redactar

 

Esta útil acción de Redactar (Compose), no solo nos permitirá mantener una mejor estructura en nuestro Flow, sino que nos permitirá modelar las salidas de todo tipo de acciones para obtener aquellos resultados que necesitamos obviando los que no, de esta forma se convierte en una excelente solución para múltiples situaciones a lo largo de nuestra travesía por el mundo de la automatización con Microsoft Flow.

 

Categories
Related posts
How to boost your company's competitiveness with Power Platform
By Intelequia  |  13 November 2023

Power Platform has become a highly versatile solution to improve business efficiency and competitiveness. Do you know how? We tell you

Read more
Intelequia at BizzSummit: a journey through Power BI and Machine Learning dataflows
By Intelequia  |  09 October 2023

Bizz Summit 2023 has turned out to be a must-attend event in Intelequia's calendar. In this post Eugenio BA Specialist tells us his impressions.

Read more
How to Analyze Results in Power BI and Make Informed Decisions
By Carolina César Piepenburg  |  18 September 2023

How can we optimize our analysis and decision making strategy with Power BI? Find it out in this post.

Read more