Informationen zum Mustercode 'SearchFilter'

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

Im folgenden Diagramm ist der Nachrichtenfluss 'SearchFilter' dargestellt:

In dieser Abbildung ist der Nachrichtenfluss 'SearchFilter' dargestellt. Der SFInput-Knoten ist mit dem SearchFilter- und dem SFFailure-Knoten verbunden. Der SearchFilter-Knoten ist mit dem SFOutput-Knoten, dem NotFound-Knoten und dem SFFailure-Knoten verbunden. Der NotFound-Knoten ist mit dem SFOutput-Knoten und dem SFFailure-Knoten verbunden.

Der SearchFilter-Knoten 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 angezeigt wird, 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 SearchFilter-Knoten den Eintrag "Peter Schmitt" am Ende der Nachricht hinzu.

Wenn der vollständige Kundenname in diesem Mustercode gefunden wird, wird er der Nachricht fünf Mal hinzugefügt. Dieser Mustercode veranschaulicht die zusätzlichen Funktionen des SearchFilter-Knotens. 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 SearchFilter-Knotens gespeichert. Der Knoten 'NotFound' fügt der Ausgabenachricht die Zeichenfolge "Not found" (Nicht gefunden) hinzu.

Im Mustercode 'SearchFilter' werden folgende Warteschlangen verwendet:

Zurück zu den Informationen zum Mustercode 'User-defined Extension'

Zurück zum Beginn des Mustercodes