Límites de Apply to each y paginación en Power Automate: el umbral de 100.000

Límites de Apply to each y paginación en Power Automate: cómo funciona el límite de 100.000 iteraciones y cómo evitarlo.

Cuando un flujo en Power Automate falla de repente con un error críptico en cuanto una lista de SharePoint, una tabla de Dataverse o un rango de Excel supera un determinado tamaño, casi siempre hay detrás uno de los límites integrados de bucles y paginación. El más conocido de ellos es el límite de 100.000 para los bucles Apply to each y los elementos paginados. En el día a día permanece invisible durante mucho tiempo, porque la mayoría de las listas son mucho más pequeñas, y luego golpea exactamente a los procesos más importantes: importaciones masivas, cierres anuales o la migración de grandes volúmenes de datos.

Este artículo explica qué límites se aplican concretamente a los bucles y la paginación en Power Automate, cómo activas la paginación para una acción y con qué trucos procesas de forma fiable incluso grandes cantidades de datos sin toparte con el límite de 100.000 iteraciones. Toda la información procede de la documentación oficial de Microsoft.

¿Qué límites se aplican a los bucles y la paginación?

Microsoft documenta los valores relevantes en la descripción general Límites para flujos automatizados, programados e instantáneos. Las cifras más importantes para una sola ejecución de flujo:

  • Apply to each: 5.000 elementos en el perfil de rendimiento Bajo, 100.000 elementos en todos los demás perfiles. Este es el número máximo de elementos de matriz que puede procesar un bucle Apply to each.
  • Elementos paginados: también 5.000 para Bajo, 100.000 para todos los demás perfiles. Para procesar más elementos, debes desencadenar varias ejecuciones de flujo sobre tus datos.
  • Split On: 5.000 para Bajo sin simultaneidad de desencadenador, 100.000 para todos los demás sin simultaneidad de desencadenador, pero solo 100 en cuanto se activa la simultaneidad de desencadenador.
  • Iteraciones Until: 60 de forma predeterminada, 5.000 como máximo.
  • Apply to each (simultaneidad): el valor predeterminado para las iteraciones que se ejecutan simultáneamente es 1, pero se puede aumentar hasta un valor entre 1 y 50.

El perfil de rendimiento que se aplica a tu flujo depende de la licencia de su propietario. Bajo afecta, entre otros, a los planes gratuitos, los planes de Microsoft 365, el Plan 1 de Power Apps y las licencias de prueba, mientras que las licencias premium, de proceso y por flujo entran en los perfiles Medio o Alto y, por tanto, pueden usar todo el límite de 100.000.

El error WorkflowRunActionRepetitionQuotaExceeded

Cuando un bucle Apply to each alcanza su número máximo de iteraciones, el flujo falla con el error `WorkflowRunActionRepetitionQuotaExceeded`. Según la Referencia de códigos de error de flujo en la nube las causas más frecuentes son:

  • una acción Get items o List rows que devuelve todos los registros en lugar de filtrarse de antemano
  • bucles Apply to each anidados cuyos números de iteración se multiplican, por ejemplo 100 por 100 igual a 10.000 pasadas
  • una lista de SharePoint o tabla de Dataverse muy grande que se carga por completo en un bucle sin filtro

Como remedio, Microsoft recomienda acotar los datos ya en la acción de origen mediante filtros OData como `$filter` y `$top`, en lugar de filtrar solo dentro del bucle, distribuir grandes conjuntos de datos entre varias ejecuciones de flujo con tokens de paginación o rangos de fechas, y usar las acciones Select o Filter array en lugar de un bucle Apply to each completo para simples transformaciones o filtrados.

Activar la paginación para una acción

Para muchas acciones de datos, como List rows en Dataverse, la paginación se puede configurar directamente en la configuración de la acción. La Documentación sobre listas de filas en flujos describe así el procedimiento en el nuevo diseñador:

1. Selecciona la tarjeta de acción correspondiente, por ejemplo List rows.

2. Abre en el área izquierda la pestaña Configuración y allí Redes.

3. Pon el control deslizante Paginación en Activado.

4. Introduce en Umbral el número máximo de filas deseado. El umbral configurable más alto es 100.000.

Internamente, Power Automate redondea este valor hacia arriba hasta múltiplos completos del tamaño de página predeterminado. Si introduces, por ejemplo, 7.000 y el tamaño de página es de 5.000, en realidad se devuelven 10.000 filas. Sin la paginación activada, se aplica automáticamente el límite predeterminado de 5.000 filas, y la respuesta ya no contiene el parámetro `@odata.nextLink` en cuanto se supera el umbral.

Caso especial SharePoint: Get items y el umbral de 5.000

En la acción de SharePoint Get items el límite predeterminado es incluso de solo 100 elementos, pero se puede aumentar hasta 5.000 mediante las opciones avanzadas y el parámetro Top Count, antes de que la lista alcance el umbral de vista del propio SharePoint. Si combinas una consulta de filtro con una lista que tiene más de 5.000 entradas, puede ocurrir que no se devuelva ningún resultado, aunque existan registros coincidentes. También aquí, activar la paginación en la configuración de la acción con un umbral suficientemente alto ofrece un remedio, porque Power Automate recupera entonces los datos por lotes según Top Count en lugar de comprobar solo las primeras 5.000 filas sin filtrar.

El límite de ráfaga de acciones de 100.000 acciones por 5 minutos

