Creazione di più messaggi di output

E' possibile utilizzare l'istruzione PROPAGATE per creare più messaggi di output nel nodo Compute. I messaggi di output che vengono creati possono avere contenuto uguale o diverso. E' possibile anche indirizzare i messaggi di output a uno qualsiasi dei quattro terminali di output alternativi del nodo Compute o ad un nodo Label.

Ad esempio, per creare tre copie del messaggio di input ricevuto dal nodo Compute, Inizio modificae inviarne una al terminale "Out" standard del nodo Compute, una al primo terminale "out1" alternativo del nodo Compute e una al nodo Label "ThirdCopy", Fine modificacodificare il seguente ESQL:

SET OutputRoot = InputRoot;
PROPAGATE;
SET OutputRoot = InputRoot;
PROPAGATEInizio modifica TO TERMINAL 'out1'Fine modifica;
SET OutputRoot = InputRoot;
PROPAGATE TO LABEL 'ThirdCopy';
Nel precedente esempio, il contenuto di OutputRoot viene reimpostato prima di ogni istruzione PROPAGATE, poiché, per impostazione predefinita, il nodo elimina il contenuto del buffer del messaggio di output e recupera la memoria quando l'istruzione PROPAGATE è completata. Un metodo alternativo consiste nell'indicare al nodo di non eliminare il contenuto del messaggio di output nelle prime due istruzioni PROPAGATE, in modo che il messaggio sia disponibile per l'instradamento alla destinazione successiva. Il codice per eseguire questa operazione è: Inizio modifica
SET OutputRoot = InputRoot;
PROPAGATE DELETE NONE;
SET OutputRoot = InputRoot;
PROPAGATE TO TERMINAL 'out1' DELETE NONE;
SET OutputRoot = InputRoot;
PROPAGATE TO LABEL 'ThirdCopy';
Fine modifica

Se non si inizializza il buffer di output, viene creato un messaggio vuoto e il flusso di messaggi rileva un errore e genera un'eccezione.

Assicurarsi anche che vengano copiate tutte le intestazioni del messaggio richieste nel buffer del messaggio di output per ogni messaggio di output trasmesso.

Se si desidera modificare il contenuto del messaggio di output prima di trasmettere ogni messaggio, codificare l'ESQL appropriato per effettuare le modifiche desiderate prima di codificare l'istruzione PROPAGATE.

Se si imposta il contenuto dell'ultimo messaggio di output che si desidera creare e lo si trasmette come azione finale del nodo Compute, non è necessario includere l'istruzione finale PROPAGATE. L'azione predefinita del nodo Compute è quella di trasmettere il contenuto del buffer di output quando termina. Ciò è implementato dall'istruzione RETURN TRUE, inclusa come istruzione finale nello skeleton del modulo.

Ad esempio, se si desidera creare tre copie del messaggio di input e non eseguire ulteriori azioni, includere questo codice immediatamente prima dell'istruzione RETURN TRUE:

SET OutputRoot = InputRoot;
PROPAGATE DELETE NONE;
PROPAGATE DELETE NONE;

In alternativa, è possibile modificare il funzionamento predefinito del nodo modificando RETURN TRUE in RETURN FALSE:

SET OutputRoot = InputRoot;
PROPAGATE DELETE NONE;
PROPAGATE DELETE NONE;
PROPAGATE;
RETURN FALSE;

Tre messaggi di output sono creati dalle tre istruzioni PROPAGATE. L'istruzione finale RETURN FALSE fa sì che il nodo termini, ma senza trasmettere un messaggio di output finale. Si noti che l'istruzione finale PROPAGATE non include la clausola DELETE NONE, poiché il nodo a questo punto deve rilasciare la memoria.

Concetti correlati
Panoramica dei flussi di messaggi
Panoramica di ESQL
Creazione di modelli di messaggio
Attività correlate
Progettazione di un flusso di messaggi
Definizione del contenuto del flusso di messaggi
Accesso alla struttura ad albero Properties
Gestione dei file ESQL
Riferimenti correlati
Nodo Compute
Riferimento ESQL
Istruzione PROPAGATE
Istruzione RETURN
Istruzione SET
Informazioni correlate
Nodo Compute
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ac12370_