如何扩展规则以覆盖现有规则

时间:2019-04-01 19:58:33

标签: drools

我需要设计一种解决方案,其中一组规则可以用另一组规则扩展,而无需修改原始组。

问题: 当简单地组合来自不同规则集的规则时可能会发生冲突,因为可以匹配多个规则。与基本规则冲突时,系统应仅触发扩展规则。

示例:

用于确定加班的时间跟踪系统具有一个阈值,可以决定何时将额外时间计为加班。

  • 基本规则将超时视为超过分钟。 30分钟。
  • 扩展规则将超时视为超过分钟。 60分钟。

因此扩展规则更加严格,因为您必须至少工作 60分钟将被计为额外时间(否则您将获得0),但是 原始规则计算30分钟以上的时间。

所以这两个规则都符合要求,您在基地上花费了+45分钟 规则将触发并计数。但是我们不希望这样做,因为扩展规则的阈值更高。

1 个答案:

答案 0 :(得分:0)

您可以将每个规则放在不同的agenda-group中。当您想在包含该规则的focus上使用30分钟规则agenda-group时。当您想在包含该规则的focus上使用60分钟规则agenda-group时。

或者focus两者都是agenda-groups。首先在最近关注的agenda-group中匹配规则。