Drools 8.44.0.Final:比较 excel 决策表中两个输入对象(“事实”)的值?语法问题?

Drools 8.44.0.Final: Compare values of two input objects ('facts') in excel decision table? Syntax problem?

提问人:Bernado 提问时间:11/16/2023 最后编辑:Bernado 更新时间:11/17/2023 访问量:37

问:

我们使用 drools 作为基于 excel 决策表的规则框架。假设我们通过 kieSession 插入了两个输入对象:

kieSession.insert(car);
kieSession.insert(bike);

如何在流口水 excel 决策表中比较这些实体/事实的值/属性?我们在相应的单元格中定义它们时会很快失败。如何定义它们以查询它们,例如:

$car.getNumberOfWheels() < $bike.getNumberOfWheels() 
  1. 像这样定义它们(导入后)
$car:Car $bike:Bike

在“第 19:24 行:规则”WheelsRule“中的输入'bike'不匹配”中崩溃......

  1. 像这样定义它们
$car:Car, $bike:Bike

在规则“WheelsRule”中的“第 19:24 行输入不匹配”中崩溃......

  1. 像这样定义它们
$car:Car; $bike:Bike

在规则“WheelsRule”中的“第 19:24 行输入不匹配”中崩溃......

我会按时间添加更多的excel屏幕截图。有什么建议可以在 excel 中为流口水定义两个或多个事实吗?这可能吗?

ChatGPT 通过吐出答案来回答我的问题,但只是作为 DRL,而不是 excel。

import com.example.Car
import com.example.Bike

rule "Compare Number of Wheels"
when
    $c: Car($numberOfWheelsCar: numberOfWheels)
    $b: Bike($numberOfWheelsBike: numberOfWheels)
    eval($numberOfWheelsCar> $numberOfWheelsBike)
then
    // Your action when the condition is true
    System.out.println("NumberOfWheels from Car is greater than numberOfWheels from Bike");
end

rule "Other Rule"
when
    // Add other conditions or rules as needed
then
    // Your action for other rules
end
excel 口水

评论


答: 暂无答案