当前位置: 首页 > 知识库问答 >
问题:

如何在drools xls决策表中触发依赖规则

关飞翔
2023-03-14

问题:我在决策表(电子表格)中有三个规则表,前两个规则表的规则定义了从第三个规则表中触发哪个规则。在第一个规则表中,根据某些条件,我更新了事实,该事实用于从第二个规则表中触发规则。在第二个规则表的ACTION列中,我更新了事实,我想根据这个更新的事实在第三个规则表中触发规则,但由于更新的事实,第一个表中的规则再次触发,然后第二个,循环继续。

每当我添加规则流组时,我都找不到在规则表中添加规则流组的方法,规则会停止触发任何事实。

我尝试的内容:我将无循环添加到true中,这样就没有规则为更新的事实触发相同的规则表。

我尝试添加LOCK-ON-Active属性,规则表1中的规则运行良好,但没有其他规则被触发。我认为在从规则表1中触发规则后,它会锁定规则包的所有规则,而是在规则表中添加“Lock-on-active”,而不是在规则集中。

共有1个答案

吴浩博
2023-03-14

这是一组非常抽象的规则,我觉得不值得深入讨论。更新一个事实意味着它在任何地方发生都会被重新评估,这在所有规则中都是如此。为了避免重新评估,如果RHS的结果已经在事实中设置,请使用阻止规则触发的约束。

rule "table_1_1"
when
    $input: Input(a==1, b!=1)
then
    modify( $input ){ setB( 1 ); }
end

rule "table_2_1"
when
    $input: Input(b==1, c!=1)
then
    modify( $input ){ setC( 1 ); }
end

第三个表未使用modify,因此不会导致循环。

 类似资料:
  • 因此,如果输入条件是TRUEFALSEFALSETRUEFALSE,那么有没有什么方法可以同时触发第一个规则和第二个规则,并在列表中返回结果,在本例中,第一个操作是APPROVERTWO和APPROVERFOUR。

  • 问题内容: 我是否可以从决策树中经过训练的树中提取出基本的决策规则(或“决策路径”)作为文本列表? 就像是: 谢谢你的帮助。 问题答案: 我相信这个答案比这里的其他答案更正确: 这会打印出有效的Python函数。这是一个试图返回其输入的树的示例输出,该数字介于0和10之间。 这是我在其他答案中看到的一些绊脚石: 使用来决定一个节点是否为叶是不是一个好主意。如果它是阈值为-2的真实决策节点怎么办?相

  • 在一个场景中,我们有一组主规则。其中一条规则类似于以下规则: 这些规则将向客户提供。我们希望我们的客户能够定制规则。若决定不定制,则应适用规则。自定义可以在“何时”中添加其他条件,也可以覆盖现有条件,还可以添加或修改“何时”部分。他们还可以添加到规则的“then”部分。 像这样的东西: 我们还有一些需要类似定制的决策表。 根据规则,最初建议使用“extends”,但据我所知,“extends”的作

  • 问题内容: 我可以从决策树中经过训练的树中提取出基本的决策规则(或“决策路径”)作为文本列表吗? 就像是: 谢谢你的帮助。 问题答案: 我相信这个答案比这里的其他答案更正确: 这会打印出有效的Python函数。这是尝试返回其输入的树的示例输出,该数字介于0到10之间。 这是我在其他答案中看到的一些绊脚石: 使用tree_.threshold == -2来决定一个节点是否为叶是不是一个好主意。如果它

  • 我有什么似乎是一个简单的问题,关于如何设置Jenkins和maven 3。 为了简单起见,假设我们有四个项目: 没有依赖关系的模型 Commons依赖于模型 服务器依赖于Common和模型 前端依赖于模型 我想要实现的是,一个成功的基于模型的构建触发所有项目的新构建,这些项目在其pom中依赖于模型(这里是公共的,服务器和前端) 如果Common失败,则无需构建服务器。 在上述情况下,我似乎可以通过

  • maven jetty插件有这个错误。我认为出现这个问题是因为插件的传输依赖性与新库冲突。这个错误出现在我将jersey1更改为jersey2并从com更改所有依赖项之后。sun到org。glassfish用于服务器客户端/核心/rs ws等。 等等 有人能回答如何避免这种错误吗?谢谢。 更新1:http://pastebin.com/ag2zdiSH链接到完整的pom