This presentation is part of the Reusability and Specialization e-Learning Course.
A RuleSet’s primary function is to group rules together for deployment. However, RuleSets can also be used for the specialization of rules in the same classes.
Things to keep in mind when designing your RuleSet structure include the following:
- When RuleSets are used for specialization of the same rule in the same class, it must be guaranteed that those two RuleSets will not be included in the same RuleSet list. If the two RuleSets are in the same list, the rule on the top of the RuleSet list will always be executed, regardless of the current work object
- RuleSets do not provide out-of-the-box read/write/execute permissions in the way that classes do
- Navigating between rules of the same name in different RuleSet can be more confusing than navigation based on the class structure
RuleSets can be effectively used alongside classes to provide more flexibility in rule management and promotion strategies for each specialization. For example, using a separate RuleSet and class for each division's mortgage program, such as commercial fixed, commercial ARM, personal fixed, and personal ARM, provide the necessary specialization via class structure, and the RuleSets make it easy to performed release management tasks on each program individually.
Many of PRPC’s caches are keyed off of your RuleSet list. If your RuleSet design leads you down a path with many unique RuleSet lists, you may have performance issues. In these situations, it is important to review the cache tuning guide and test your application using operator accounts that exercise all unique RuleSet lists. The Cache Tuning Guide can be found on the PDN.