From FlexRule Wiki
Jump to: navigation, search

What is a Flow?

Flow consists of a set of:

  • Nodes
  • Transitions

A flow allows you to orchestrate execution of multiple activity, task or logic documents.



Nodes are an isolated executable unit of work that carry a goal to be met. A node in the FlexRule Flow engine can simply be:

  • an activity to be executed
  • a rule to be evaluated
  • a decision to be taken
  • and so on...

check the API section for the complete list.

However a node has no notion of sequence or succession. A node may have some Incoming and Outgoing transitions.


In a Flow, transitions are responsible for connecting one activity to another. This is the execution transition between different nodes in the flow. Most transitions just model the next step in a flow by pointing the to attribute to the next node. However, sometimes a transition may have:

  1. Conditions
  2. Priority
  3. Exception information

These attributes of transitions allow the handling of complex behaviors in a flow.

Must have Nodes

All Flows must have at least a Start node and an End node.


Any step of the process can be an action to call a logic document, custom code, evaluate an expression, etc. It can be any of the following:

  1. Validation
  2. Procedural Tree
  3. Flow (other flows - SubFlow)
  4. Decision Requirement Diagram (DRD)
  5. Natural Language (NL)
  6. Decision Table (DT)
  7. Decision Requirement Diagram (DRD)
  8. Information Requirement Diagram (IRD)
  9. Direct expression with no specific logic document (as an activity in flow)
  10. Custom code


For more details on the API please check Flow Commands