3.11. Assigning Rules to a Rule Flow Group
When you are dealing with many large rule sets, managing the order in which rules are evaluated can become complex. Rule Flow allows you to specify the order in which rule sets are to be evaluated. It does so by providing you with a flow chart. Use this chart to define which rule sets should be evaluated in sequence and which in parallel, and to specify conditions under which rule sets should be evaluated. Read this section to learn more about this functionality and to see some examples.
A rule flow can handle conditional branching, parallelism, and synchronization.
To use a rule flow to describe the order in which rules should be evaluated, follow these steps:
First sort your rules into groups using the ruleflow-group rule attribute (options in the GUI).
Next, create a rule flow graph (which is a flow chart) that graphically orders the sequence in which the ruleflow-group should be evaluated.Here is an example:
This rule belongs to the ruleflow-group called
group1.
Rules that are executing as part of a ruleflow-group that is triggered by a process, can also access the rule consequence's rule flow context. Through this context, you can access the rule flow or node instance that triggered the ruleflow-group. You can also set or retrieve variables:
drools.getContext(ProcessContext.class).getProcessInstance()
drools.getContext(ProcessContext.class).getProcessInstance()