Se você detectar um erro ou outra situação em seu fluxo de mensagens no qual deseja que o processamento de mensagens seja terminado, poderá emitir uma exceção em um fluxo de mensagens de duas maneiras:
Inclua a instrução THROW em qualquer local no módulo ESQL para um nó Compute, Database ou Filter. Utilize as opções na instrução para codificar seus próprios dados para serem inseridos na exceção.
Defina as propriedades do nó para identificar a origem e o conteúdo da exceção.
Utilizando as opções de instrução das propriedades do nó, você pode especificar um identificador de mensagens e os valores que são inseridos no texto da mensagem para fornecer informações adicionais e identificação para os usuários que interpretam a exceção. Você pode especificar qualquer mensagem em qualquer catálogo que esteja disponível para o intermediário.
As situações nas quais talvez você queira emitir uma exceção são determinadas pelo comportamento do fluxo de mensagens e é necessário decidir quando projetar o fluxo de mensagens, no qual esta ação pode ser apropriada. Por exemplo, talvez você queira examinar o conteúdo da mensagem de entrada para assegurar-se de que ele atenda critérios específicos que não podem ser detectados pelo nó de entrada (que pode verificar se um determinado formato de mensagem é recebido).
O exemplo abaixo utiliza a mensagem de exemplo Invoice para mostrar como você pode utilizar a instrução ESQL THROW. Se desejar verificar se o número da fatura está em um determinado intervalo, você pode emitir uma exceção para qualquer mensagem de fatura recebida que não esteja no intervalo válido.
--Check for invoice number lower than permitted range IF Body.Invoice.InvoiceNo < 100000 THEN THROW USER EXCEPTION CATALOG 'MyCatalog' MESSAGE 1234 VALUES ('Invoice number too low', Body.Invoice.InvoiceNo); -- Check for invoice number higher than permitted range ELSEIF Body.InvoiceNo > 500000 THEN THROW USER EXCEPTION CATALOG 'MyCatalog' MESSAGE 1235 VALUES ('Invoice number too high', Body.Invoice.InvoiceNo); ELSE DO -- invoice number is within permitted range -- complete normal processing ENDIF;
Conceitos relacionados
Fluxos de Mensagem
Árvore Lista de Exceções
ESQL
Modelagem de Mensagens
Tarefas relacionadas
Projetando um Fluxo de Mensagens
Definindo o Conteúdo do Fluxo de Mensagens
Tratando Erros em Fluxos de Mensagens
Gerenciando Arquivos ESQL
Referências relacionadas
Nó Compute
Nó Database
Nó Filter
ESQL
Instrução THROW
Avisos |
Marcas |
Downloads |
Biblioteca |
Suporte |
Feedback
![]() ![]() |
ac17150_ |