首页 > 解决方案 > 如何扩展规则以覆盖现有规则

问题描述

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

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

例子:

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

所以扩展规则更加严格,因为你必须工作至少 60 分钟才能算作额外时间(否则你得到 0),但原始规则计算超过 30 分钟的任何时间。

因此,这两个规则都存在,并且您在工作中花费了 +45 分钟,基本规则将触发并计算它。但我们不希望这样,因为扩展规则具有更高的阈值。

标签: drools

解决方案


您可以将每个规则放在不同的agenda-group. 当您想对包含它的 30 分钟规则使用focusagenda-group。当您想对包含该内容的内容使用 60 分钟规则focusagenda-group

或者focus两者兼而有之agenda-groups。我们匹配的规则在最近关注的agenda-group第一。


推荐阅读