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.

 

Categorías
 
Posts relacionados
Cómo impulsar la competitividad de tu empresa con Power Platform
Publicado por Intelequia  |  13 noviembre 2023

Power Platform se ha convertido en una solución altamente versátil para mejorar la eficiencia y competitividad empresarial. ¿Sabes cómo? Te lo contamos

Leer más
Intelequia en el BizzSummit: un viaje a través de los dataflows de Power BI y Machine Learning
Publicado por Intelequia  |  09 octubre 2023

Bizz Summit 2023 ha resultado ser un encuentro imprescindible en el calendario de Intelequia. En este post de Eugenio BA Specialist nos cuenta sus impresiones

Leer más
Cómo analizar resultados en Power BI y tomar decisiones informadas
Publicado por Carolina César Piepenburg  |  18 septiembre 2023

¿Cómo podemos optimizar nuestra estrategia de análisis y toma de decisiones con Power BI? Descúbrelo en este post.

Leer más