Block Execution
Conheça o componente e saiba como utilizá-lo.
O Block Execution declara um trecho de pipeline para um fim específico. Ele pode ser usado para:
separar logicamente trechos de um pipeline extenso de maneira que o seu comportamento se torne mais fácil de entender;
permitir que os diferentes caminhos criados por componentes de desvio de fluxo possam se unir ao final do trecho declarado (mais detalhes adiante);
declarar um trecho de pipeline para tratamento de erros específicos.
Parâmetros
O Block Execution não possui nenhuma configuração específica para o seu funcionamento, bastando apenas construir os subpipelines onProcess e onException.
Subpipelines
O Block Execution faz parte de um conjunto de componentes que trabalham com subpipelines para executar as suas funções. Para mais informações, leia a documentação sobre Subpipelines.
Para trabalhar com este tipo de componente, você precisa levar em consideração 2 conceitos importantes:
Subpipeline definido no bloco onProcess: o pipeline definido nesse bloco é o trecho de execução do componente.
Subpipeline definido no bloco onException: o pipeline definido nesse bloco é executado sempre que ocorrer uma falha no bloco onProcess. Veja mais detalhes abaixo.
Definindo o subpipeline executado como parte do bloco
Para definir o subpipeline a ser executado, basta clicar no ícone onProcess do componente:
Ao clicar nesse ícone, um subpipeline será criado (ou exibido, caso já exista). Então basta construir o fluxo desejado conforme a necessidade de execução.
A entrada desse subpipeline será alimentada com a mensagem imediatamente anterior ao Block Execution.
Utilizando o Block Execution para unir caminhos diferentes de um componente de desvio de fluxo
Quando um componente de desvio de fluxo é utilizado, assim como o Choice, múltiplos caminhos são criados no pipeline para atender ao desvio de fluxo desejado. Por exemplo:
No caso acima, você pode ver 2 desvios de fluxo: path 1 e path 2, que levam a caminhos completamente diferentes no pipeline. Suponha que seja necessário unir esses caminhos para continuar a execução do pipeline. O componente Block Execution tem a função de realizar esse agrupamento de caminhos diferentes em um bloco de execução separado. Quando um dos caminhos terminar, o controle volta para o Block Execution que, por sua vez, é seguido pelo próximo componente. Veja:
Nesse outro exemplo acima, o Block Execution é seguido pelo JSON Generator. Dentro do subpipeline onProcess do Block Execution, foi utilizado um componente Choice com desvios.
Quando os desvios chegam ao final, eles encerram o Block Execution, que retorna ao pipeline principal e executa o componente seguinte - nesse caso, o JSON Generator.
Dessa forma, é possível unir e organizar subpipelines que contenham fluxos com ramificações.
Tratamento de erros
Assim como todos os outros componentes que possuem os subpipelines onProcess e onException, o Block Execution também faz o tratamento de erros por meio da execução do subpipeline onException.
Um erro pode ser ocasionado por outros componentes quando eles identificam situações adversas. Geralmente os componentes possuem uma propriedade de configuração denominada Fail On Error, que controla se você deseja ou não gerar um erro que possa ser tratado em fluxos onException.
Assim, quando um componente "lança" um erro e está com a propriedade Fail On Error ativada, o Block Execution intercepta o erro e o envia para tratamento no subpipeline onException.
Estas são as situações especiais que você deve levar em consideração:
se um fluxo onException não for definido, o Block Execution simplesmente repassa o erro adiante para que outro componente com execução por subpipeline o trate. Por outro lado, se o fluxo principal do pipeline for utilizado, então o pipeline é encerrado com o erro;
se um novo erro ocorre durante o subpipeline onException, o Block Execution também repassa o erro adiante para que outro componente com execução por subpipeline o trate. Mas se o fluxo principal do pipeline for utilizado, o pipeline é igualmente encerrado com o erro.
Atualizado