Pular para o conteúdo principal

Repetir

Configuração atual da tarefa `Repeat` no Workflow Designer
  • 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).
  • 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.

  1. Declarar variáveis: Uma Tarefa inicial declara uma variável x = 1.
  2. Definir variáveis: Esta é a Tarefa que será repetida. A cada execução, incrementa o valor da variável x em 1.
  3. 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

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.