5

我遵循 Drools 规则,我将 map 发送到 element ,但是当它执行时我有 element 。当值应该为“Y”时,为什么我会得到空值?当我在 ACDebug.debug() 方法中放置断点并在 $map.put() 执行后检查地图时,它看起来不错,它的值有“Y”,但是在我的规则执行后我有 null?有没有人有类似的问题?

import java.util.Map;
import java.util.HashMap;
import edu.abc.ACDebug;

rule "POSTPROCESSOR 8"
    ruleflow-group "supress-processor"
    when
        $map:Map(keySet contains "STANDARD_ADDRESS:STREET_NAME")
    then
        ACDebug.debug($map, "Map before PUT: ");
        $map.put("/locationList/sourceAddress/fullStreet",new String("Y"));
        ACDebug.debug($map, "Map after PUT: ");
        $map.remove("STANDARD_ADDRESS:STREET_NAME");
end
4

1 回答 1

7

完成对地图的更改后,您需要进行更新。这让工作记忆知道您修改了地图。

添加以下行:

update( $map );
于 2010-11-16T11:02:34.937 回答