Validando Mensagens

O intermediário fornece validação com base na mensagem definida para as mensagens predefinidas.

Antes de começar:

Leia os tópicos de conceitos sobre fluxos de mensagens e analisadores, especificamente Domínio e Analisador MRM e Analisadores e Domínios XML.

A validação se aplica apenas a mensagens modeladas e implementadas no intermediário. Especificamente, os domínios de mensagens que suportam a validação são MRM, XMLNSC, e IDOC.

O intermediário não fornece nenhuma validação para mensagens de autodefinição. Os analisadores MRM e IDOC validam mensagens predefinidas em relação ao dicionário de mensagens gerado a partir de um conjunto de mensagens. Os domínio XMLNSC valida mensagens predefinidas diretamente em relação ao Esquema XML gerado a partir de um conjunto de mensagens.

Os fluxos de mensagens são projetados para transformar e rotear mensagens que estão de acordo com determinadas regras. Por padrão, os analisadores desempenham alguma verificação de validade em uma mensagem, mas apenas para assegurar a integridade da operação de análise. Entretanto, você pode validar rigorosamente uma mensagem em relação ao modelo de mensagem contido no conjunto de mensagens, especificando as opções de validação em determinados nós no fluxo de mensagem.

Você pode utilizar opções de validação para validar as seguintes mensagens:
  • Mensagens de entrada que são recebidas por um nó input
  • As mensagens de saída que são criadas, por exemplo, por um nó Compute, Mapeamento ou JavaCompute
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:
  • Manter um equilíbrio entre requisitos de desempenho e requisitos de segurança
  • Validar em diferentes estágios da execução do fluxo de mensagens; por exemplo, na entrada de uma mensagem, antes da saída de uma mensagem ou em qualquer ponto intermediário
  • Suportar mensagens que seu modelo de mensagem não descreve totalmente

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

A Validação de Mensagens envolve a navegação em uma árvore de mensagens e a verificação da validade da árvore. A validação de mensagens é uma extensão da criação da árvore quando a mensagem de entrada é analisada e 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, JMSReply, ,
Outros nós Compute, Mapeamento, 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 que são recebidas em um nó de entrada, é possível especificar propriedades de validação no nó de entrada. A mensagem de entrada é então validada quando o fluxo de bits da mensagem é analisado para formar a árvore de mensagens.

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

Para validar mensagens de saída criadas por um nó de transformação, especifique propriedades de validação no próprio nó ou no nó de saída 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.

Alternativamente, utilize um nó Validate para validar uma árvore de mensagens em um local específico em seu fluxo de mensagens, ou utilize a função ESQL ASBITSTREAM em um nó Compute, Filter, ou Banco de Dados.

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:
  • Há uma incompatibilidade de dados; por exemplo, o analisador não pode interpretar os dados fornecidos para o tipo de campo especificado.
  • A ordem de elementos na mensagem de saída não corresponde à ordem de elementos na árvore de mensagens lógicas (apenas modelos de comprimento fixo MRM, CWF e TDS).
Além disso, o analisador MRM desempenha uma ação reparatória limitada nas seguintes circunstâncias:
  • Os campos externos são descartados na saída para formatos fixos (somente modelos de comprimento fixo CWF e TDS).
  • Se o conteúdo obrigatório estiver ausente, serão fornecidos padrões, se disponíveis, na saída para formatos fixos (somente modelos de comprimento fixo CWF e TDS).
  • Se o tipo de dados de um elemento na árvore não corresponder ao especificado no dicionário, o tipo de dados será convertido em 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:
  • Toda a mensagem no início do fluxo de mensagens
  • Que os elementos complexos possuam a Composição e Validação de Conteúdo corretas
  • Que todos os campos de dados contenham o tipo de dados correto
  • Que os campos de dados estejam de acordo com as restrições de valores no modelo de mensagem
  • Que todos os campos obrigatórios estejam presentes na mensagem
  • Que apenas os campos esperados estejam presentes na mensagem
  • Que os elementos da mensagem estejam na ordem correta

As amostras no Samples Gallery ilustram algumas destas opções de validação.

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

    Para obter informações adicionais sobre a propriedade Tempo de Análise, consulte Analisando On Demand.

  • 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 uma árvore de mensagens for transmitida como entrada para um nó Compute, Mapeamento, , ou JavaCompute, as novas árvores de mensagens de saída criadas pelo nó terão as opções de validação especificadas pelo próprio nó (mesmo que a mensagem inteira seja copiada). Você pode substituir esse comportamento e especificar que as mensagens criadas pelo nó herdem as opções de validação da árvore de mensagem de entrada.
  • (Apenas domínio MRM) Quando o fluxo de bits for gravado e as opções de validação forem aplicadas, toda a mensagem será validada. A árvore de mensagem pode conter um tipo não resolvido (por exemplo, se um nó Compute copiou 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 este erro, assegure-se de que todos os tipos não resolvidos sejam resolvidos antes de serem copiados para mensagens de saída.
  • (Apenas domínio MRM) Não selecione a caixa de opção Truncar cadeias de comprimento fixo porque a validação é feita antes do truncamento, e um campo de comprimento fixo causará falha na validação se seu comprimento exceder o comprimento definido no conjunto de mensagens. Para obter informações adicionais sobre a propriedade Truncar cadeias de comprimento fixo, consulte Propriedades do Conjunto de Mensagens CWF e Propriedades do Conjunto de Mensagens de Formato TDS.

Para obter informações sobre como controlar a validação utilizando propriedades diferentes, consulte Propriedades de Validação.

Conceitos relacionados
Analisadores
Domínio e Analisador MRM
Analisadores e Domínios XML
Modelagem de Mensagens
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
Analisando On Demand
Propriedades de Validação
Instrução CREATE
função ASBITSTREAM
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:11:34

ac00400_