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, e inviarne una al terminale "Out" standard del nodo Compute,
una al primo terminale "out1" alternativo del nodo Compute e una al nodo
Label "ThirdCopy",
codificare il seguente ESQL:
SET OutputRoot = InputRoot; PROPAGATE; SET OutputRoot = InputRoot; PROPAGATETO TERMINAL 'out1'
; SET OutputRoot = InputRoot; PROPAGATE TO LABEL 'ThirdCopy';
SET OutputRoot = InputRoot; PROPAGATE DELETE NONE; SET OutputRoot = InputRoot; PROPAGATE TO TERMINAL 'out1' DELETE NONE; SET OutputRoot = InputRoot; PROPAGATE TO LABEL 'ThirdCopy';
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.