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