Además del mero número de iteraciones, hay un segundo freno que a menudo se pasa por alto: el límite de ráfaga de acciones. Según las Directrices para comprender los límites de la plataforma el límite superior actual es de 100.000 acciones por flujo dentro de una ventana móvil de cinco minutos. Cada acción dentro de un bucle Apply to each cuenta individualmente, de modo que un bucle con varias acciones por pasada alcanza este límite mucho más rápido de lo que sugeriría el mero número de iteraciones. Microsoft recomienda, en tal caso, distribuir la carga entre varios flujos, por ejemplo mediante flujos secundarios (Child Flows) o condiciones de desencadenador que impidan de antemano ejecuciones innecesarias.

Procesar grandes volúmenes de datos de forma limpia: recomendaciones prácticas

Para procesos que previsiblemente se acerquen al límite de 100.000, en la práctica se ha impuesto un enfoque claro:

  • Filtrar pronto en lugar de tarde: Acota los registros ya en la acción de origen mediante `$filter`, `$top` o una consulta de filtro de SharePoint, en lugar de cargar la lista completa en el bucle y comprobarla solo allí.
  • Evitar el anidamiento: Si tienes varios bucles Apply to each anidados unos dentro de otros, comprueba si el número de iteraciones exterior e interior se multiplican, y construye antes, donde sea posible, con Select o Filter array.
  • Distribuir entre varias ejecuciones: Usa tokens de omisión, rangos de fechas o un desencadenador programado para repartir de forma planificada una cantidad de datos muy grande entre varias ejecuciones de flujo, en lugar de procesarlo todo en una sola ejecución.
  • Usar la simultaneidad de forma selectiva: Si aumentas la simultaneidad de un bucle Apply to each a un valor superior a 1, varias iteraciones se ejecutan al mismo tiempo, lo que ahorra tiempo de ejecución, pero aumenta la carga sobre los sistemas conectados y, por tanto, no tiene sentido para todos los conectores.
  • Vigilar los límites: Consulta regularmente a través de Análisis en la página de detalles del flujo el número real de acciones, en lugar de reaccionar solo después de un error.

Con este enfoque mantienes el control de tu flujo de datos, en lugar de que te sorprenda una interrupción repentina justo en el proceso que, de todos modos, más atención merece.

¿Para quién merece la pena optimizar este tipo de procesos masivos?

Un único trabajador digital en Power Automate suele alcanzar el límite de 100.000 solo cuando una empresa realmente crece, por ejemplo al migrar una gran base de datos antigua, en la generación de informes anuales sobre todos los registros de clientes o al conectar un sistema ERP con varias decenas de miles de líneas. Para estos casos, una arquitectura limpia formada por consultas de origen filtradas, una paginación dimensionada de forma sensata y, cuando sea necesario, varias ejecuciones de flujo consecutivas, compensa desde el principio mucho más que un parcheo posterior de errores individuales. Quien quiera construir sus procesos de Power Automate para grandes volúmenes de datos de forma robusta desde el principio, encontrará apoyo en la consultoría de Power Automate de NordFlux.

Preguntas frecuentes

¿Qué ocurre si un flujo debe procesar más de 100.000 elementos?

Power Automate procesa como máximo 100.000 elementos por ejecución de flujo en un único bucle Apply to each o una acción paginada. Para volúmenes de datos mayores, Microsoft recomienda desencadenar varias ejecuciones de flujo sobre los datos, por ejemplo mediante un token de omisión, un filtro de fecha o un desencadenador programado que divida el procesamiento en varias partes.

¿Se aplica el límite de 100.000 por igual a cada licencia?

No. El límite de 100.000 se aplica a los perfiles de rendimiento Medio y Alto, a los que pertenecen, entre otras, las licencias premium y de proceso. En el perfil de rendimiento Bajo, que se aplica a los planes gratuitos, los planes de Microsoft 365 y las licencias de prueba, el mismo límite ya es de 5.000 elementos.

¿En qué se diferencia el límite de Apply to each del límite de Split On?

El límite de Apply to each se refiere a un bucle que recorre una matriz dentro de una única ejecución de flujo. El límite de Split On, en cambio, afecta a los desencadenadores que entregan una matriz y la dividen directamente en varias instancias de flujo de trabajo independientes mediante una propiedad SplitOn, en lugar de usar un bucle foreach. Si, además, la simultaneidad de desencadenador está activada para tal desencadenador, el límite de Split On baja a 100 elementos.

¿Cómo sé que un flujo está alcanzando el límite de 100.000?

El flujo falla con el error `WorkflowRunActionRepetitionQuotaExceeded` en cuanto un bucle Apply to each supera su número máximo de iteraciones. En el historial de ejecución del flujo, este error se puede rastrear directamente hasta la acción de bucle afectada, y a través de Análisis en la página de detalles del flujo también ves cuántas acciones ha consumido una ejecución en total.

¿Puedo establecer el umbral de paginación por encima de 100.000?

No. Según la documentación de Microsoft, el umbral máximo configurable para la paginación es de 100.000, independientemente del valor que introduzcas en el campo de configuración. Como se redondea internamente hasta tamaños de página completos, el número realmente devuelto puede ser ligeramente superior al valor introducido, pero nunca por encima del límite superior de 100.000.

Fuentes: Microsoft Learn: límites para flujos automatizados, programados e instantáneos, Microsoft Learn: comprender los límites de la plataforma y evitar la limitación, Microsoft Learn: usar listas de filas en flujos

Sobre NordFlux

NordFlux UG (haftungsbeschränkt)

NordFlux crea empleados digitales para las organizaciones: automatizaciones y agentes KI que asumen el trabajo repetitivo. Usted mantiene el control.

Más sobre nosotros
Análisis inicial gratuito

¿Preguntas concretas sobre automatización o IA?

En un análisis inicial gratuito hablamos directamente de su caso. Sin compromiso.