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.

O diagrama a seguir mostra o fluxo de mensagens da amostra SearchFilter:

Esta figura mostra o fluxo de mensagens SearchFilter. O nó SFInput é conectado ao nó SearchFilter e ao nó SFFailure. O nó SearchFilter é conectado ao nó SFOutput, ao nó NotFound e ao nó SFFailure. O nó NotFound é 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. Por exemplo:
<SearchName>
Surname of customer
</SearchName>

Se o nome de procura for exibido na mensagem de entrada XML, o nome do cliente completo é incluído no fim 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. Essa amostra demonstra as funções adicionais do nó SearchFilter. O código de exemplo a seguir é obtido do arquivo de origem Java com.ibm.broker.ude.samples.SearchFilterNode.java e mostra como o nome do cliente é incluído à mensagem cinco vezes.

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

O arquivo de origem Java com.ibm.broker.ude.samples.SearchFilterNode.java está localizado no projeto Javca 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ó NotFound inclui a cadeia "Not found" a mensagem de saída.

A amostra SearchFilter utiliza as seguintes filas:

Voltar para Amostra User-defined Extension

Voltar para Home da Amostra