我正在尝试执行Kie Workbench编写的规则,并与Kie Exceution Server集成在一起,并按照预期得到响应。但是我的烦恼是仅执行一个特定规则来定义的大规则列表。我可以实现的方法是什么?我使用了激活组,规则流组,但如果有人可以帮助我实现这一目标,那就没有运气。
我在Kie Workbench中创建了指导决策表。并以这种方式生成源
package demo.drools_examples;
//from row number: 1
rule "Row 1 Rule1"
dialect "mvel"
when
f1 : Account( accountType == "Regular" )
then
f1.setBaseAmount( 10.0 );
f1.setBaseThreshold( 10.0 );
calculateAmount(f1);
calculateThreshold(f1);
end
//from row number: 2
rule "Row 2 Rule1"
dialect "mvel"
when
f1 : Account( accountType == "Registered" )
then
f1.setBaseAmount( 5.0 );
f1.setBaseThreshold( 15.0 );
calculateAmount(f1);
calculateThreshold(f1);
end
//from row number: 3
rule "Row 3 Rule1"
dialect "mvel"
when
f1 : Account( accountType == "Saving" )
then
f1.setBaseAmount( 20.0 );
f1.setBaseThreshold( 10.0 );
calculateAmount(f1);
calculateThreshold(f1);
end
我如何定义薪水,激活小组或任何其他政策仅调用规则1,而不是致电pilleallrules(1)。请帮助我
您必须致电燃烧,但是有一个扭曲:
AgendaFilter af = new SingleRuleFilter( "Row 1 Rule1" );
int nFired = kieSession.fireAllRules( af );
您只需要写这样的东西:
public class SingleRuleFilter implements AgendaFilter {
private String name;
public SingleRuleFilter( String name ){
this.name = name;
}
public boolean accept( Activation activation ){
return activation.getRule().getName().equals( name );
}
}