Drools 指导决策中缺少变量绑定 table
Missing varibale binding in Drools guided decision table
我正在使用 kie workbench 的 6.2 指导决策 table,但我遇到了以下情况
我只想在根据规则中的某些值检查来自 EligibilityCriteria 的促销代码时才在促销中设置促销代码。如下所示 workbench 根据决策 table
生成的代码
//from row number: 1
rule "Row 1 test"
dialect "mvel"
when
$e : EligibilityCriteria( $code : PromoCode in ( "code1", "code2" ) , $make : vehMake == "BMW" )
then
Promotion p = new Promotion();
p.setPromoId("123");
p.setPromoCode($code);
insertLogical( p );
end
如果未在引导决策的文本框中为促销代码指定值 table,则生成的代码不会创建变量 $code,并且代码失败,因为未创建 $code
//from row number: 1
rule "Row 1 test"
dialect "mvel"
when
$e : EligibilityCriteria($make : vehMake == "BMW" )
then
Promotion p = new Promotion();
p.setPromoId("123");
p.setPromoCode($code);
insertLogical( p );
end
我只是想以某种方式指出促销代码的规则字段是空的还是有一些值。
如果在提供 PromoCode 值列表的列中没有给出任何值,则您需要另一条规则,即右侧不能包含相同的语句序列。省略 RHS 操作的选择标记,以避免生成引用 $code
的语句,并提供通过访问事实获取 PromoCode 值的替代操作:
p.setPromoCode($e.getPromoCode());
请注意,您可以在任何情况下使用这种形式的代码 - 因此您可能只需要一个操作列。
我正在使用 kie workbench 的 6.2 指导决策 table,但我遇到了以下情况
我只想在根据规则中的某些值检查来自 EligibilityCriteria 的促销代码时才在促销中设置促销代码。如下所示 workbench 根据决策 table
生成的代码//from row number: 1
rule "Row 1 test"
dialect "mvel"
when
$e : EligibilityCriteria( $code : PromoCode in ( "code1", "code2" ) , $make : vehMake == "BMW" )
then
Promotion p = new Promotion();
p.setPromoId("123");
p.setPromoCode($code);
insertLogical( p );
end
如果未在引导决策的文本框中为促销代码指定值 table,则生成的代码不会创建变量 $code,并且代码失败,因为未创建 $code
//from row number: 1
rule "Row 1 test"
dialect "mvel"
when
$e : EligibilityCriteria($make : vehMake == "BMW" )
then
Promotion p = new Promotion();
p.setPromoId("123");
p.setPromoCode($code);
insertLogical( p );
end
我只是想以某种方式指出促销代码的规则字段是空的还是有一些值。
如果在提供 PromoCode 值列表的列中没有给出任何值,则您需要另一条规则,即右侧不能包含相同的语句序列。省略 RHS 操作的选择标记,以避免生成引用 $code
的语句,并提供通过访问事实获取 PromoCode 值的替代操作:
p.setPromoCode($e.getPromoCode());
请注意,您可以在任何情况下使用这种形式的代码 - 因此您可能只需要一个操作列。