Subpipelines

Entenda o que são e como funcionam.

Micaella Mazoni avatar
Escrito por Micaella Mazoni
Atualizado há mais de uma semana

IMPORTANTE: esta documentação foi descontinuada. Leia a documentação Subpipelines atualizada no nosso novo portal de documentação.

Subpipeline é um subprocesso do pipeline principal. Subpipelines são necessariamente vinculados e disparados a partir de um componente no processo principal, como por exemplo o “For Each”.

Vamos imaginar um processo chamado Validação de Dados de Cliente. Esse processo obtém os dados de endpoint REST e então verifica se cada registro de cliente possui as informações necessárias. Para iterar por essa coleção de registros, usaremos o componente “For Each” (Processa Clientes).

Toda vez que um componente com capacidade de iterar por coleções é adicionado a um pipeline, 2 subpipelines são criados: onProcess e onException.

onProcess

Nesse subpipeline é implementado o fluxo que processa cada item da coleção. Ele tem seu próprio Canvas, que é acessado através do menu do componente:

No caso do processo Validação de Dados de Cliente, o subpipeline onProcess irá tratar todos os registros da coleção de clientes individualmente, verificando se cada um deles possui o atributo Data de Nascimento preenchido:

Ao término de cada execução do subpipeline onProcess, um atributo success é retornado, indicando se houve sucesso ou falha na execução. Por padrão, esse atributo é retornado com valor false. Assim, você precisa informar explicitamente quando a execução ocorreu conforme esperado.

No processo Validação de Dados de Cliente será retornada uma resposta de sucesso quando o atributo Data de Nascimento estiver preenchido. A resposta é gerada pelo componente JSON Generator (Sucesso) conforme indicado abaixo:

{
"success": true
}

Caso o atributo Data de Nascimento esteja vazio, o componente JSON Generator (Falha) retorna o atributo com valor false:

{
"success": false
}

Nesse caso, uma exceção através do componente Assert (Erro Interno) é gerada:

O atributo Fail On Error indica que, caso a Condição do componente Assert não seja satisfeita, a execução do fluxo do pipeline será interrompida e será lançada uma exceção.

Quando a exceção é originada por um componente que está dentro de um subpipeline, é iniciada a execução do subpipeline onException. Por outro lado, se a exceção ocorre em um componente que está no pipeline principal, a execução do pipeline será interrompida com erro.

onException

Nesse subpipeline é implementado o fluxo que trata uma exceção na execução do subpipeline onProcess. O Canvas pode ser acessado através do menu do componente:

Quando o onException é executado no processo Validação de Dados de Cliente, uma chamada a um endpoint REST é feita, registrando o incidente e gerando uma mensagem de erro no log da Plataforma.


Embora a utilização do onException seja opcional, nós a recomendamos fortemente. Diversos componentes da Plataforma suportam o atributo Fail On Error e permitem que estratégias de tratamento de erro e recuperação sejam implementadas através do onException, tornando o pipeline muito mais robusto e resiliente.

Para entender a composição de um pipeline, leia o artigo Pipeline.

Respondeu à sua pergunta?