Prevention of conflicts
Rules can be written in such a way that they conflict with each other. For example, an assignment rule might be configured to enforce a parameter value that a disallowed combination rule currently blocks due to other parameter selections. Such a conflict can occur within the same configuration or between a parent and a child configuration through enforced parameter inheritance.
In these scenarios, the rule engine anticipates and automatically prevents rule conflicts by disallowing values that would cause a contradiction.
Identification of rules in harmony
In some scenarios, the rule engine can anticipate that an apparent conflict is not an actual conflict, thereby avoiding unnecessary disallowed values. A typical example of this occurs when two enforced assignment rules are triggered by different values of the same lookup parameter.
Example:
Assignment rule 1: Model = A enforces Length = 1,000
Assignment rule 2: Model = B enforces Length = 1,500
If Model is set to A, then Length is enforced to 1,000. If another parameter had independently enforced Length to 1,000, the rule engine would disallow selecting Model B, since Length cannot be enforced to both 1,000 and 1,500 simultaneously. However, because only Model A enforces Length to 1,000, the rule engine recognizes that this lock will disappear when switching to Model B. Therefore, selecting Model B remains allowed.
Clearing parameter values
The rule engine ensures that a configuration never enters an invalid state where a rule is violated (although warning attributes are allowed to trigger). As a last resort, the rule engine will clear a parameter value to avoid a conflict. This typically happens in two scenarios:
•A parameter that was excluded becomes included by an inclusion rule, but the value the parameter held before being excluded is no longer allowed. In this case, the value is cleared automatically without notifying the user.
•When editing a stored configuration, the rule engine detects that a saved parameter value is no longer allowed due to updates to the product's rules. The value is cleared, and a message is displayed to notify the user.
Assignment rules that only recommend values are allowed to fail
Assignment rules can be either enforced or non-enforced. Non-enforced rules are used to suggest recommended values to the user. If such a recommended value is blocked by other rules, it is considered acceptable, and the rule engine will not prevent the user's other selections.
When a non-forced assignment rule triggers, it will apply only the parameter values that are valid. If the Show information box option is enabled for the assignment rule, this dialog will still appear even if one or more values could not be set, ensuring the user is informed that the system attempted to apply those values.
Assignment expression rules cannot be enforced and are therefore always allowed to fail.