Validando Mensagens

Antes de começar:

Leia os tópicos de conceitos sobre nós do fluxo de mensagens e Domínio e Analisador MRM.

O intermediário fornece validação com base nos dicionários de mensagens para mensagens predefinidas. A validação, portanto, se aplica apenas às mensagens que você modelou e definiu para o domínio MRM.

O intermediário não fornece nenhuma validação para mensagens de autodefinição. Não é possível validar mensagens diretamente em um Esquema XML DTD ou XML. Em vez disso, você deve criar o modelo equivalente no domínio MRM, importando seu Esquema XML DTD ou XML utilizando o Message Brokers Toolkit

Os fluxos de mensagens são projetados para transformar e rotear mensagens que estão de acordo com determinadas regras. Por padrão, o analisador MRM desempenha alguma verificação de validação em uma mensagem, mas apenas para assegurar a integridade da operação de análise. No entanto, também é possível validar uma mensagem rigorosamente no modelo de mensagens contido no dicionário de mensagens, especificando opções de validação em determinados nós no fluxo de mensagens.

Você pode utilizar opções de validação para validar as seguintes mensagens:

Essas opções de validação podem garantir a validade de dados que estão entrando e saindo do fluxo de mensagens. As opções fornecem algum grau de controle sobre a validação executada para:

Também é possível especificar qual ação executar quando a validação falhar.

A validação de mensagens envolve a navegação por uma árvore de mensagens e a verificação de sua validade. É uma extensão da criação da árvore quando a mensagem é analisada e uma extensão da criação do fluxo de bits quando a mensagem de saída é gravada.

As opções de validação estão disponíveis nos seguintes nós:

Tipo de Nó Nós com opções de validação
Nó Input MQInput, SCADAInput, HTTPInput, JMSInput, TimeoutNotification
Nó Output MQOutput, MQReply, SCADAOutput, HTTPReply, JMSOutput
Outros nós Compute, Mapping, JavaCompute, Validate, ResetContentDescriptor, MQGet, HTTPRequest,

As opções de validação também podem ser especificadas na instrução ESQL CREATE e na função ASBITSTREAM.

Para validar mensagens de entrada recebidas em um nó input, é possível especificar propriedades de validação no nó input. A mensagem de entrada é então validada conforme o fluxo de bits da mensagem é analisado para formar a árvore de mensagens.

Também é possível utilizar a propriedade Cronometragem de Análise do nó input para controlar se toda a mensagem deve ser analisada e validada neste momento ou se os arquivos individuais na mensagem serão analisados e validados apenas quando referidos.

Para validar mensagens de saída criadas por um nó Compute, um nó Mapping ou um nó JavaCompute, especifique propriedades de validação no próprio nó ou propriedades de validação no nó output que envia a mensagem. A validação ocorre quando o fluxo de bits da mensagem é criado a partir da árvore de mensagens pelo nó output.

Como alternativa, você pode utilizar um nó Validate para validar uma árvore de mensagens em um local específico em seu fluxo de mensagens ou pode utilizar a função ESQL ASBITSTREAM em um nó Compute, Filter ou Database.

Por padrão, ocorre uma quantidade limitada de validação, se você deixar as configurações de validação inalteradas. Nesse nível padrão, será emitida uma exceção se uma das seguintes condições for aplicável:
  • Houver uma incompatibilidade de dados na qual, por exemplo, o analisador não puder interpretar os dados fornecidos para o tipo de campo especificado
  • A ordem de elementos na mensagem de saída não corresponde à ordem na árvore de mensagens lógicas (apenas modelos de comprimento fixo CWF e TDS)
Além disso, por padrão, o analisador MRM desempenhará uma ação corretiva limitada nas seguintes circunstâncias:
  1. Os campos externos são descartados na saída para formatos fixos (apenas modelos de comprimento fixo CWF e TDS)
  2. Se o conteúdo obrigatório estiver ausente, serão fornecidos padrões, se disponíveis, na saída para formatos fixos (apenas modelos de comprimento fixo CWF e TDS)
  3. Se o tipo de dados de um elemento na árvore não corresponder ao especificado no dicionário, o tipo de dados será convertido na saída para corresponder à definição do dicionário, se possível, para todos os formatos.

No entanto, utilizando opções de validação, você pode solicitar uma validação de mensagens mais completa. Por exemplo, talvez você queira validar uma ou mais das seguintes condições e lançar uma exceção ou registrar os erros:

A amostra ilustra algumas dessas opções de validação.

Ao utilizar opções de validação, é importante entender o seguinte comportamento:
  • A propriedade Cronometragem de Análise, que controla se a análise 'on demand' (às vezes chamada de análise parcial) ocorrerá, tem um efeito na cronometragem da validação de mensagens de entrada, incluindo cabeçalhos de mensagens.

    Para obter informações adicionais sobre Cronometragem de Análise, consulte Propriedades de Validação para Mensagens no Domínio MRM.

  • Se uma árvore de mensagens for transmitida para um nó output, por padrão, o nó output herdará as opções de validação em vigor para a árvore de mensagens. É possível substituir estas opções especificando um novo conjunto de opções de validação no nó output.
  • Se a árvore de mensagens for transmitida como entrada para um nó Compute, Mapping ou JavaCompute, as novas árvores de mensagens de saída criadas pelo nó Compute, Mapping, ou JavaCompute terão as opções de validação especificadas pelo próprio nó (mesmo que toda a mensagem seja copiada). É possível substituir este comportamento e especificar que as mensagens criadas pelo nó herdarão as opções de validação da árvore de mensagens de entrada.
  • Quando o fluxo de bits for gravado e as opções de validação aplicadas, toda a mensagem será validada. É possível que a árvore de mensagens contenha um tipo não resolvido (por exemplo, se um nó Compute tiver copiado um tipo não resolvido de uma mensagem de entrada para uma mensagem de saída sem resolvê-lo). Se tal tipo for encontrado, ocorrerá um erro de validação porque não é possível validar o tipo. Para evitar isso, assegure-se de que todos os tipos não resolvidos sejam resolvidos antes de serem copiados para mensagens de saída.

Para obter informações sobre como controlar a validação utilizando propriedades diferentes, consulte Propriedades de Validação para Mensagens no Domínio MRM.

Conceitos relacionados
Mensagens Predefinidas e de Autodefinição
Visão Geral de Fluxos de Mensagens
Tarefas relacionadas
Projetando um Fluxo de Mensagens
Criação de um Fluxo de Mensagens
Definindo o Conteúdo do Fluxo de Mensagens
Referências relacionadas
Nós Internos
Propriedades de Validação para Mensagens no Domínio MRM
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ac00400_