Validar mensajes

El intermediario permite la validación basándose en los conjuntos de mensajes para mensajes predefinidos.

Antes de empezar:

Lea los temas conceptuales sobre los flujos de mensajes y los analizadores; especialmente los nodos Analizador y dominio MRM y Analizadores y dominios XML.

La validación sólo se aplica a los mensajes que haya modelado y desplegado en el intermediario. Específicamente, los dominios de mensajes que tienen soporte para la validación son MRM, XMLNSC, e IDOC.

El intermediario no proporciona ninguna validación para los mensajes autodefinidos. Los analizadores MRM e IDOC validan mensajes predefinidos con el diccionario de mensajes generado a partir de un conjunto de mensajes. El dominio XMLNSC valida los mensajes predefinidos directamente con el esquema XML generado a partir de un conjunto de mensajes.

Los flujos de mensajes están diseñados para transformar y direccionar los mensajes que cumplen ciertas normas. De forma predeterminada, los analizadores realizan alguna comprobación de validez en un mensaje, pero sólo para garantizar la integridad de la operación de análisis. Sin embargo, puede validar un mensaje de forma más rigurosa contra el modelo de mensaje contenido en el conjunto de mensajes, especificando opciones de validación en ciertos nodos en el flujo de mensajes.

Puede utilizar las opciones de validación para validar los siguientes mensajes:
  • Mensajes de entrada recibidos por un nodo de entrada
  • Mensajes de salida creados, por ejemplo, mediante un nodo Compute, Mapping o JavaCompute
Estas opciones de validación pueden garantizar la validez de los datos que entran y salen del flujo de mensajes. Las opciones le proporcionan cierto control sobre la validación que se realiza para:
  • Mantener un equilibrio entre los requisitos de rendimiento y los de seguridad.
  • Validar en etapas diferentes de la ejecución del flujo de mensajes; por ejemplo en la entrada de un mensaje o antes de la salida de un mensaje o en cualquier punto intermedio.
  • Manejar los mensajes que el modelo de mensaje no describe completamente.

También puede especificar qué acción se debe realizar cuando falla la validación.

La validación de un mensaje implica navegar por un árbol de mensaje y comprobar la validez del árbol. La validación de mensajes es una extensión de la creación de un árbol cuando se analiza el mensaje de entrada y de la creación de una corriente de bits cuando se graba el mensaje de salida.

Las opciones de validación están disponibles en los nodos siguientes:
Tipo de nodo Nodos con opciones de validación
Nodo de entrada MQInput, SCADAInput, HTTPInput, JMSInput, TimeoutNotification, ,
Nodo de salida MQOutput, MQReply, SCADAOutput, HTTPReply, JMSOutput, JMSReply, ,
Otros nodos Compute, Mapping, JavaCompute, Validate, ResetContentDescriptor, MQGet, HTTPRequest, , , ,

También se pueden especificar opciones de validación en la sentencia ESQL CREATE y la función ASBITSTREAM.

Para validar los mensajes de entrada que se reciben en un nodo de entrada, puede especificar propiedades de validación en el nodo de entrada. A continuación, el mensaje de entrada se valida cuando se analiza la corriente de bits de mensaje para formar el árbol de mensaje.

También puede utilizar la propiedad de Temporización de análisis del nodo de entrada para controlar si se debe analizar y validar el mensaje entero en este momento o si sólo se deben analizar y validar campos individuales cuando se haga referencia a ellos.

Para validar los mensajes de salida creados por un nodo de transformación, especifique propiedades de validación en el nodo propiamente dicho o en el nodo de salida que envía el mensaje. La validación tiene lugar cuando el nodo de salida crea la corriente de bits de mensaje desde el árbol de mensaje.

De forma alternativa, utilice un nodo Validate para validar un árbol de mensaje en un lugar específico del flujo de mensajes o utilice la función ESQL ASBITSTREAM de un nodo Compute, Filter o Database.

Por omisión se produce una cantidad limitada de validación si no modifica los valores de validación. En este nivel predeterminado, se genera una excepción si es cierta una de las condiciones siguientes:
  • Hay discrepancia de datos; por ejemplo, el analizador no puede interpretar los datos proporcionados para el tipo de campo especificado.
  • El orden de los elementos en el mensaje de salida no coincide con el orden de los elementos en el árbol lógico de mensaje lógico (sólo modelos de longitud fija MRM, CWF y TDS).
