La struttura ad albero logica è la rappresentazione interna (broker) di un messaggio.
Quando un messaggio arriva ad un broker, viene ricevuto da un nodo di input che è stato configurato in un flusso di messaggi. Prima che il messaggio possa essere elaborato dal flusso di messaggi, deve essere interpretato da uno o più programmi di analisi che creano una rappresentazione logica ad albero dal flusso di bit dei dati del messaggio.
Il formato ad albero contiene un contenuto identico a quello del flusso di bit dal quale viene creato, ma è più facile da manipolare all'interno del flusso di messaggi. Molti dei nodi integrati del flusso di messaggi forniscono un'interfaccia per eseguire query e aggiornamenti del contenuto del messaggio all'interno della struttura ad albero ed eseguire altre azioni sui messaggi e i database come supporto per fornire la funzione richiesta in ogni nodo.
Sono fornite tre interfacce:
La struttura ad albero creata dai programmi di analisi è in gran parte indipendente da qualsiasi formato del messaggio (ad esempio, XML). Fa eccezione la struttura ad albero secondaria creata come parte della struttura ad albero del messaggio e che rappresenta il contenuto del messaggio. Questa struttura ad albero secondaria dipende dal messaggio e non è descritta ulteriormente.
Il nodo di input crea la struttura ad albero logica, che consiste in quattro strutture ad albero secondarie:
La prima di queste strutture ad albero è popolata con il contenuto del flusso di bit del messaggio di input, come descritto in Come è popolata la struttura ad albero del messaggio: le restanti tre sono inizialmente vuote.
Ognuna delle quattro strutture ad albero create ha un elemento root (con un nome che è specifico per ogni struttura ad albero). Ogni struttura ad albero è costituita da un numero di informazioni distinte dette elementi. L'elemento root non ha parent né sibling (i sibling sono elementi che condividono un singolo parent). La root è parent di vari elementi child. Ogni child deve avere un parent, può avere zero o più sibling e può avere zero o più child.
Le quattro strutture ad albero sono create per i nodi di input e per i programmi di analisi sia integrati che definiti dall'utente.
Il nodo di input passa la struttura ad albero logica che ha creato ai nodi di elaborazione del messaggio successivi nel flusso di messaggi:
Per stabilire quali siano le altre strutture ad albero incluse, è necessario specificare un valore per la proprietà Modalità di calcolo del nodo (visualizzata nella scheda Avanzate). L'azione predefinita consiste nella creazione solo del messaggio. E' possibile specificare qualsiasi combinazione di strutture ad albero del messaggio, LocalEnvironment e ExceptionList da creare nella struttura ad albero di output.
Se si desidera che la struttura ad albero di output contenga una copia completa della struttura ad albero del messaggio di input, è possibile codificare una singola istruzione ESQL SET per creare la copia. Se si desidera che il messaggio di output contenga una serie secondaria della struttura ad albero del messaggio di input, codificare ESQL per copiare le sezioni che si desiderano. In entrambi i casi, la scelta della Modalità di calcolo deve includere Message.
Se si desidera che la struttura ad albero di output contenga tutti o parte del contenuto della struttura ad albero di input LocalEnvironment o ExceptionList, codificare l'ESQL appropriato per copiare le informazioni che si desidera conservare in quella struttura ad albero. La scelta della Modalità di calcolo deve includere LocalEnvironment o Exception o entrambi.
E' possibile anche codificare ESQL per popolare la struttura ad albero di output del messaggio, Environment, LocalEnvironment o ExceptionList con informazioni che non sono state copiate dalla struttura ad albero di input. Ad esempio, è possibile richiamare i dati dal database o calcolare il contenuto dai dati del messaggio di input.