Sobre a Amostra SearchFilter

Esta amostra demonstra como um nó de processamento de mensagem definido pelo usuário Java pode ser utilizado como um nó Filter. O nó SearchFilter procura um nome de cliente específico em uma mensagem XML que contém 20 nomes de clientes.

A figura a seguir mostra o fluxo de mensagens da amostra SearchFilter:

Esta Figura Mostra o Fluxo de Mensagens SearchFilter. O nó SFInput está conectado ao nó SearchFilter e ao nó SFFailure. O nó SearchFilter está conectado aos nós SFOutput, NotFound e SFFailure. O nó NotFound está conectado ao nó SFOutput e ao nó SFFailure.

O nó SearchFilter procura o conteúdo da mensagem de entrada XML em uma cadeia que está contida no elemento SearchName. Exemplo:
<SearchName>
Surname of customer
</SearchName>

Se o nome de procura aparecer na mensagem de entrada XML, o nome completo do cliente será incluído no final da mensagem. Por exemplo, se "John Smith" for um dos 20 nomes de clientes na mensagem de entrada e a cadeia "Smith" estiver contida no elemento SearchName, o nó SearchFilter incluirá "John Smith" no final da mensagem.

Nessa amostra, quando o nome completo do cliente for localizado, ele será incluído na mensagem cinco vezes. Isso demonstra a funcionalidade adicional do nó SearchFilter. O seguinte código de exemplo é obtido do arquivo de origem Java com.ibm.broker.ude.samples.SearchFilterNode.java e mostra como o nome do cliente é incluído na mensagem cinco vezes.

// se o nome de procura foi localizado, incluir a tag <Result> na mensagem de saída
if (customerElement.getFirstChild().getValue().equals(searchName)) {
// indica que o nome de procura foi localizado
result = true;

// construir uma concatenação de 5 nomes completos utilizando Buffer de Cadeia
// porque isso aprimorou o desempenho sobre a concatenação Cadeia comum
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);
}

// Incluir uma nova tag <Result> na mensagem de saída como o último filho de <Message1>
newtag = topOfBody.createElementAsLastChild(MbElement.TYPE_NAME, "Result", fiveNames.toString());

terminal = getOutputTerminal("True");
}

O arquivo de origem Java com.ibm.broker.ude.samples.SearchFilterNode.java está localizado no projeto Java UDESampleJavaCode.

Se o nome de procura não for localizado na mensagem de entrada XML, a cadeia "Not found" será armazenada na árvore LocalEnvironment do nó SearchFilter. O nó Compute "NotFound" inclui a cadeia "Not found" na mensagem de saída.

A amostra SearchFilter utiliza as seguintes filas:

Sobre a Amostra Extensão Definida pelo Usuário

Ícone Página Principal Voltar para Home da Amostra