java Drools决策表--条件参数的函数调用,以便通过比较来自函数的值来评估条件

mzaanser  于 2023-11-15  发布在  Java
关注(0)|答案(2)|浏览(123)

在我的drools决策表中,我想在条件单元格中保留一个getter或函数调用,以便条件将根据来自该getter或函数的值进行评估。即对于$param,我希望单元格从getter调用中评估param值。然后评估条件。
我保留了一个条件为$analytics.getProp1()<=($param)现在对于这个参数,我希望条件单元格从一个函数(getter调用)中获取值,比如$analytics.getProp2()。这样实际的计算结果将是$analytics.getProp1()<= $analytics.getProp2()
x1c 0d1x的数据
在所附的例子中,我试图从getProp 2()中获取值,并将其用于参数。正确的方法应该是什么?

2sbarzqh

2sbarzqh1#

Drools将解释用于生成规则的行中的表达式。

| DESCRIPTION | CONDITION                 | ACTION                      |
|             | $analytics: MyAnalytics()                               |
|             | prop1 <= $1               | $analytics.setSomething($1) |
|-------------|---------------------------|-----------------------------|
| Example1    | 5                         | 500                         |
| Example2    | $analytics.getProp2()     | $analytics.getProp1()       |

字符串
我认为,但我手头上没有Drools解释器来确认,你甚至不需要在规则生成行中显式地包含$analytics位。这是因为我们有效地生成了一个具有$analytics: MyAnalytics( prop1 <= prop2 )的DRL条件的规则,它不需要对父对象的任何引用:

| DESCRIPTION | CONDITION                 | ACTION                      |
|             |             $analytics: MyAnalytics()                   |
|             | prop1 <= $1               | $analytics.setSomething($1) |
|-------------|---------------------------|-----------------------------|
| Example3    | prop2                     | 500                         |

8i9zcol2

8i9zcol22#

我能够通过在每行的1个条件单元格中传递值来解决这个问题,因为我需要将条件评估为OR而不是AND。昨天解决了这个问题,我忘记发布答案。感谢您的回应在上面的场景中,我将两个条件的值都保存在行中,但是我的条件中只有一个可以同时为真,所以我需要保持其他条件值单元格为空。下面是相同的解决方案图像。


的数据
我的条件是,如果第一个条件为真,另一个条件将为假。因为我保留了两个条件的值(其中一个条件为真,而第二个条件为假),使规则为假。

相关问题