Cross-reference Rules

Cross-reference rules are rules that refer to a particular instance of a business object through the reference attribute of another object. For example, let us assume that our Policy business object has a reference attribute declared – this reference is to the Driver for which the policy is made. Let us assume that the name of this attribute is MyDriver. Our age rule should now be written like this:

IF Policy.MyDriver.Age > 70 THEN 
    INCREASE Policy.Excess BY 100

We should also make modifications to the process that enters the details of the driver and calculates the policy to initialize the MyDriver attribute of the Policy object appropriately:

ENTER NEW Driver
 CREATE Policy WITH Policy.MyDriver=Driver

The age rule written in the above form refers to the instance of the Driver object through the reference of the Policy object (Policy.MyDriver.Age). This rule therefore is a cross-reference rule.

Cross-reference rules are evaluated whenever the instance of the object they refer to is changed. Consider what happens if a policy for some driver has been calculated but then the user realizes that she had made a mistake and entered the wrong age of the driver. She brings up a form for the driver and changes the value of the Age attribute. Let us see what happens when the changes are submitted. The particular instance of a Driver object is modified and therefore if there are any rules attached to the Driver object they are evaluated. Let us assume for simplicity that there are no such rules. There is however a rule that refers to the Driver object – this is our age rule. Aware IM automatically finds the instance of the Policy object that refers to the instance of the modified Driver object and starts evaluating the cross-reference rule. Thus the system guarantees that the excess is correctly calculated no matter where the change that affects its calculation happens! If the age value entered first was 70 and the correct age is 71 then the excess will be re-calculated as soon as the correct age of 71 is submitted.

Note that Aware IM will re-calculate cross-reference rules only for those instances of business objects that refer to the modified instances – in our example, only the Policy instance that refers to the modified Driver object will be re-calculated; all other policies will not be considered.

There is a flag in the Configuration Tool that allows you to explicitly turn off the cross-reference rule mechanism for a particular rule (see Advanced Rule Options). When this flag is turned off for a rule the rule is never recognized as a cross-reference rule, so if any attributes referred to by this rule are modified the rule is not evaluated. Turning off this flag may be useful if evaluation of a cross-reference rule as a result of an attribute change leads to modification of a large number of business object instances. For example, let us say that our Policy object refers to a StampDuty object in a rule that calculates commission of the policy:

Policy.Commission = Policy.Value/20 + Policy.StampDuty.Rate/100

If rate of the StampDuty object changes this change will cause re-calculation of all policies in the system through the above rule, which is normally interpreted as a cross-reference rule. If there are a large number of policies in the system their re-calculation may take up significant time. You may want to warn the user about the effect of such change or even defer the execution of the change until nighttime. In this case you would like to configure a process that would control the changes to critical attributes of the system and turn off automatic recognition of cross-reference rules.

  • Last modified: 2022/09/13 18:15