IBM Integration Bus, Version 9.0.0.8 Operating Systems: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

See information about the latest product version

Creating elements using a .NETCompute node

The NBElement class represents a single parsed element in the message tree. The class provides four different creation methods that you can use to create a new element in the message tree.

The method names indicate where the element is to be created in the hierarchy in relation to the NBElement on which they are called. The following C# Evaluate method contains example code for a ..NETCompute node:
        public override void Evaluate(NBMessageAssembly inputAssembly)
        {
            NBOutputTerminal outTerminal = OutputTerminal("Out");
            NBMessage inputMessage = inputAssembly.Message;
            
            // Create a new empty message, ensuring it is disposed after use
            using (NBMessage outputMessage = new NBMessage())
            {
                NBMessageAssembly outAssembly = new NBMessageAssembly(inputAssembly, outputMessage);
                NBElement inputRoot = inputMessage.RootElement;
                NBElement outputRoot = outputMessage.RootElement;

                // Optionally copy message headers, remove if not needed
                CopyMessageHeaders(inputRoot, outputRoot);

                #region UserCode
                // Add user code in this region to create a new output message            
                NBElement msg = outputRoot.CreateLastChildUsingNewParser(NBParsers.XMLNSC.ParserName).CreateFirstChild(null,"Message");
                NBElement el4 = msg.CreateLastChild("Element4");
                NBElement el1 = msg.CreateFirstChild("Element1");
                el1.SetValue("Data Value for Element1");
                el4.SetValue("Data Value for Element4");
                el1.CreateAfter("Element2").SetValue("Data Value for Element2");
                el4.CreateBefore("Element3").SetValue("Data Value for Element3");                
                #endregion UserCode

                // Change the following if not propagating message to the 'Out' terminal
                outTerminal.Propagate(outAssembly);
            }
        }
When the node is wired to a suitable output node (such as an MQOutput node), the code produces an XML message that looks like this:
<Message>
     <Element1>Data Value for Elememt1</Element1>
     <Element2>Data Value for Elememt2</Element2>
     <Element3>Data Value for Elememt3</Element3>
     <Element4>Data Value for Elememt4</Element4>
</Message>

bc34212_.htm | Last updated Friday, 21 July 2017