While
Tipo: while · Paquete: Core Activities v1.0.8
Repite un bloque de actividades mientras una condición sea verdadera. La condición se evalúa antes de cada vuelta: si es falsa desde el inicio, el bloque no se ejecuta ni una vez. Úsalo cuando no sabes de antemano cuántas vueltas harán falta — depende de algo que va cambiando: “mientras haya más páginas”, “mientras la cola tenga elementos”, “hasta que el saldo llegue a cero”.
Cómo funciona
Sección titulada «Cómo funciona»- Evalúa la condición.
- Si es verdadera, ejecuta las
activitiesy vuelve al paso 1. - Si es falsa, termina y continúa el flujo.
Admite Break (salir de inmediato) y Continue (saltar a la siguiente evaluación). Antes de cada vuelta se revisa si la ejecución se terminó, así que Terminar lo corta entre una vuelta y la siguiente.
La condición se escribe igual que en If: con el constructor visual (columna, operador y valor, combinados con AND/OR) o con una expresión C# booleana. Un constructor visual sin filas cuenta como falso, así que el bucle no entra.
Parámetros requeridos
Sección titulada «Parámetros requeridos»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
condition | bool | — | Condición que se evalúa antes de cada vuelta. Constructor visual o expresión booleana. Ej: quedanPaginas. |
Parámetros opcionales
Sección titulada «Parámetros opcionales»Ninguno.
Sub-flujos
Sección titulada «Sub-flujos»activities requerido
Sección titulada «activities requerido»Actividades que se ejecutan en cada vuelta mientras la condición sea verdadera.
Esta actividad no devuelve ningún valor.
Ejemplo
Sección titulada «Ejemplo»Procesar una cola hasta vaciarla:
Set Variable name = hayItem value = true
While condition = hayItem └─ activities: Queue Get Item queue = "facturas" → output: item If condition = isNull(item) ├─ then: │ Set Variable name = hayItem value = false // ya no quedan: corta el bucle └─ else: Invoke Playbook path = "procesar.json" input = { factura: item }Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa y solución |
|---|---|
'activities' es obligatorio. | El bucle no tiene lane de actividades. Agrega al menos una actividad dentro. |
Value '…' is not numeric. | En el constructor visual usaste un operador numérico (mayor que, menor que…) con un campo que no es un número. Convierte el valor con num(...) o usa «igual a». |
String '…' was not recognized as a valid Boolean. | La expresión devolvió un texto distinto de true/false. Escribe una comparación que dé verdadero o falso (estado == "Pendiente"). |
| El bucle no se ejecuta nunca | La condición ya era falsa al entrar, o el constructor visual no tiene filas. Verifica el valor inicial de las variables de la condición. |
| La ejecución se queda colgada | Bucle infinito: la condición nunca cambia. Asegura que el cuerpo modifique la condición y añade un tope de seguridad. |