Utilizzare il nodo Compute per copiare parte di un messaggio di input in un messaggio di output. I risultati di tale copia dipendono dal tipo di programmi di analisi di input e di output utilizzati.
Quando sia il messaggio di origine che il messaggio di destinazione hanno la stessa struttura di cartella a livello root, viene eseguita una copia di programmi di analisi simili. Ad esempio:
SET OutputRoot.MQMD = InputRoot.MQMD;
copia tutti i child nella cartella MQMD del messaggio di input nella cartella MQMD del messaggio di output.
Un altro esempio di una struttura ad albero che supporta una copia di programmi di analisi simili è:
SET OutputRoot.XML.Data.Account = InputRoot.XML.Customer.Bank.Data;
Se né il messaggio di input né il messaggio di output si trovano nel dominio MRM, è necessario utilizzare il nodo Compute e specificare autonomamente la struttura dei messaggi.
Quando i messaggi di origine e i messaggi di destinazione hanno strutture di cartella diverse a livello di root, non è possibile eseguire una copia esatta dell'origine del messaggio. Al contrario, la copia di programmi di analisi diversi visualizza il messaggio di origine come una serie di cartelle nidificate che termina con una coppia nome-valore come elemento foglia. Ad esempio, copiando il seguente messaggio da XML a MRM:
<Name3><Name31>Value31</Name31>Value32</Name3>
si produce un elemento nome Name3 ed un elemento nome-valore chiamato Name31 con il valore Value31. Il secondo XML pcdata (Value32) non può essere rappresentato ed è eliminato.
La copia di programmi di analisi diversi esegue la scansione della struttura ad albero di origine e copia le cartelle, note anche come elementi nome e le coppie nome-valore elemento foglia. Tutto il resto, compresi gli elementi contrassegnati come speciali dal programma di analisi di origine, non viene copiato.
Un esempio di una struttura ad albero che ha come risultato una copia di programmi di analisi diversi è:
SET OutputRoot.MRM.Data.Account = InputRoot.XML.Data.Account;
Se l'algoritmo utilizzato per eseguire una copia di programmi di analisi diversi non si adatta alla propria struttura ad albero, può essere necessario qualificare ulteriormente il campo di origine per restringere la quantità di struttura ad albero copiata.
Fare attenzione quando si copiano le informazioni dai messaggi di input ai messaggi di output in domini differenti. E' possibile codificare un ESQL che crea una struttura o un contenuto del messaggio non completamente coerenti con le regole del programma di analisi che elaborerà il messaggio di output. Come risultato, è possibile che il messaggio di output non venga creato o sia creato con un contenuto imprevisto. Se si ritiene che il messaggio di output generato da un particolare flusso di messaggi non contenga il contenuto corretto o non abbia il formato previsto, controllare l'ESQL che crea il messaggio di output e cercare eventuali mancate corrispondenze di struttura, tipi campo, nomi campo e valori campo.
-- Copiare il messaggio nell'output, modificando i domini da XML a MRM SET OutputRoot.MRM = InputRoot.XML; -- Impostare il formato CWF per l'output tramite il dominio MRM SET OutputRoot.Properties.MessageType = '<MessageTypeName>'; SET OutputRoot.Properties.MessageSet = '<MessageSetName>'; SET OutputRoot.Properties.MessageFormat = 'CWF';