Splitting Business Rules

Previous Next

You can split a Business Rule by creating one or more "sub-rules" that refer to that rule. "Sub-rules" have their Belongs To attribute set to the ID of the rule they refer to. When you query the rule in the Business Rules and Processes window, the "sub-rules" are displayed on the Related Rules tab page.

One way to split a rule is to take part of the rule's statement and move it to a sub-rule. Another way to split a rule is to take the rule's statement apart into distinct elements and to create a sub-rule for each element.

There is more than one reason why splitting a rule might be a good idea.

As an example, consider the rule "Changes made to combinations of roof elements and maintenance activities can be traced". This rule may have come out of a discussion during a session, it may be related to that session and it may already have been formally approved by customer. When it comes to implementing the rule, you may find that it is easy and necessary to implement that people can make the stated changes, but that there is no immediate time or budget for making those changes traceable. Create one sub-rule "Users can change combinations of roof elements and maintenance activities". Set the Priority of the sub-rule to a higher value than the Priority of the original rule. Implement the sub-rule, specify the Implementation(s) that define that work, and set the Built and Tested flags for the sub-rule to Yes. This approach allows you to express what part of the rule has been implemented, when and why, without changing the original approved formulation.

Another example of a rule split is when you have an approved rule, but during implementation work you realize that you must make an assumption (an interpretation that you assume, but cannot know for sure, to be correct). Formulate the assumption as a sub-rule, set the Source attribute to ASSUMPTION, and make sure the Approved flag remains set to No. At a later stage, make sure the customer approves rules that are marked in this way.