我在DRL文件中声明了一个SensorMode对象
declare SensorMode
modeOffset: Integer
end
我已使用
将值设置为modeOffsetFactType factType=kbase.getFactType("com.yob.pestway.
valueobjects", "SensorMode");
Object nc = factType.newInstance();
factType.set(nc, "modeOffset",sensorDataVO.getModeOffset());
我需要在以下规则中使用modeOffset,它给出了一个错误,说$ mode.modeOffset不可见。
rule "Difference in offsets"
dialect "java"
no-loop true
when
$mode:SensorMode();
$snrData : SensorDataVO(getWeightOffset().size()>0,
$initOffset:getInitialOffset());
then
System.out.println("---modeOffset---"+$mode.modeOffset);
update($snrData);
end
你能否建议
答案 0 :(得分:1)
两种选择:
rule "Difference in offsets"
dialect "java"
no-loop true
when
$mode:SensorMode( $mo: modeOffset );
//...
then
System.out.println("---modeOffset---"+ $mo);
//...
end
或者:
rule "Difference in offsets"
dialect "java"
no-loop true
when
$mode:SensorMode();
//...
then
System.out.println("---modeOffset---"+ $mode.getModeOffset() );
//...
end
dialect "mvel"
可能是第三种选择,但这可能取决于您使用的Drools版本。