Saltar al contenido principal

Repetir

Configuración actual de la tarea `Repeat` en el Diseñador de Flujos de Trabajo
  • Tipo de tarea: loop-control

La tarea Repetir actúa como un controlador de flujo para crear un ciclo. Su función es la de repetir la ejecución de la tarea inmediatamente anterior hasta que se satisfaga una determinada condición de salida o no se alcance un número máximo de iteraciones.

Es la herramienta ideal para implementar lógicas de espera activa (polling), intentar una operación varias veces en caso de fallo, o ejecutar una acción por un número fijo de veces.

Configuración

La configuración de la tarea define las reglas que gobiernan el ciclo.

  • Condición de salida (Condición de salida): Representa la expresión que se evalúa al final de cada iteración. El ciclo continúa repitiéndose mientras esta condición resulta falsa. En cuanto la condición se vuelve verdadera, el ciclo se interrumpe y el Flujo de Trabajo continúa desde la rama de salida de la tarea Repetir.
    • Ejemplo dinámico: #>Declare variables.x<# == 5 (el ciclo se detiene cuando la variable x alcanza el valor 5).
    • Ejemplo estático: 1 == 1 (expresión siempre verdadera, el ciclo se detendrá después de la primera ejecución).
  • Límite de iteraciones (Límite de iteraciones): Es un mecanismo de seguridad y control. Define el número máximo de veces en que la tarea anterior puede ser repetida. El ciclo se detendrá al alcanzar este límite, independientemente de si la "Condición de salida" se ha satisfecho o no.
  • Retardo (s) (Retardo en segundos): El intervalo de espera, en segundos, entre el final de una iteración y el inicio de la siguiente. Establecer un valor mayor que 0 es útil para evitar sobrecargar un sistema con solicitudes demasiado frecuentes (polling).

Ejemplo de uso

Este escenario, visible en el diagrama proporcionado, muestra cómo utilizar el Repetir para ejecutar una acción hasta que un contador alcance un cierto valor.

  1. Declarar variables: Una tarea inicial declara una variable x = 1.
  2. Establecer variables: Esta es la tarea que se repetirá. En cada ejecución, incrementa el valor de la variable x en 1.
  3. Repetir: La tarea Repetir está configurada como sigue:
    • Condición de salida: #>Declare variables.x<# == 5
    • Límite de iteraciones: 10
    • Retardo (s): 0

Flujo de ejecución:

  • La tarea Establecer variables se ejecuta la primera vez, x se convierte en 1.
  • La tarea Repetir evalúa la condición: 1 == 5 es falso. El ciclo continúa.
  • La tarea Establecer variables se ejecuta de nuevo, x se convierte en 2.
  • El Repetir evalúa: 2 == 5 es falso. El ciclo continúa.
  • ...este proceso se repite.
  • Cuando Establecer variables establece x en 5, el Repetir evalúa 5 == 5, que es verdadero. La condición de salida se satisface, el ciclo se interrumpe y el Flujo de Trabajo continúa.

Parámetros de salida

Al completarse la ejecución, la tarea hace disponibles los siguientes Parámetros de Salida, utilizables como entrada en las tareas siguientes del Flujo de Trabajo.

  • result: Este parámetro contiene un mensaje de texto descriptivo que explica la razón de la terminación del ciclo. El valor de este parámetro cambia en función del escenario:
    • Ejemplo si el ciclo termina porque la Condición de Salida se ha satisfecho: "Iteración 4 completada (en 10 max)"
    • Ejemplo si el ciclo termina porque se ha alcanzado el Límite de Iteraciones: "Número máximo de iteraciones alcanzado (7)"
  • resultJson: Representa el resultado de la ejecución de la tarea en formato JSON, incluyendo información general, configuraciones y detalles sobre la ejecución.