in
Power Automate sono disponibili varie
action per i cicli come
Do until.
Action Do until permette di eseguire le action contenute finché la condizione inserita diventa da
falsa diventa
vera
ConfigurazioneEsistono anche altre condizioni che possono provocare l'uscita dal ciclo.
Ad esempio
Count indica il numero massimo di cicli che possono essere eseguiti, mentre
Timeout esprime una durata massima temporale (vedi
Codice ISO 8601 per esprimere una durata temporale).
Almeno una delle due proprietà Count o Timeout deve essere valorizzata, non possono essere entrambi vuote.
La
prima proprietà che diventa vera provoca l'uscita dal ciclo.
Esempio
Ad esempio questo
Power Automate è una demo per i cicli
Do until
descriptiondove abbiamo
- LoopMaxCount è la variabile che indica il numero massimo di cicli che si vogliono eseguire
- LoopCount è il contatore del ciclo
- Do until è un esempio con un ritardo (Delay) per provare la proprietà timeout
- nel ciclo viene incrementata la variabile LoopCount di 1
il tutto termina dopo 3 iterazioni con successo
SuccededUscita con Count
Se impostiamo la proprietà
Count al valore
2, si uscirà dal ciclo, con successo, dopo 2 iterazioni anche se l'espressione ne permetterebbe 3.
Uscita con Timeout
Se impostiamo la proprietà
Timeout a
PT1M, ovvero 1 minuto, si uscirà con successo sempre dopo 2 iterazioni.
Questo perché alla prima iterazione sono passati solo 45 secondi, quindi nella seconda iterazione non interviene il timeout.
Quando verrà valutata l'iterazione 3, non verrà eseguita perché a questo punto sono passati 1 minuto e 30 secondi (45+45), quindi superiore al limite impostato.
TimeoutCome si può vedere dall'immagine il conteggio delle iterazioni si è fermato a 2 ma il tempo passato è superiore a 1 minuto.
Il timeout viene verificato solo all'inizio di una nuova iterazione, questo vuol dire che l'iterazione corrente non verrà fermata anche se è passato il tempo impostato.
Da notare che, anche se dal ciclo si è usciti a causa della proprietà timeout impostata, la condizione Run after dopo Do untill è sempre succeded e non timeout.
Idem nel caso della proprietà Count, termina sempre con succeded.
Attenzione
Nei linguaggi di programmazione, come
C#, un ciclo viene eseguito finché la condizione rimane
verawhile (true)
{
// istruzioni
}
e si esce dal ciclo quando la condizione
non è più vera (
falsa).
Con il ciclo
Do until di
Power Automate avviene il contrario, ovvero per eseguire il ciclo la condizione deve essere
falsa, una condizione
vera provoca l'uscita dal ciclo.
Da notare che le condizioni non vengono valutate appena si entra nel ciclo, ma solo ma alla fine.
Questo vuol dire che il ciclo viene sempre eseguito almeno una volta.