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.