Mit Hilfe der Anweisung PROPAGATE können Sie mehrere Ausgabenachrichten im Rechenknoten generieren. Die von Ihnen generierten Ausgabenachrichten können denselben oder unterschiedlichen Inhalt haben. Sie können Ausgabenachrichten auch an alle vier alternativen Ausgabeterminals des Rechenknotens oder an einen Zieladressenknoten übertragen.
Wenn Sie beispielsweise drei Kopien derjenigen Eingabenachricht erstellen möchten, die vom Rechenknoten empfangen wurde, und davon eine Kopie an das standardmäßige Terminal "Out" des Rechenknotens, eine an das erste alternative Terminal "out1" des Rechenknotens und eine an den Zieladressenknoten "ThirdCopy" senden möchten,
schreiben Sie folgenden ESQL-Code:
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';
Wenn Sie den Ausgabepuffer nicht initialisieren, wird eine leere Nachricht generiert, und der Nachrichtenfluss stellt einen Fehler fest und gibt eine Ausnahmebedingung aus.
Stellen Sie auch sicher, dass Sie für jede weitergegebene Ausgabenachricht alle erforderlichen Nachrichtenheader in den Puffer für Ausgabenachrichten kopieren.
Wenn Sie den Inhalt der Ausgabenachricht vor der Weitergabe der einzelnen Nachrichten ändern möchten, schreiben Sie den entsprechenden ESQL-Code zur Ausführung der gewünschten Änderungen vor der Codierung der PROPAGATE-Anweisung.
Wenn Sie den Inhalt der letzten Ausgabenachricht, die generiert werden soll, konfigurieren und diesen als letzte Aktion des Rechenknotens weitergeben, müssen Sie die letzte PROPAGATE-Anweisung nicht einfügen. Die Standardaktion des Rechenknotens besteht in der Weitergabe des Ausgabepufferinhalts, wenn er beendet wird. Dies wird durch die Anweisung RETURN TRUE implementiert, eingeschlossen als letzte Anweisung im Modulgerüst.
Wenn Sie beispielsweise drei Kopien der Eingabenachricht generieren möchten und keine weitere Aktion ausführen, fügen Sie diesen Code unmittelbar vor der RETURN TRUE-Anweisung ein:
SET OutputRoot = InputRoot; PROPAGATE DELETE NONE; PROPAGATE DELETE NONE;
Alternativ dazu können Sie das Standardverhalten des Knotens ändern, indem Sie RETURN TRUE in RETURN FALSE ändern:
SET OutputRoot = InputRoot; PROPAGATE DELETE NONE; PROPAGATEDELETE NONE; PROPAGATE; RETURN FALSE;
Von den drei PROPAGATE-Anweisungen werden drei Ausgabenachrichten generiert. Die letzte RETURN FALSE-Anweisung bewirkt, dass der Knoten beendet wird, jedoch keine letzte Ausgabenachricht weitergibt. Beachten Sie, dass in der letzten PROPAGATE-Anweisung die Klausel DELETE NONE nicht enthalten ist, da der Knoten zu diesem Zeitpunkt den Speicher freigeben muss.