假设我有两个规则-
如果满足rule1
和conditionA
的条件,则会触发conditionB
。
如果满足rule2
和conditionC
D的条件,则会触发condition
。
我想编写一个rule3
,如果已触发Rule1和Rule2,则应将其触发?理想情况下,我希望能够使用运算符,例如-fire rule3 if rule1 **AND** rule2 have been fired
fire rule3 if either rule1 **OR** rule2 has been fired.
换句话说,如何在另一条规则中引用一条规则?
我显然可以在rule3中使用conditionABCD,但是我确信必须有一种优雅的方式来处理这种情况。
理想情况下,我想将rule1,rule2和Rule3保留在一个DRL文件中。
最佳答案
当conditionA和conditionB都可以时,可以在rule1上添加一个事实,命名为rule1ok,而对于rule2,则使用rule2ok。
然后,您可以检查Rule3的新条件Rule1ok和Rule2ok。