Ir para o conteúdo

Tratamento de erros de ação no Jitterbit App Builder

Tratamento de erros

A maioria dos tipos de ação termina imediatamente em resposta a uma exceção não tratada. A exceção é registrada no histórico de eventos. É responsabilidade do desenvolvedor validar os dados antes de executar a ação.

As ações de Business CRUD realizam operações entre plataformas. Em alguns casos, a operação inclui uma ou mais solicitações de API para serviços de terceiros, como endpoints REST. Muitas vezes, é difícil validar os dados antes de executar a ação. Em vez disso, os desenvolvedores precisam capturar e tratar a exceção.

Para isso, as ações de Business CRUD suportam os seguintes recursos:

Continuar em caso de erro

Uma ação de Business CRUD recupera as linhas de origem da regra em lotes e executa o evento (Inserir, Atualizar ou Excluir) para cada linha no lote. Por padrão, uma exceção não tratada termina a operação: nenhuma linha adicional é processada.

Quando a opção Continuar em caso de erro está habilitada, no entanto, a exceção é capturada. A ação continua processando as linhas restantes, e o evento é concluído com sucesso. Torna-se responsabilidade do desenvolvedor tratar quaisquer falhas usando um manipulador de ação.

Manipuladores de ação

Um manipulador de ação é fundamentalmente uma ação. No entanto, os manipuladores de ação diferem das ações das seguintes maneiras:

  • Enquanto as ações são registradas para serem executadas antes ou depois de um evento, os manipuladores de ação são executados após uma ação ser bem-sucedida ou falhar.

  • Enquanto as ações estão vinculadas à linha do objeto de dados, os manipuladores de ação estão vinculados à fonte da ação.

Os manipuladores de ação podem ser usados para os seguintes propósitos:

  • Registrar o status de linhas individuais.

  • Rastrear o progresso de uma operação de Business CRUD de longa duração.

  • Correlacionar falhas de linha com entradas no objeto de dados público EventHistory.

  • Revertendo o efeito de ações falhadas que não podem ser revertidas por transações de banco de dados.

Os desenvolvedores podem usar a função de tempo de execução event() do mvSQL a partir de manipuladores de ação para acessar informações de evento e nível de linha, incluindo o seguinte:

  • contextid: Um identificador único que pode ser usado para correlacionar eventos que ocorrem dentro de uma única operação, por exemplo, os eventos executados por uma ação CRUD de negócios.

  • rowid: Um identificador único para a linha na qual o evento foi invocado. No caso de uma regra CRUD de negócios, isso se refere à linha alvo. No caso de um manipulador de ação, isso se refere à linha de origem da ação.

  • source.rowid: Um identificador único para a linha de origem da regra CRUD de negócios. Isso se aplica a regras de inserção e atualização.

  • exception: Uma mensagem de exceção. Este valor é acessível aos manipuladores de falha de ação se o evento falhou como resultado de uma exceção.

As propriedades rowid e source.rowid permitem que os desenvolvedores correlacionem uma falha em nível de linha com uma entrada no objeto de dados público EventHistory. Uma configuração típica pode incluir:

  • Ação: Uma regra de inserção CRUD de negócios que visa um endpoint REST. A opção Continuar em Caso de Erro está habilitada.

  • Manipulador de Sucesso: Uma regra CRUD de banco de dados que atualiza a linha de origem da ação para indicar que a linha foi processada. Isso pode ser usado para relatar o status de uma operação em andamento ou para excluir a linha de execuções futuras. (Para que este manipulador seja visível, a regra associada deve visar a camada de lógica.)

  • Manipulador de Falha: Uma regra CRUD de banco de dados que atualiza a linha de origem da ação para indicar que a linha falhou. A regra CRUD de banco de dados usaria a função event('rowid') para registrar o identificador da linha. (Para que este manipulador seja visível, a regra associada deve visar a camada de lógica.)

  • Manipulador de Reversão: Ações que revertam o efeito de todas as ações bem-sucedidas ocorridas antes de uma ação falhada. A ação falhada em si não é tratada por este manipulador.

Os desenvolvedores devem expor as falhas na interface do usuário. Por exemplo, o desenvolvedor poderia construir uma página com dois painéis. O primeiro painel enumera as linhas com falha. O segundo painel está vinculado ao objeto de dados público EventHistory. Este último painel está vinculado ao primeiro, correspondendo RowId a SourceRowId.