Adicionalmente, el analizador MRM realiza una acción de remedio limitada bajo las circunstancias siguientes:
  • Se descartan los campos externos en la salida para los formatos fijos (sólo modelos de longitud fija CWF y TDS).
  • Si falta contenido necesario, se proporcionan valores predeterminados, si están disponibles, en la salida para formatos fijos (sólo modelos de longitud fija CWF y TDS).
  • Si el tipo de datos de un elemento del árbol no coincide con el especificado en el diccionario, el tipo de datos se convierte en la salida para que coincida con la definición de diccionario, si es posible, para todos los formatos.
Sin embargo, si utiliza opciones de validación puede solicitar una validación más completa de los mensajes. Por ejemplo, quizá desee validar una o más de las siguientes condiciones y generar una excepción o anotar los errores:
  • El mensaje completo al inicio del flujo de mensajes
  • Que los elementos complejos tengan la Composición y la Validación de contenido correctas
  • Que todos los campos de datos contengan el tipo correcto de datos
  • Que los campos de datos satisfagan las limitaciones de valor en el modelo de mensaje
  • Que todos los campos obligatorios estén presentes en el mensaje
  • Que sólo los campos esperados estén presentes en el mensaje
  • Que los elementos del mensaje estén en el orden correcto

Los ejemplos de la Galería de ejemplos ilustran algunas de estas opciones de validación.

Cuando se utilizan opciones de validación es importante comprender el siguiente comportamiento.
  • La propiedad Temporización de análisis, que controla si tiene lugar el análisis a petición (a veces conocido como análisis parcial), produce un efecto en la temporización de la validación de los mensajes de entrada, incluidas las cabeceras de mensaje.

    Para obtener más información sobre la propiedad Temporización de análisis, consulte Análisis a petición.

  • Si se pasa un árbol de mensaje a un nodo de salida, de forma predeterminada, el nodo de salida hereda las opciones de validación en vigor para el árbol de mensaje. Puede alterar temporalmente estas opciones especificando un nuevo conjunto de opciones de validación en el nodo de salida.
  • Si se pasa un árbol de mensaje como entrada a un nodo Compute, Mapping, , o JavaCompute, cualquier nuevo árbol de mensaje de salida creado por el nodo tendrá las opciones de validación especificadas por el propio nodo (incluso si se copia el mensaje completo). Puede alterar temporalmente este comportamiento y especificar que los mensajes creados por el nodo hereden las opciones de validación del árbol de mensaje de entrada.
  • (Sólo dominio MRM) Cuando se graba la corriente de bits y se aplican las opciones de validación, se valida el mensaje entero. El árbol de mensaje puede contener un tipo sin resolver (por ejemplo, si un nodo Compute ha copiado un tipo sin resolver de un mensaje de entrada en un mensaje de salida, sin resolverlo). Si se encuentra un tipo así, se produce un error de validación porque no es posible validar el tipo. Para evitar este error, asegúrese de que se resuelvan todos los tipos sin resolver antes de ser copiados a los mensajes de salida.
  • (Sólo dominio MRM) No seleccione el recuadro de selección Truncar series de longitud fija porque la validación se realiza antes que el truncamiento y un campo de longitud fija no puede validarse si su longitud supera la longitud definida en el conjunto de mensajes. Para obtener más información sobre la propiedad Truncar series de longitud fija, consulte Propiedades de conjunto de mensajes de formato físico personalizado y Propiedades de conjunto de mensajes de formato TDS.

Para obtener información sobre cómo se puede controlar la validación utilizando propiedades diferentes, consulte el apartado Propiedades de validación.

Conceptos relacionados
Analizadores
Analizador y dominio MRM
Analizadores y dominios XML
Modelado de mensajes
Mensajes predefinidos y autodefinidos
Visión general de flujos de mensajes
Tareas relacionadas
Diseñar un flujo de mensajes
Crear un flujo de mensajes
Definir el contenido del flujo de mensajes
Referencia relacionada
Nodos incorporados
Análisis a petición
Propiedades de validación
Sentencia CREATE
Función ASBITSTREAM
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última actualización : 2009-02-16 13:53:29

ac00400_