java - Drools 规则中的映射和字符串

标签 java drools business-rules

我遵循 Drools 规则,我向其发送填充了 element 的 map ,但是当它被执行时,我有 element 。当值应该为“Y”时,为什么我得到 null?当我在 ACDebug.debug() 方法中放置断点并在 $map.put() 执行后检查 map 时,它看起来不错,它的值是“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

最佳答案

完成 map 更改后,您需要进行更新。这让工作内存知道您修改了 map 。

添加以下行:

update( $map );

关于java - Drools 规则中的映射和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4186899/

相关文章:

java - 关闭虚拟机

java - 将单个数组返回到多维数组

基于 Java 的语法检查/基于规则的工具集

java - 全局初始化的 Drools 规则测试

java - Drools 中类型不安全的对象字段访问

java - 按项目在 XML 文件中的顺序对 Java List/Map 进行排序

java - 如何在特定条件下执行java程序

java - 关于在 Scala 中调用父类(super class)方法的困惑

java - 验证业务规则

database - 业务规则应该同时在应用层和数据库层执行,还是只在两者之一执行?