#75 Como funcionan los bucles en Power Automate [Aplicar a cada uno]
Aprende a trabajar con los bucles Aplicar a cada uno de Power Automate
¿Cuántas veces te ha pasado que en Power Automate estabas configurando una acción y de repente, se te añade por arte de magia un bucle Aplicar a cada uno?
Los bucles pueden ser autenticas pesadillas en nuestras automatizaciones y es una de las piedras donde diría que más se tropiezan aquellos que quieren automatizar, por eso es fundamental entenderlos y saber como funcionan.
¿Qué son los bucle "Aplicar a cada uno" en Power Automate?
Un bucle “Aplicar a cada uno” en Power Automate es una acción de control que te permite repetir un conjunto de acciones para cada elemento de una lista o colección de datos.
Dicho de otra manera, si necesitas realizar la misma operación sobre múltiples registros (filas en un Excel, elementos de SharePoint, correos electrónicos..), este bucle ejecutará esa acción o conjunto de acciones de forma iterativa por cada elemento.
Pero para entender esto bien, primero es necesario tener muy claro como funcionan las matrices/arrays en Power Automate.
Esta seria la estructura que tiene un Array 👇
[
{
"cr935_nuevatabla[Final]": "2024-12-26T09:20:00",
"cr935_nuevatabla[Inicio]": "2024-12-26T07:52:24",
"cr935_nuevatabla[Tarea]": "Tarea 1"
},
{
"cr935_nuevatabla[Final]": "2024-12-26T10:29:00",
"cr935_nuevatabla[Inicio]": "2024-12-26T09:20:00",
"cr935_nuevatabla[Tarea]": "Tarea 2"
},
{
"cr935_nuevatabla[Final]": "2024-12-26T11:30:00",
"cr935_nuevatabla[Inicio]": "2024-12-26T10:30:00",
"cr935_nuevatabla[Tarea]": "Tarea 3"
}
]
Sabemos que es un Array en cuanto vemos que todo esta recogido entre corchetes [].
Como puedes ver, este Array en concreto tiene 3 elementos, cada elemento contiene un objeto con 3 campos (Tarea, Fecha de inicio, Fecha de final).
Cuando tenemos esta estructura de datos en nuestros flujos de automatización, es cuando si o si van a entrar en juego los bucles, que nos permiten actuar sobre todos los elementos contenidos en una matriz.
Estructura básica de un "Aplicar a cada uno"
Para crear un bucle “Aplicar a cada uno”, necesitas solo 3 cosas:
Tener una acción que devuelva una lista o un conjunto de elementos.
(por ejemplo, Obtener filas de un Excel u Obtener elementos de SharePoint).
Seleccionar la salida de esa acción como el valor sobre el cual se iterará.
Agregar las acciones que desees ejecutar dentro del bucle para cada elemento.
Normalmente, Power Automate detecta automáticamente si la salida de la acción previa es un array, y al arrastrar y soltar las acciones, creará automáticamente una acción “Aplicar a cada uno”.
Optimizando los bucles
De forma predeterminada, Power Automate ejecuta los elementos de estos bucles de manera secuencial, es decir, que lo hace 1 a 1, no procesando el siguiente elemento hasta haber terminado el anterior.
Esto puede ser muy ineficiente y hacer que tus flujos sean muy lentos. ⚠️⚠️
Sin embargo, hay una alterativa que puedes aplicar para acelerar tus bucles, ejecutarlos en paralelo, para ello, tienes que activar el Control de simultaneidad y definir un Grado de paralelismo.
¿Y que es esto, David, que vaya términos me traes? 😁
Pues esto va a hacer que puedas ejecutar tus bucles en paralelo y que dejen de ejecutarse secuencialmente, 1 a 1, ahora podrás definir que se ejecuten por ejemplo de 20 en 20.
Pincha en tu bucle y vete al apartado de Configuración.
Activa la opción de “Control de simultaneidad”.
Ajusta el “Grado de paralelismo”.
⚠️⚠️
Ten en cuenta que aumentar demasiado el grado de concurrencia puede generar bloqueos o conflictos si tus acciones escriben o actualizan simultáneamente la misma fuente de datos.
Optimizando los bucles II
Hace un par se semanas, impartí en el Global Power Platform Bootcamp de Bilbao una sesión sobre optimización de flujos en Power Automate., centrándome en como hacer más rápidos nuestros flujos de Power Automate.
En concreto, presenté un ejemplo donde mostraba 4 formas diferentes de generar un archivo excel (.xlsx) desde un conjunto de datos extraído de Power BI.
El resultado de estas 4 ramas que te muestro debajo es el mismo, generar ese excel, pero la forma de lograrlo y los tiempos de ejecución son muy diferentes, fíjate 👇
Opción 1: Usar un Office Script → 10s
Opción 2: Usar la API de Microsoft Graph→ 4s
Opción 3: Usar un Aplicar a cada uno (Sin paralelismo) → 9m 60s
Opción 4: Usar un Aplicar a cada uno (Con paralelismo = 50) → 2m 48s
¿Conclusión?
Los bucles son imprescindibles en Power Automate, pero hay que saber cuando usarlos y cuando no.
Utilizar bucles para ciertas operaciones, es muchísimo más lento que utilizar acciones en bloque como puede ser la ejecución de un script o la llamada a la API de Microsoft Graph.
Hasta aquí la edición de hoy, espero que te haya aportado!
¿Sobre que otros temas de Power Automate te gustaria que hablase?
Cuéntame 🫵