以drools 6.5获取LHS以显示在任务表单中

时间:2017-06-05 12:06:30

标签: drools jbpm

我们遇到如果规则失败,我们需要显示哪些条件失败。为此,我需要显示特定规则的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。

1 个答案:

答案 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

这将显示所有激活规则的尝试,并在未激活时帮助您进行调试。

请注意,它将非常冗长且耗时,因此应在调试后将其删除。