假设我有两个规则-

如果满足rule1conditionA的条件,则会触发conditionB

如果满足rule2conditionC 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。

07-24 20:58