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 mqsicredentials command to initialize and maintain these values. Alternatively, you can use the mqsisetdbparms command.

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® App Connect Enterprise 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.