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:
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.
// Wurde der gesuchte Name gefunden, fügen Sie den Tag <Result> in die Ausgabenachricht ein if (customerElement.getFirstChild().getValue().equals(searchName)) { // Geben Sie an, dass der gesuchte Name gefunden wurde result = true; // Verketten Sie über StringBuffer 5 vollständige Namen miteinander; // dadurch verbessert sich die Leistung (gegenüber der normalen Zeichenverkettung) 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); } // Fügen Sie der Ausgabenachricht einen neuen <Result>-Tag als letztes // untergeordnetes Element von <Message1> hinzu 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:
Zurück zu Informationen zum Beispielprogramm 'Benutzerdefinierte Erweiterung'