【问题标题】:Can we use multiple when then condition in a single rule in Drools.?我们可以在 Drools 的单个规则中使用多个 when then 条件吗?
【发布时间】:2013-06-26 11:22:24
【问题描述】:

我正在编写一个 .drl 文件来实现 Drools 规则。根据业务需求,我需要检查单个规则的 3 个条件。所以我的问题是,是否可以在同一规则中有多个when

我确实搜索了好几个小时,但没有得到任何有用的信息。有人可以指导我如何在流口水的单个规则中写多个when

也就是说可以这样吗?

rule "Test rule 1"
    when 
        condition1
    then
        <execute code>
    when
        condition2
    then
        <execute code>
end

【问题讨论】:

    标签: java jboss drools


    【解决方案1】:

    不,80% 肯定你不能。你用一个打开的 .drl 抓住了我并试了一下,说“输入不匹配”,但在第二个 then 之后的中间令牌上失败了。因此是 80%(比如说一些数字)。编译器高兴地通过了第二个when,没有失败。

    尝试并发布。

    【讨论】:

    • 正确我尝试了多个它说“输入不匹配”:(所以如果我想使用 4 个条件,我必须制定 4 个新规则对吗?
    • 如果我像您一样考虑when-then-when-then 方案,猜想您至少可以做两件事:拆分为两个规则和显着差异,或者在then 中构建if-'then'
    【解决方案2】:

    不,你不能。基本上,您将需要实现两条规则,每条规则都带有when 块之一。结果应该正是您想要的。

    【讨论】:

      【解决方案3】:

      不,我们不能这样做。我也尝试实现相同的方法,但最终编写了多个规则来满足所有 when/then 条件,如下所示

      规则“规则 DESC” 什么时候 健康)状况 然后 执行 结束

      规则“规则 DESC” 什么时候 健康)状况 然后 执行 结束

      【讨论】:

      • 这并不能真正回答问题。如果您有其他问题,可以点击 提问。要在此问题有新答案时收到通知,您可以follow this question。一旦你有足够的reputation,你也可以add a bounty 来引起对这个问题的更多关注。 - From Review
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-10
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多