You can reduce the complexity and testing of large Ruleflows by breaking a Ruleflow into smaller Ruleflows, and then constructing the larger Ruleflow from them. The resulting modularity simplifies unit testing and collaboration.

Consider the following Ruleflow from the Life Insurance sample project:


The Ruleflow editor shows the iSample_policy_pricing.erf canvas with four objects in sequence. The first three apply the risk assessment rules and the other object is altogether separate Ruleflow file, as you can see in the object's properties:


Figure 1. A Ruleflow overrides settings on an embedded Ruleflow

A Ruleflow file's Properties provide settings for versioning and effective date stamping of the Decision Service that will be created. (See the topic Ruleflow versions and effective dates for details.) However, when a Ruleflow is added to another Ruleflow's canvas, it ignores its Ruleflow Properties and takes on Ruleflow Activity Properties that are local to its role as a component of another Ruleflow, as illustrated.

You can change the name of the Ruleflow on the canvas in this context so that it provides meaning, and you can add comments. None of these actions change the Ruleflow properties of the original Ruleflow.
The referenced Ruleflow, iSample_generate_policy.erf, contains four Rulesheets, as shown:


With these two Ruleflows, each can be updated and tested independently, and -- as long as you ensure that the Vocabulary stays consistent -- separate teams can collaborate on developing risk rules and policy rules. That makes it easy to reuse either of these Ruleflows. For example, if policy pricing varies in different markets, then you can create a new Ruleflow that brings in the same risk assessment rules to provide the data to process against a modified policy pricing Ruleflow for the other market.

The parent Ruleflow provides its own settings for versioning and effective date stamping of the Decision Service that will be created, as illustrated:

Note: Deploying Ruleflows within a Ruleflow: When this Ruleflow is deployed, the generated Decision Service includes the content of both Ruleflows. However, when either of the included Ruleflows changes, Ruleflows that include one of them are not automatically updated: each must be redeployed to include the changes.

For more information, see Ruleflows