Ir para o conteúdo principal
Administrator Guide
Última atualização: 2023-06-23
Conceito: componentes do manipulador de erros

Conceito: componentes do manipulador de erros

O Studio fornece três manipuladores de erros diferentes em
Error Handlers
na
Palette
:
Name
Função
send-error
Permite que você processe o erro usando componentes e etapas padrão. Um padrão comum é usar
send-error
para relatar o erro ao evento de integração, invocando o componente comum
PutIntegrationMessage
.
log-error
Registra o erro atual no registro de saída. Inclui a mensagem de erro e o rastreamento de pilha da exceção Java. Use quando não é necessário expor erros individualmente no evento de integração, mas você quer registrar a mensagem no momento do erro. Evite registrar mensagens grandes, pois elas podem prejudicar o desempenho e ficar truncadas, levando à perda de dados de diagnóstico.
custom-error-handler
Permite que você informe um bean do Spring que usa Java para processar o erro. Use quando o tratamento do erro requer um código Java complexo.
Você pode adicionar um manipulador de erros como um elemento secundário de um componente de mediação ou como um elemento individual no assembly. Os manipuladores de erros adicionados aos componentes de mediação são locais. Os manipuladores de erros no assembly são globais.
Quando o Workday encontra um erro em uma integração do Studio, ele interrompe o processamento normal e desencadeia a cadeia de componentes processados, procurando um manipulador de erros para invocar. O Workday sempre tenta primeiro processar localmente os erros. Caso não haja nenhum manipulador de erros local disponível, a responsabilidade é passada para o manipulador de erros global. Use manipuladores de erros locais para ter controle sobre o que acontece quando ocorrerem erros ou para relatar o contexto detalhado do que a integração estava fazendo no momento do erro. Pense nos manipuladores de erros globais como um plano B.
Se todos os manipuladores foram acionados e o erro ainda não foi marcado como tratado, o Workday processa a mensagem, gera um erro a partir da exceção e marca o assembly como encerrado. O Workday descreve a integração como concluída com erros.
Comportamentos por padrão importantes:
  • Os manipuladores de erros locais processam somente os erros que surgem no respectivo componente de mediação principal. No entanto, eles também podem processar erros em componentes posteriores. Para habilitar esse comportamento, defina a propriedade
    Downstream Errors
    do componente de mediação que contém o manipulador de erros como
    true
    .
  • O Workday marca os erros como tratados quando um manipulador de erros é invocado. No entanto, se você define a propriedade
    Rethrow Error
    de um manipulador como
    true
    , o Workday não apaga o erro. Como resultado, ele é tratado pelo próximo manipulador de erros precedente ou global em escopo. Use esse padrão para relatar os detalhes de um erro localmente, mas para tratar a falha geral ou a conclusão em um nível mais alto na alocação.
  • Quando o Workday lida com um erro, ele reinicia o processamento da mensagem a partir do manipulador de erros acionado, continuando no caminho de resposta em direção ao elemento em que o erro foi gerado. No entanto, você pode especificar que o processamento seja retomado no elemento em que o erro foi gerado. Para habilitar esse comportamento, defina a propriedade
    Continue After Error
    do componente de mediação que contém o manipulador de erros como
    recover
    . Use esse comportamento nas situações em que o código invocado pelo manipulador de erros pode corrigir a condição de erro, permitindo que uma nova tentativa da operação com falha seja bem-sucedida.
Você ter ainda mais controle sobre os manipuladores de erros adicionando expressões de condição MVEL na visualização
Properties
. Quando as expressões de condição estão presentes, o Workday só invoca o manipulador de erros se todas forem avaliadas como verdadeiras.
Você pode forçar o aumento de erros usando o
context.setError
ou
context.SetException
em código Mvel ou Java. Quando usar a
setError
Método , você pode configurar uma ID de erro que pode ser detectada por expressões condicionais no manipulador de erros. Use essa técnica quando você está tratando um erro localmente, mas quer passar alguns detalhes do tipo de erro para um manipulador de erros precedente para tratamento comum.
Você também pode tratar erros usando componentes de
Route
:
  • A
    failover-strategy
    tenta usar uma rota e, se um erro ocorre, executa a rota de failover, marcando o erro como tratado.
  • A
    estratégia personalizada
    permite que você forneça um bean Splaver. Os feições da fonte implementam o
    RoutingStrategy
    Interface do, que tem um
    isHandleError
    Método . Use esse método para especificar que a estratégia trata de erros.