如何覆盖Drools 6中的规则和决策表?
在一个场景中,我们有一套主规则。其中一条规则类似于以下规则:如何覆盖Drools 6中的规则和决策表?,drools,Drools,在一个场景中,我们有一套主规则。其中一条规则类似于以下规则: rule "Check Eligibility" when $response(type=="rest",age== 25) then $response.setSendLetter("Y"); $response.setUpdateStatus("eligible"); end 这些规则将提供给客户。我们希望我们的客户能够定制规则。若决定不定制,那个么规则应该适用于它们。定制可以在“何时”中添加附加条件,也
rule "Check Eligibility"
when
$response(type=="rest",age== 25)
then
$response.setSendLetter("Y");
$response.setUpdateStatus("eligible");
end
这些规则将提供给客户。我们希望我们的客户能够定制规则。若决定不定制,那个么规则应该适用于它们。定制可以在“何时”中添加附加条件,也可以覆盖现有条件,还可以添加或修改“何时”部分。他们还可以添加到规则的“then”部分
比如:
rule "Check Eligibility"
when
$response(type=="rest",age== 27, state="IL")
then
$response.setSendLetter("N");
$response.setUpdateStatus("eligible");
$response.setSendEmail("Y");
end
我们还有一些决策表需要类似的定制
根据规则,最初建议使用“extends”,但据我所知,“extends”的作用是“和”,它将检查父项和子项的条件,如果两者都是真的,它将执行“then”部分
我可以考虑的可能解决方案是为每个客户克隆主存储库,然后每当主存储库规则发生更改时,我们都会对客户存储库进行拉取。可能的问题可能是偶尔出现的合并冲突,这些冲突可能必须手动解决
克隆解决方案尚未被团队接受,因此想知道实现规则和决策表“覆盖”的可能解决方案是什么?存在技术问题和管理问题 如果你的管理层决定让客户乱用规则,他们必须意识到后果。显然,客户不会被单独留下来处理他们的规则,但您的组织将继续对整个应用程序的完美功能负责。你不能免费这么做,客户的回旋余地越大,成本就越高 对于这一点,没有令人满意的技术解决方案。扩展不适合您描述的修改类型:必须替换规则
至于在Excel文件中以电子表格形式编写的决策表,您无论如何都需要克隆。我想不出任何其他方法来修改这些规则集。谢谢@laune!非常感谢您的解释性回复。是的,#1是我想要的,考虑到我们必须在两个月后生活。我们还有决策表,无论如何都要复制。我们还计划推出定制UI,只公开用“特定领域语言”编写的规则,并允许他添加更多规则。正如你正确指出的那样,对于我们揭露的现有规则,我们必须小心。