UiPath Documentation
maestro
latest
false
Guía del usuario de Maestro
Importante :
La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Bucle

Nodo de bucle para iterar sobre colecciones con opciones paralelas y de interrupción.

Lo que hace

Itera sobre una colección y ejecuta los nodos en el cuerpo del bucle una vez para cada elemento.

Cuándo usarlo

Usa un Bucle cuando tengas una colección de elementos para procesar, como una lista de registros devueltos por una API, una lista de archivos o una lista de ID. El bucle se ejecuta una vez por elemento y se detiene cuando se agota la colección.

Para salir antes de que se agote la colección, utiliza la condición de Interrupción o un controlador de interrupción, ambos descritos a continuación.

Referencia de configuración

CampoObligatorioPredeterminadoDescripción
ColecciónNingunoMatriz sobre la que iterar. Introduce una expresión que se resuelva en una matriz, por ejemplo $vars.listCustomers1.output.
ParaleloNoOffEjecuta todas las iteraciones al mismo tiempo en lugar de una tras otra. Cuando está desactivado, el bucle se ejecuta secuencialmente y espera a que finalice cada iteración antes de iniciar la siguiente.
Interrumpir con condiciónNoNingunoExpresión que sale del bucle antes de tiempo cuando se convierte en true después de que se complete una iteración. Esto se aplica a los bucles secuenciales.
Mostrar controlador de interrupciónNoOffAñade un controlador de interrupción al bucle para que los nodos dentro del cuerpo puedan salir del bucle antes de tiempo. Conecta la salida de un nodo al controlador de interrupción para detener la iteración desde el interior del cuerpo.
Nota:

La iteración secuencial conserva el orden y es necesaria para que la condición Interrumpir en funcione, ya que la condición se comprueba después de que se complete cada iteración. Las iteraciones paralelas no se ejecutan en un orden garantizado.

El cuerpo del bucle

Arrastra los nodos dentro del límite del bucle para añadirlos al cuerpo. Los nodos del cuerpo pueden leer el elemento y la iteración actuales, junto con cualquier variable en el ámbito fuera del bucle.

Elemento actual e iteración

Dentro del cuerpo, haz referencia al progreso del bucle con estas expresiones:

  • $vars.<loopName>.currentItem es el elemento para la iteración actual. Accede a sus campos con notación de puntos, por ejemplo $vars.loop1.currentItem.id.
  • $vars.<loopName>.currentIteration es el número de iteración actual, a partir de 1.

Estos están disponibles solo dentro del cuerpo del bucle.

Salida

Una vez completadas todas las iteraciones, los resultados agregados del bucle están disponibles en $vars.<loopName>.output La ejecución continúa desde el nodo después del bucle.

currentItem y currentIteration no son accesibles fuera del cuerpo del bucle.

Ejemplos

Ejemplo 1: llamar a una API para cada elemento

El bucle itera sobre $vars.listCustomers1.output. El cuerpo del bucle contiene un nodo de solicitud HTTP con la URL:

https://api.example.com/customers/{{ $vars.loop1.currentItem.id }}
https://api.example.com/customers/{{ $vars.loop1.currentItem.id }}

Ejemplo 2: crea una matriz de resultados en iteraciones

Un nodo de Script en el cuerpo del bucle devuelve un valor para cada elemento. El bucle recopila el resultado de cada iteración en $vars.loop1.output:

return { id: $vars.loop1.currentItem.id, processed: true };
return { id: $vars.loop1.currentItem.id, processed: true };

Después del bucle, $vars.loop1.output es una matriz de esos resultados.

Ejemplo 3 — Detener antes de encontrar una coincidencia

Un nodo de decisión en el cuerpo del bucle comprueba el elemento actual. Con Mostrar identificador de interrupción habilitado, la rama coincidente de la Decisión se conecta al identificador de interrupción del bucle para detener la iteración tan pronto como se encuentre la coincidencia.

Problemas comunes

El cuerpo del bucle nunca se ejecuta. La colección está vacía o undefined. Comprueba la salida del nodo anterior en el seguimiento de ejecución para confirmar que la matriz tiene elementos. Una colección vacía omite el cuerpo y continúa después del bucle.

La condición de interrupción nunca se desencadena en un bucle paralelo. La condición de interrupción se evalúa después de que cada iteración se complete en orden, por lo que se aplica a los bucles secuenciales. Desactiva Paralelo si necesitas interrumpir una condición en ejecución.

Editar la colección dentro del cuerpo no cambia lo que se itera. La colección se captura cuando se inicia el bucle. Modificar la variable de matriz dentro del cuerpo no cambia qué elementos se iteran. Esto es así por diseño.

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado