Repetir
- Tipo de Tarefa:
loop-control
A Tarefa Repetir funciona como um controlador de fluxo para criar um ciclo. A sua função é repetir a execução da Tarefa imediatamente anterior até que uma determinada condição de saída seja satisfeita ou um número máximo de iterações seja atingido.
É a ferramenta ideal para implementar lógica de sondagem ativa (polling), tentar uma operação várias vezes em caso de falha, ou executar uma ação um número fixo de vezes.
Configuração
A configuração da Tarefa define as regras que governam o ciclo.
- Condição de Saída (Exit Condition): Representa a expressão que é avaliada no final de cada iteração. O ciclo continua a repetir-se enquanto esta condição for falsa. Assim que a condição se torna verdadeira, o ciclo é interrompido e o Fluxo de Trabalho prossegue pelo ramo de saída da Tarefa Repetir.
- Exemplo dinâmico:
#>Declare variables.x<# == 5(o ciclo para quando a variável x atinge o valor 5). - Exemplo estático:
1 == 1(expressão sempre verdadeira, o ciclo parará após a primeira execução).
- Exemplo dinâmico:
- Limite de Iterações (Iteration Limit): É um mecanismo de segurança e controlo. Define o número máximo de vezes que a Tarefa anterior pode ser repetida. O ciclo parará ao atingir este limite, independentemente de a "Condição de Saída" ter sido satisfeita ou não.
- Atraso (s) (Delay in seconds): O intervalo de espera, em segundos, entre o final de uma iteração e o início da seguinte. Definir um valor maior que 0 é útil para evitar sobrecarregar um sistema com solicitações demasiado frequentes (polling).
Exemplo de Utilização
Este cenário, visível no diagrama fornecido, mostra como usar o Repetir para executar uma ação até que um contador atinja um determinado valor.
- Declarar variáveis: Uma Tarefa inicial declara uma variável x = 1.
- Definir variáveis: Esta é a Tarefa que será repetida. A cada execução, incrementa o valor da variável x em 1.
- Repetir: A Tarefa Repetir é configurada da seguinte forma:
- Condição de Saída:
#>Declare variables.x<# == 5 - Limite de Iterações: 10
- Atraso (s): 0
- Condição de Saída:
Fluxo de Execução:
- A Tarefa Definir variáveis é executada pela primeira vez, x torna-se 1.
- A Tarefa Repetir avalia a condição:
1 == 5é falso. O ciclo continua. - A Tarefa Definir variáveis é executada novamente, x torna-se 2.
- O Repetir avalia: 2 == 5 é falso. O ciclo continua.
- ...este processo repete-se.
- Quando Definir variáveis define x como 5, o Repetir avalia 5 == 5, que é verdadeiro. A condição de saída é satisfeita, o ciclo é interrompido e o Fluxo de Trabalho prossegue.
Parâmetros de Saída
Ao completar a execução, a tarefa disponibiliza os seguintes Parâmetros de Saída, utilizáveis como entrada nas tarefas subsequentes do Fluxo de Trabalho.
- result: Este parâmetro contém uma mensagem de texto descritiva que explica o motivo da terminação do ciclo. O valor deste parâmetro muda dependendo do cenário:
- Exemplo se o ciclo terminar porque a Condição de Saída foi satisfeita: "Iteração 4 concluída (de 10 máx)"
- Exemplo se o ciclo terminar porque foi atingido o Limite de Iterações: "Número máximo de iterações atingido (7)"
- resultJson: Representa o resultado da execução da tarefa em formato JSON, incluindo informações gerais, configurações e detalhes da execução.