drools规则中的输入不匹配
我正在尝试运行我的规则集,但它显示: 错误[102] 我添加了它缺失的地方,之后错误表示它位于[添加的in$transfer1块]drools规则中的输入不匹配,drools,rules,mismatch,Drools,Rules,Mismatch,我正在尝试运行我的规则集,但它显示: 错误[102] 我添加了它缺失的地方,之后错误表示它位于[添加的in$transfer1块] rule "balanceTransfers" when $bus1 : CloudBus(); $bus2 : CloudBus(id > $bus1.id); $transfers1: Number() from accumulate( CloudRoute(bus == $bus1, count(1))
rule "balanceTransfers"
when
$bus1 : CloudBus();
$bus2 : CloudBus(id > $bus1.id);
$transfers1: Number() from accumulate(
CloudRoute(bus == $bus1, count(1))
$transfers2: Number() from accumulate( //<-line 51
CloudRoute(bus == $bus2, count(1)
then
scoreHolder.addSoftConstraintMatch(kcontext, -Math.abs($transfers1 -
$transfers2));
end
线程thread-114 java.lang.IllegalStateException中的异常:
分数DRL中存在错误:错误消息:消息[id=1,
kieBase=defaultKieBase,level=ERROR,path=…,line=51,column=0
text=[ERR 102]第51行:规则中输入“$transfers2”不匹配
balanceTransfers]消息[id=2,kieBase=defaultKieBase,
级别=错误,路径=…,行=0,列=0文本=分析器返回空值
包装]
累积语法是错误的。它应该是累积模式,fc。您没有关闭模式的括号:
rule "balanceTransfers"
when
$bus1 : CloudBus();
$bus2 : CloudBus(id > $bus1.id);
$transfers1: Number() from accumulate(
CloudRoute(bus == $bus1),
count(1)
)
$transfers2: Number() from accumulate(
CloudRoute(bus == $bus2),
count(1)
)
then
scoreHolder.addSoftConstraintMatch(kcontext, -Math.abs($transfers1 -
$transfers2));
end
希望有帮助