WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

Copiando uma Mensagem com um Nó .NETCompute

Copie uma mensagem existente utilizando o nó .NETCompute.

Nós de transformação, como o nó .NETCompute, podem modificar a estrutura em árvore lógica que é passada por meio de um fluxo de mensagens de um nó para o seguinte. Essa estrutura em árvore, ou conjunto de mensagens, contém quatro árvores para representar a mensagem, o ambiente, o ambiente local e a lista de exceções. Para enviar dados do terminal de entrada do nó .NETCompute para o terminal de saída, a classe associada ao nó deve conter um método Evaluate que propague o conjunto de mensagens de entrada ou crie um conjunto de mensagens de saída. Para copiar uma mensagem do terminal de entrada para o terminal de saída, propague o conjunto de mensagem de entrada inteiro. O código de modelo fornecido a você durante a criação de uma classe FilterNode em C# propaga a mensagem. Como é possível ver no código a seguir, o inputAssembly é passado para o método Propagate:

        public override void Evaluate(NBMessageAssembly inputAssembly)
        {
            NBOutputTerminal outTerminal = OutputTerminal("Out");

            NBMessage inputMessage = inputAssembly.Message;
            NBElement root = inputMessage.RootElement;

            #region UserCode
            // Inclua código do usuário nesta região para filtrar a mensagem
            #endregion UserCode

            // Altere o seguinte se não for propagar a mensagem para o terminal de 'Saída'
            outTerminal.Propagate(inputAssembly);
        }

Se você planeja copiar a mensagem e, em seguida, também atualizá-la no nó .NETCompute, é melhor usar o modelo CreateNode. Esse modelo cria um conjunto de saída. Copie o conjunto de entrada para esse conjunto de saída incluindo apenas uma linha de código na região UserCode:

        public override void Evaluate(NBMessageAssembly inputAssembly)
        {
            NBOutputTerminal outTerminal = OutputTerminal("out");

            NBMessage inputMessage = inputAssembly.Message;

            // Crie uma nova mensagem vazia, assegurando-se de que seja descartada após o uso
            using (NBMessage outputMessage = new NBMessage())
            {
                NBMessageAssembly outAssembly = new NBMessageAssembly(inputAssembly, outputMessage);
                NBElement inputRoot = inputMessage.RootElement;
                NBElement outputRoot = outputMessage.RootElement;

                // Copie, opcionalmente, os cabeçalhos das mensagens; remova-os se não forem necessários
                CopyMessageHeaders(inputRoot, outputRoot);

                #region UserCode
                // Inclua o código do usuário nessa região para criar uma nova mensagem de saída
                outputRoot.AddLastChild(inputRoot.LastChild);
                #endregion UserCode

                // Altere o seguinte se não for propagar a mensagem para o terminal de 'Saída'
                outTerminal.Propagate(outAssembly);
            }
        }
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:31:03


Tópico de TarefaTópico de Tarefa | Versão 8.0.0.5 | bc34208_