Informationen zum Beispielprogramm 'SearchFilter'

Das Beispielprogramm veranschaulicht, wie ein in Java geschriebener benutzerdefinierter Nachrichtenverarbeitungsknoten als Filterknoten verwendet werden kann. Der Suchfilterknoten sucht in einer XML-Nachricht, die zwanzig Kundennamen enthält, nach einem bestimmten Kundennamen.

In der folgenden Abbildung ist der Nachrichtenfluss 'SearchFilter' dargestellt:

In dieser Abbildung ist der Nachrichtenfluss 'SearchFilter' dargestellt. Der Suchfilterempfangsknoten ist mit dem Suchfilterknoten und dem Suchfilterfehlerknoten verbunden. Der Suchfilterknoten ist mit dem Suchfiltersendeknoten, dem Knoten 'Nicht_gefunden' und dem Suchfilterfehlerknoten verbunden. Der Knoten 'Nicht_gefunden' ist mit dem Suchfiltersendeknoten und dem Suchfilterfehlerknoten verbunden.

Der Suchfilterknoten durchsucht den Inhalt einer XML-Eingabenachricht nach einer Zeichenfolge, die im Element 'SearchName' angegeben ist. Beispiel:
<SearchName>
Surname of customer
</SearchName>

Wenn der gesuchte Name in der XML-Eingabenachricht vorhanden ist, wird der vollständige Kundenname am Ende der Nachricht hinzugefügt. Wenn beispielsweise "Peter Schmitt" einer der zwanzig Kundennamen in der Eingabenachricht ist und die Zeichenfolge "Schmitt" im Element 'SearchName' angegeben ist, fügt der Suchfilterknoten den Eintrag "Peter Schmitt" am Ende der Nachricht hinzu.

Wenn der vollständige Kundenname in diesem Beispielprogramm gefunden wird, wird er der Nachricht fünf Mal hinzugefügt. Dies veranschaulicht die zusätzlichen Funktionen des Suchfilterknotens. Der folgende Beispielcode, der aus der Java-Quellendatei 'com.ibm.broker.ude.samples.SearchFilterNode.java' stammt, veranschaulicht, dass der Kundenname fünf Mal der Nachricht hinzugefügt wird.

// if the search name was found then add <Result> tag to output message
if (customerElement.getFirstChild().getValue().equals(searchName)) {
// indicate that the search name has been found
result = true;

// construct a concatenation of 5 full names using String Buffer
// as this has improved performance over ordinary String concatenation
StringBuffer fiveNames = new StringBuffer();
fiveNames.append(customerElement.getLastChild().getValue());
fiveNames.append(" ");
fiveNames.append(searchName);
fiveNames.append(" ");

searchName = fiveNames.toString();

for (counter = 0; counter < 4; counter++) {
fiveNames.append(searchName);
}

// Add a new <Result> tag to output message as the last child of <Message1>
newtag = topOfBody.createElementAsLastChild(MbElement.TYPE_NAME, "Result", fiveNames.toString());

terminal = getOutputTerminal("True");
}

Die Java-Quellendatei 'com.ibm.broker.ude.samples.SearchFilterNode.java' befindet sich im Java-Projekt 'UDESampleJavaCode'.

Wenn der gesuchte Name in der XML-Eingabenachricht nicht gefunden wird, wird die Zeichenfolge "Not found" (Nicht gefunden) in der Baumstruktur 'LocalEnvironment' des Suchfilterknotens gespeichert. Der Rechenknoten "Nicht_gefunden" fügt der Ausgabenachricht die Zeichenfolge "Not found" (Nicht gefunden) hinzu.

Im Beispielprogramm 'SearchFilter' werden folgende Warteschlangen verwendet:

Informationen zum benutzerdefinierten Erweiterungsbeispiel

Symbol für die Hauptseite Zurück zum Beginn des Beispielprogramms