La estructura del árbol lógico es la representación interna (intermediario) de un mensaje. También se conoce como mensaje ensamblado.
Cuando un mensaje llega a un intermediario, lo recibe un nodo de entrada que ha configurado en un flujo de mensajes. Antes de que el mensaje pueda ser procesado por el flujo de mensajes, el mensaje puede ser interpretado por uno o más analizadores que crean una representación de árbol lógico a partir de la corriente de bits de los datos del mensaje.
El formato de árbol comprende un contenido idéntico al de la corriente de bits a partir de la cual se ha creado, pero es más fácil de manipular dentro del flujo de mensajes. Muchos de los nodos de flujo de mensajes incorporados proporcionan una interfaz para que pueda consultar y actualizar el contenido del mensaje dentro del árbol, y efectuar otras acciones en los mensajes y las bases de datos, para ayudarle a proporcionar la función necesaria en cada nodo.
Se proporcionan varias interfaces:
La estructura de árbol creada por los analizadores es, en gran parte, independiente del formato del mensaje (por ejemplo, XML). La excepción a esto es el subárbol que se crea como parte del árbol de mensaje para representar el cuerpo del mensaje. Este subárbol es dependiente del mensaje y su contenido ya no se describe aquí.
El nodo de entrada crea este mensaje ensamblado, que consta de cuatro árboles:
l primero de estos árboles se rellena con el contenido de la corriente de bits del mensaje de entrada, tal como se describe en Cómo se llena el árbol de mensaje; inicialmente, los tres restantes están vacíos.
Cada uno de los cuatro árboles creados tiene un elemento raíz (con un nombre específico para cada árbol). Cada árbol está formado por varias partes distintas de información denominadas elementos. El elemento raíz no tiene ningún elemento padre ni hermano (los elementos hermano son aquellos que comparten un mismo elemento padre). El elemento raíz es el elemento padre de varios elementos hijo. Cada elemento hijo debe tener un elemento padre, puede o no tener elementos hermano, y puede tener o no elementos hijo.
Los cuatro árboles se crean tanto para los analizadores y nodos de entrada incorporados como para los definidos por el usuario.
El nodo de entrada pasa el mensaje ensamblado que ha creado a los siguientes nodos de proceso de mensajes en el flujo de mensajes:
Para determinar cuáles de los otros tres árboles se incluyen, debe especificar un valor para la propiedad Modalidad de cálculo del nodo (que se muestra en el separador Avanzadas). La acción predeterminada es sólo para el mensaje a crear. Puede especificar cualquier combinación de mensaje, los árboles Entorno local y Lista de excepciones que se crearán en el mensaje ensamblado de salida.
Si quiere que el mensaje ensamblado de salida contenga una copia completa del árbol de mensaje de entrada, puede codificar una sentencia ESQL SET para efectuar la copia. Si desea que el mensaje de salida contenga un subconjunto del árbol de mensaje de entrada, codifique ESQL para copiar las partes que desee. En ambos casos, la selección de Modalidad de cálculo debe incluir Message.
Si quiere que el mensaje ensamblado de salida contenga todo o parte del contenido del árbol Entorno local o Lista de excepciones, codifique el ESQL adecuado para copiar la información que desea conservar en ese árbol. La selección de Modalidad de cálculo debe incluir LocalEnvironment, o Exception, o ambos.
También puede codificar ESQL para rellenar el mensaje de salida, el árbol Entorno, Entorno local o Lista de excepciones con la información que no se copia del árbol de entrada. Por ejemplo, puede recuperar datos de una base de datos, o calcular el contenido a partir de los datos del mensaje de entrada.