Informazioni sull'esempio SearchFilter

Questo esempio dimostra come un nodo di elaborazione messaggi definito dall'utente Java possa essere utilizzato come nodo di filtro. Il nodo SearchFilter ricerca un nome cliente specifico in un messaggio XML che ne contiene venti.

La figura seguente mostra il flusso di messaggi di esempio SearchFilter:

Questa figura mostra il flusso di messaggi SearchFilter. Il nodo SFInput è connesso al nodo SearchFilter e al nodo SFFailure. Il nodo SearchFilter è connesso al nodo SFOutput, al nodo NotFound ed al nodo SFFailure. Il nodo NotFound è connesso al nodo SFOutput e al nodo SFFailure.

Il nodo SearchFilter ricerca nel contenuto del messaggio di input XML una stringa contenuta nell'elemento SearchName. Ad esempio:
<SearchName>
Cognome cliente
</SearchName>

Se il nome di ricerca compare nel messaggio di input XML, il nome completo del cliente viene aggiunto alla fine del messaggio. Ad esempio, se "John Smith" è uno dei venti nomi cliente nel messaggio di input e la stringa "Smith" è contenuta nell'elemento SearchName, il nodo SearchFilter aggiunge "John Smith" alla fine del messaggio.

In questo esempio, quando si trova il nome completo del cliente, viene aggiunto al messaggio cinque volte. Questo dimostra la funzionalità supplementare del nodo SearchFilter. Il seguente codice di esempio è tratto dal file origine Java com.ibm.broker.ude.samples.SearchFilterNode.java e mostra come il nome del cliente venga aggiunto al messaggio cinque volte.

// 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");
}

Il file origine Java com.ibm.broker.ude.samples.SearchFilterNode.java è ubicato nel progetto Java UDESampleJavaCode.

Se il nome di ricerca non viene trovato nel messaggio di input XML, la stringa "Not found" viene memorizzata nell'albero LocalEnvironment del nodo SearchFilter. Il nodo di calcolo "NotFound" aggiunge la stringa "Not found" al messaggio di output.

L'esempio SearchFilter utilizza le seguenti code:

Informazioni sull'esempio di estensione definita dall'utente

icona Pagina principale Torna alla pagina home dell'esempio