A estrutura da árvore lógica é uma representação interna (intermediário) de uma mensagem.
Quando uma mensagem chega em um intermediário, ela é recebida por um nó input que foi configurado em um fluxo de mensagens. Antes de a mensagem ser processada pelo fluxo de mensagens, ela deve ser interpretada por um ou mais analisadores que criam uma representação de árvore lógica a partir do fluxo de bits dos dados da mensagem.
O formato da árvore contém conteúdo idêntico ao fluxo de bits a partir do qual ele é criado, mas tem mais fácil manipulação dentro do fluxo de mensagens. Muitos dos nós de fluxos de mensagens embutidos fornecem uma interface para consulta e atualização do conteúdo de mensagens dentro da árvore e execução de outras ações em mensagens e bancos de dados para ajudar a fornecer a função requerida em cada nó.
Três interfaces foram fornecidas:
A estrutura da árvore criada pelos analisadores é amplamente independente de qualquer formato de mensagem (por exemplo, XML). Uma exceção para isso é a subárvore que é criada como parte da árvore de mensagens e que representa o corpo da mensagem. Essa subárvore é dependente da mensagem e seu conteúdo não é descrito com detalhes adicionais.
O nó input cria a árvore lógica, que consiste em quatro subárvores:
A primeira destas árvores é ocupada com o conteúdo do fluxo de bits da mensagem de entrada, conforme descrito em Como a Árvore de Mensagem É Ocupada: as três restantes estão inicialmente vazias.
Cada uma das quatro árvores criadas possui um elemento raiz (com um nome que é específico de cada árvore). Cada árvore é composta de várias partes distintas de informações chamadas elementos. O elemento raiz não possui pai e nem irmãos (irmãos são elementos que compartilham um único pai). A raiz é pai de vários elementos filhos. Cada filho deve ter um pai, pode ter zero ou mais irmãos e pode ter zero ou mais filhos.
As quatro árvores são criadas para nós de entrada internos e definidos pelo usuário e analisadores.
O nó input transmite a estrutura de árvore lógica que é criada para nós de processamento de mensagens subseqüentes no fluxo de mensagens:
Para determinar quais outras árvores estão incluídas, você deve especificar um valor para a propriedade modo Calcular do nó (exibida na guia Avançado). A ação padrão destina-se apenas à mensagem que será criada. Você pode especificar qualquer combinação de mensagem, das árvores LocalEnvironment e ExceptionList a serem criadas na árvore de saída.
Se você desejar que a árvore de saída contenha uma cópia completa da árvore de mensagens de entrada, será possível codificar uma única instrução ESQL SET para fazer a cópia. Se desejar que a mensagem de saída contenha um subconjunto da árvore de mensagens de entrada, você deve codificar o ESQL para copiar as partes desejadas. Em ambos os casos, sua opção de modo Calcular deve incluir Mensagem.
Se desejar que a árvore de saída contenha todo ou parte do conteúdo da árvore de entrada LocalEnvironment ou ExceptionList, você deve codificar o ESQL apropriado para copiar as informações que deseja manter nessa árvore. A opção de Modo Computar deve incluir LocalEnvironment, ou Exception, ou ambos.
Você também pode codificar o ESQL para ocupar a mensagem de saída, a árvore Ambiente, Ambiente Local ou Lista de Exceções com informações que não foram copiadas da árvore de entrada. Por exemplo, você pode recuperar dados de um banco de dados ou calcular o conteúdo dos dados da mensagem de entrada.