Rule conditions allow you to test the state of another rule. This is an important feature that allows you to break down complex logic into smaller components that are easier to create, troubleshoot and test.
The operators that apply to this condition are only those that apply to boolean (true, false, null) results for the referenced rule:
is TRUE— matches the SET rule state (only);
is FALSE— matches the RESET rule state (only);
is NOT TRUE— matches when the rule produces a null state (intentionally or as the result of being disabled or there was an error handling the rule) or the RESET state;
is NOT FALSE— matches when the rule produces a null state (intentionally or as the result of being disabled or there was an error handling the rule) or the SET state;
is NULL— matches when the rule produces a null state;
is NOT NULL— matches when the rule produces a state other than null (that is, the rule is either SET or RESET);
changes— when the rule changes state.
The null state for a rule is typically produced when a rule is disabled, or if the rule encounters an error in handling and cannot produce a SET/RESET result.
If you refer to other rules, Reactor does not check for loops/circular logic. That is, if rule A refers to rule B, and rule B refers back to rule A, that is a logic loop, and it could result in an "infinite loop" of evaluations. Be careful in setting up your logic to not create such loops."With great power comes great responsibility." --many