在 drl 文件中使用 declare 语句
Using declare statement in drl files
我在 DRL 文件中声明一个 SensorMode 对象
declare SensorMode
modeOffset: Integer
end
我已经使用
将值设置为 modeOffset
FactType 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
能不能给个建议
两种选择:
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 版本。
我在 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
能不能给个建议
两种选择:
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 版本。