Passa al contenuto principale
Versione: 1.2 (storica)

Repeat

  • Task type: loop-control

Il Task Repeat agisce come un controllore di flusso per creare un ciclo. La sua funzione è quella di ripetere l'esecuzione del Task immediatamente precedente fino a quando viene soddisfatta una determinata condizione di uscita o non si raggiunge un numero massimo di iterazioni.

È lo strumento ideale per implementare logiche di attesa attiva (polling), tentare un'operazione più volte in caso di fallimento, o eseguire un'azione per un numero fisso di volte.

1. Configurazione​

La configurazione del Task definisce le regole che governano il ciclo.

  • Exit Condition (Condizione di uscita): Rappresenta l'espressione che viene valutata alla fine di ogni iterazione. Il ciclo continua a ripetersi finché questa condizione risulta falsa. Non appena la condizione diventa vera, il ciclo si interrompe e il Workflow prosegue dal ramo di uscita del Task Repeat.
    • Esempio dinamico: #>Declare variables.x<# == 5 (il ciclo si ferma quando la variabile x raggiunge il valore 5).
    • Esempio statico: 1 == 1 (espressione sempre vera, il ciclo si fermerà dopo la prima esecuzione).
  • Iteration Limit (Limite iterazioni): È un meccanismo di sicurezza e controllo. Definisce il numero massimo di volte in cui il Task precedente può essere ripetuto. Il ciclo si fermerà al raggiungimento di questo limite, a prescindere dal fatto che la "Condizione di uscita" sia stata soddisfatta o meno.
  • Delay (s) (Ritardo in secondi): L'intervallo di attesa, in secondi, tra la fine di un'iterazione e l'inizio della successiva. Impostare un valore maggiore di 0 è utile per evitare di sovraccaricare un sistema con richieste troppo frequenti (polling).

2. Esempio di utilizzo​

Questo scenario, visibile nel diagramma fornito, mostra come utilizzare il Repeat per eseguire un'azione finché un contatore non raggiunge un certo valore.

  1. Declare variables: Un Task iniziale dichiara una variabile x = 1.
  2. Set variables: Questo è il Task che verrà ripetuto. Ad ogni esecuzione, incrementa il valore della variabile x di 1.
  3. Repeat: Il Task Repeat è configurato come segue:
    • Exit Condition: #>Declare variables.x<# == 5
    • Iteration Limit: 10
    • Delay (s): 0

2.1 Flusso di esecuzione​

  • Il Task Set variables viene eseguito la prima volta, x diventa 1.
  • Il Task Repeat valuta la condizione: 1 == 5 è falso. Il ciclo continua.
  • Il Task Set variables viene eseguito di nuovo, x diventa 2.
  • Il Repeat valuta: 2 == 5 è falso. Il ciclo continua.
  • ...questo processo si ripete.
  • Quando Set variables imposta x a 5, il Repeat valuta 5 == 5, che è vero. La condizione di uscita è soddisfatta, il ciclo si interrompe e il Workflow prosegue.

3. Parametri di Output​

Al completamento dell’esecuzione, il task rende disponibili i seguenti Parametri di Output, utilizzabili come input nei task successivi del Workflow.

  • result: Questo parametro contiene un messaggio testuale descrittivo che spiega il motivo della terminazione del ciclo. Il valore di questo parametro cambia in base allo scenario:
    • Esempio se il ciclo termina perché la Condizione di Uscita è stata soddisfatta: "Iterazione 4 completata (su 10 max)"
    • Esempio se il ciclo termina perché è stato raggiunto il Limite di Iterazioni: "Numero massimo di iterazioni raggiunto (7)"
  • resultJson: Rappresenta il risultato dell’esecuzione del task in formato JSON, includendo informazioni generali, configurazioni e dettagli sull’esecuzione.