Drools规则中的地图和字符串

aze*_*pdx 5 java drools business-rules

我遵循Drools规则向我发送填充了元素的地图,但是当它被执行时我有元素.当值为"Y"时,为什么我得到null?当我在ACDebug.debug()方法中放置断点并在$ map.put()执行后检查映射它看起来不错,它的值为"Y",但在我的规则执行后我有空?有没有人有类似的问题?

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
Run Code Online (Sandbox Code Playgroud)

Ton*_*ola 7

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

添加以下行:

update( $map );
Run Code Online (Sandbox Code Playgroud)