You are viewing an older version of this topic. To go to a different version, use the version menu at the upper-right. +

Studio Flow Controls

Flow Control Overview

Flow Controls route messages to various destinations in a Mule flow. Some Flow Controls incorporate logic to analyze and possibly transform messages before routing takes place. For example, various flow controls can:

  • Split a message into several segments, then route each segment to a different building block.

  • Combine several messages into a single message before sending it to the next building block in the flow.

  • Reorder a list of messages before sending it to the next building block.

  • Evaluate a message to determine which of several possible building blocks it should be routed to next.

  • Broadcast the same message to multiple building blocks.

Common Flow Control Configuration Fields

Flow control configuration requires two or three steps, depending on the specific flow control you configure:

  1. From the Studio Palette, drag a flow control icon to the Message Flow canvas. If you need to re-position the control in the flow; delete the control, then re-insert it in the correct position within the flow.
    + FC+Placement

    . The following flow controls: *Choice*, *All*, *Round Robin* and *First Successful* are encased inside a processing block (a gray "broken-line" rectangle). After placing one of these flow controls on the Message Flow canvas, you can drag and connect additional building blocks to the flow control. You can add multiple building blocks to the flow control to form a vertical column of building blocks to the right of the flow control (See: *below*). +
     image:FC+Column.png[FC+Column] +
    . To configure the flow control, double-click the flow control icon to open its properties pane, then supply values for the fields on the various tabs of the properties panes. (*All* and *Round Robin* support only the *Documentation* tab (field), which records your implementation notes for display in the application's XML configuration file as well as the Help balloon that pops up when you hover your mouse over that flow control). +
     image:FC+Properties.png[FC+Properties] +

Flow Controls Available in Studio

Some flow controls in the Studio Palette are used to simply pass the message payload to the next building block, while others modify or combine the message payload before sending.

Flow Controls That Do Not Change the Payload

Flow Control Description Documentation



Sends one message to multiple message processors.

All Flow Control Reference



Evaluates a message against specified criteria, then sends it to the first message processor that matches those criteria.

Choice Flow Control Reference


Round Robin

Flow Controls That Modify the Payload

collection-aggregator-24x16 Collection Aggregator Checks the group tag (known as a Correlation ID) attached to each message in a group to create a collection of messages which share the same Correlation ID. Coming Soon! Splitter-24x16 Collection Splitter Accepts a collection of messages (or parts of messages), splits them into individual messages, then sends each new message, in sequence, to the next message processor in a flow. Coming Soon! chunk-aggregator-24x16 Message Chunk Aggregator Checks the group tag (Correlation ID) of each message in a collection, selects all the messages whose group tag matches the specified value, then combines those messages into a single message which is then sent to the next message processor in an application flow. This is particularly useful for re-assembling the segments of a long message that has been received as multiple messages, each one consisting of a segment of fixed length created and sent by the Message Chunk Splitter. Coming Soon! resequencer-24x16 Resequencer Accepts a collection of messages, then uses the Sequence ID of each message to reorder those messages. It then sends the messages (in order of their new sequence), to the next message processor in an application flow. Coming Soon!