Do While
Saiba mais sobre o conector Do While e como usá-lo na Digibee Integration Platform.
Atualizado
Isto foi útil?
Saiba mais sobre o conector Do While e como usá-lo na Digibee Integration Platform.
Atualizado
Isto foi útil?
O Do While permite a construção de blocos em loop dentro de um pipeline. Ele faz parte de um conjunto de conectores que trabalham com subfluxos para executar suas funções.
Dê uma olhada nos parâmetros de configuração do conector. Parâmetros suportados por expressões Double Braces estão marcados com (DB)
.
Iteration
Define o número máximo de vezes que um loop é executado (é possível interromper o loop antes que esse número seja alcançado).
10
Integer
Timeout
Tempo máximo de execução do loop.
300000
Integer
Loop Index
Se ativado, uma propriedade "loopIndex"
será inserida na mensagem apresentada em cada iteração do loop, informando o índice atual da iteração (1, 2, 3, …).
False
Booleano
Interrupt Loop On Error
Se ativado, um erro ocorrido dentro de uma iteração interromperá o loop como um todo. Caso contrário, o loop continuará a partir da próxima iteração.
True
Booleano
Para trabalhar com esse tipo de conector, é importante considerar:
Subfluxo definido no bloco onProcess: o pipeline definido nesse bloco é executado a cada iteração do loop. Assim, se o loop tiver 10 iterações, o subfluxo será executado 10 vezes.
Subfluxo definido no bloco onException: o pipeline definido nesse bloco será executado sempre que uma iteração do loop resultar em erro.
Para definir o subfluxo a ser executado em cada iteração, basta clicar no ícone onProcess do conector Do While:
Ao clicar nesse ícone, um subfluxo será criado (ou exibido, caso já exista). Depois, basta construir o fluxo desejado de acordo com a necessidade de execução de cada iteração.
A entrada desse pipeline será alimentada com a mensagem que vem antes do Do While. Isso ocorrerá na execução do loop #1. Para as demais iterações, a mensagem apresentada será a mensagem final da iteração anterior e assim sucessivamente. Se o Loop Index estiver ativado, uma propriedade loopIndex
será inserida na mensagem, informando a iteração atual.
Para interromper um loop antes do número máximo de iterações definidas, basta informar a propriedade "loopBreak: true"
no final da iteração. Se a propriedade for encontrada, o loop será interrompido.
Uma forma de informar essa propriedade é usando o conector JSON Generator, que permite definir JSONs arbitrários no fluxo do pipeline.
Quando a propriedade loopBreak: true
é usada, a saída do conector ficará vazia. Para facilitar a localização dessa propriedade no seu fluxo, recomendamos nomear o conector como "loopBreak". Assim, você pode identificar rapidamente onde o loop foi interrompido ao analisar a execução.
O comportamento padrão do Do While é interromper o loop caso ocorra um erro. Erros são situações atípicas na execução de um pipeline que resultam na sua interrupção. Por exemplo, o uso de um conector Assert gera um erro no pipeline quando a condição da asserção não é atendida. Outras situações de erro ocorrem quando conectores são utilizados com a configuração Fail On Error ativada.
Conforme explicado anteriormente, é possível definir um subfluxo para tratar erros. A definição desse subfluxo é feita através do ícone onException do conector Do While:
A entrada desse subfluxo será alimentada com uma mensagem de erro, que informará o que ocorreu na iteração e o índice da iteração (loopIndex
) que causou a falha.
O subfluxo será imediatamente interrompido;
Um erro será lançado pelo conector Do While;
Nenhum outro conector será invocado após o Do While.
O subfluxo será imediatamente interrompido;
O subfluxo definido em onException será executado, e sua saída alimentará o conector seguinte ao Do While;
O conector seguinte ao Do While será invocado.
A iteração onde ocorreu o erro será interrompida;
Uma mensagem de erro padrão será informada na entrada da próxima iteração, e o loop continuará normalmente.
A iteração onde ocorreu o erro será interrompida;
O subfluxo definido em onException será executado, e sua saída alimentará a próxima iteração;
O loop continuará normalmente.
O loop será interrompido;
O erro será lançado para o próximo conector ao qual o Do While está associado;
Se o Do While estiver no fluxo principal do pipeline, então o pipeline será interrompido;
Se o Do While estiver dentro de um conector que possui um subfluxo, então o subfluxo onException será invocado, e o erro será informado na entrada desse pipeline.