Sugerencia de Microsoft Flow: Cómo recuperar un solo valor de una consulta que devuelve varios registros

blogimage-4655246-ashx_-1652001-jpeg

Cuando empiezas a utilizar Microsoft Flow Para automatizar tareas y mejorar la productividad de su entorno, una de las acciones más habituales son las búsquedas de datos sustentadas en filtros. Ya sea que esté enfocado a pasar por 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 regla general, no ofrecen la oportunidad de hacer una búsqueda por un solo elemento filtrado por un campo que no sea su campo de identificación (Id).

Cuando necesitamos filtrar un elemento, pero no tenemos este identificador, tenemos que recurrir a obtener todas las filas y aplicarle un filtro de la próxima manera:

c61cb448-26d4-4534-ae3e-c4d7ba451842-6509819

Ejemplo de consecución de datos basados ​​en un filtro en Microsoft Flow

En este ejemplo podemos ver que usando la acción Obtener filas de la sección SQL Podemos establecer no solo la lista de todas las filas de una tabla, para este caso TProvincias, sino que podemos filtrar estos resultados de consulta. Para este caso, el filtro está configurado para devolver un registro que coincide con un Id obtenido previamente en el flujo que no es el Id principal en esta tabla. Al mismo tiempo, como tenemos claro que esta consulta solo devolverá un registro, limitamos el resultado a este registro asignando la primera posición a 1.

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

f0a5f9ad-f19b-4115-8bdf-c0b49a09e995-9615486

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

d99a85d4-6d3f-41fa-8b8a-5c7b19e8fbdb-6179175

Esto sucede debido a que al ser una recuperación de filas, la salida del paso Obtener provincia siempre será una matriz de resultados.

Esto coloca una carga adicional en el procedimiento que comprende que tendrá que moverse entre múltiples resultados y además una complicación adicional cuando se trata de comprender el procedimiento que realizará el Flow.

Para evitarlo, siempre que estemos obligados a usar una acción con este tipo de salida, podemos recurrir a la operación de datos Componer o en español Escribir.

d365a898-cb8a-426c-873d-8552a904504d-3323372

Esta acción nos permitirá mantener aquellos ítems de la salida anterior que nos interesen, para este caso podemos filtrar que solo el primer (y único) elemento del

matriz devuelta.

963e6c1c-d436-47bc-b9b5-f7b64a963de5-6316440

Para esto tendremos que usar la expresión primero en el editor de expresiones avanzado indicando de dónde obtenemos los datos y qué valor específico estamos buscando, para este caso será el campo de descripción del valor de salida de la acción Get_Province.

primero (cuerpo (‘Get_Province’)?)?

Ahora podemos chequear cómo, al usar la salida de esta acción en nuestra creación de registros de Dynamics, el bucle no se mostrará, dejando una estructura más limpia y mejorando el tiempo de procesamiento.

5b5f3931-a6a6-4365-b493-ff8774097b47-6566078

128caf0e-7242-4660-b151-4cca664b3595-8266870

Como podemos ver, no solo guardamos este bucle, sino además los bucles anidados en caso de que necesitemos pasar por más de una tabla en busca de estos registros. Ahora podemos ejecutar el procedimiento y verificar el resultado:

43d8b8ca-8598-447f-b319-9d419a5caf8f-2101411

Consecución de provincias

bab733ad-9e38-4cc2-952f-b90bddf8934c-1125652

Ejecutando la acción Redactar

Esta útil acción de Componer, no solo nos permitirá mantener una mejor estructura en nuestro Flow, sino que además nos permitirá modelar las salidas de todo tipo de acciones para obtener esos resultados que necesitamos, ignorando aquellos que no lo hacemos, de esta forma se convierte en una magnífica solución para múltiples situaciones. a lo largo de nuestro viaje por el mundo de la automatización con Microsoft Flow.