Nodes for making decisions
Optionally, use nodes that determine the order and flow of control in the message flow to decide how messages are processed by the flow.
- Nodes for making decisions
- Validate node
- Use the Validate node to check that the message that
arrives on its input terminal is as expected. You can check that
the message has the expected message template properties
(message domain, message set, and message type) and that the
content of the message is correct. You can check the message
against one or more of the message domain, message set, or
message type values.
The Validate node replaces the Check node, which is deprecated. The Validate node works in the same way as the Check node, but it has more Validation properties to enable the validation of message content by parsers that support that capability.
- Filter node
- Use the Filter node
with an ESQL statement to determine the next node to which the message
is sent by this node. Do not use the ESQL code that you develop for
use in a Filter node in
any other type of node.
The node terminals are True, False, Unknown, and Failure. The message is propagated to the True terminal if the test succeeds, and to the False terminal if it fails. If the statement cannot be resolved (for example, it tests the value of a field that is not in the input message), the message is propagated to the Unknown terminal. If any other error is detected, the message is propagated to the Failure terminal.
The test in the ESQL statement can depend on message content, database content, or a combination of the two.
If you refer to a database, you can control how it is accessed by this node by specifying user and password information for each data source that is defined in the registry on the integration node system. Use the mqsisetdbparms command to initialize and maintain these values.
Use this node in preference to the Compute node to provide message selection and routing; the Filter node is more efficient for this task.
- FlowOrder node
- You can connect the terminals of this node to force the message to be processed by one sequence of nodes, followed by a second sequence of nodes.
- Passthrough node
- Use the Passthrough node
to enable version control of a subflow at run time. Use this node
to add a label to your subflow. By combining this label with a reserved
word replacement from your version control system, you can identify
which version of a subflow is included in a deployed message flow.
You can use this label for your own purposes. If you include the correct
version keywords in the label, you can see the value of the label:
- Stored in the BAR file, by using the mqsireadbar command
- As last deployed to a particular integration node, on the properties of a deployed message flow in the IBM® Integration Toolkit
- In the integration node, if you enable user trace for that message flow
- Route node
- Use the Route node
to direct messages that meet certain criteria down different paths
of a message flow. For example, you can forward a message to different
service providers based on the request details. You can also use the Route node to bypass unnecessary
steps. For example, you can check to see whether certain data is in
a message, and run a database lookup operation only if the data is
missing. If you set the Distribution
Mode property to All,
you can trigger multiple events that each require different conditions.
For example, you can log requests that relate to a particular account
identifier, and send requests that relate to a particular product
to be audited.
Use the Route node to implement message routing with minimal programming logic. For more advanced routing scenarios, use a Compute node or a JavaCompute node.
- RouteToLabel node
- Use the RouteToLabel node after a Compute node or a JavaCompute node for complex routing. Define a list of destinations in a Compute or JavaCompute node that are acted on by the RouteToLabel node. The RouteToLabel node interrogates the destinations and passes the message on to the corresponding Label node.
- DatabaseRoute node
- Use the DatabaseRoute node to route a message by using information from a database with applied XPath routing expressions. The node looks up a collection of named column values from a located database row and synchronously applies one or more XPath expressions to these acquired values. Use the DatabaseRoute node to implement message routing with minimal programming logic. For more advanced routing scenarios, use a Compute node or a JavaCompute node.
- Label node
- Use the Label node
as a target for the next sequence of one or more nodes that are to
process a message. Use this node in combination with the RouteToLabel node for all types
of messages, or with the SOAPExtract node
for SOAP messages.
The Label node routes the message to the next node in the flow and completes no processing.
- ResetContentDescriptor node
- Use the ResetContentDescriptor node to set new message properties that are used when the message bit stream is next parsed by a subsequent node in the message flow.
- Mapping node
- Use the Mapping node to route a message.