Modifica del formato del messaggio

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.

Programmi di analisi simili

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 si desidera trasformare un messaggio di input nel dominio MRM in un messaggio di output anch'esso nel dominio MRM, è possibile utilizzare il nodo Compute o il nodo Mapping. Il nodo Mapping può interpretare l'azione richiesta poiché conosce il formato di entrambi i messaggi. Content Assist nel modulo ESQL per il nodo Compute può utilizzare anche le definizioni del messaggio per tali messaggi. Se i messaggi non sono nello stesso spazio dei nomi, è necessario utilizzare il nodo Compute.
Nota: per far sì che Content Assist gestisca i riferimenti di messaggio, è necessario impostare un riferimento del progetto dal progetto che contiene l'ESQL al progetto che contiene la serie di messaggi. Per informazioni sull'impostazione di un riferimento del progetto, consultare Riferimenti progetto.

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.

Programmi di analisi diversi

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.

Quando si copiano le strutture ad albero tra programmi di analisi diversi, si potrebbe anche voler impostare il formato del messaggio del programma di analisi di destinazione. Ad esempio, se una serie di messaggi è stata definita con formati XML e CWF sono richiesti i seguenti comandi per copiare un flusso di input XML sul programma di analisi MRM e impostare quest'ultimo per emettere output in formato CWF:
-- 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';	
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ac11610_