我们遇到如果规则失败,我们需要显示哪些条件失败。为此,我需要显示特定规则的LHS。我们怎样才能在drools6.5中做到这一点。我在jbpm6.5中使用它。请帮忙。
import java.lang.Number;
rule "parent"
@author(rupesh)
dialect "mvel"
ruleflow-group "grp"
when
obj : Player( totalWinnings >= 10.0 )
then
System.out.println(drools.getRule().getMetaData());
System.out.println(drools.getRule().getMetaAttributes());
System.out.println(drools.getRule());
end
我无法在sysout中获得LHS。
答案 0 :(得分:0)
我假设您希望在未激活规则时查看LHS值,以了解其发生的原因。
为此,请创建如下函数:
function boolean debug(double x) {
System.out.println("lhs_debug(): "+x);
return true;
}
然后修改规则以使用它,如下所示:
rule "parent"
when
obj : Player( debug(totalWinnings), totalWinnings >= 10.0 )
then
System.out.println("activated: "+obj.totalWinnings);
//do something
end
这将显示所有激活规则的尝试,并在未激活时帮助您进行调试。
请注意,它将非常冗长且耗时,因此应在调试后将其删除。