在Drools规则中,如何使用两个不同的ArrayList对象,obj1用于规则1,obj2用于规则2?
我正在执行ksession.insert(list),然后我必须在drl文件中激活规则1,然后在drl中激活ksession.insert(list)和规则2 有人能告诉我如何做到这一点吗。我读过关于议程过滤器和FactHandle的文章,但不知道如何让它工作 下面是一些代码: ArrayList=新建ArrayList(); 列表。添加(产品1); 添加(产品2); 列表。添加(产品3) K段插入(列表)在Drools规则中,如何使用两个不同的ArrayList对象,obj1用于规则1,obj2用于规则2?,list,object,rules,drools,List,Object,Rules,Drools,我正在执行ksession.insert(list),然后我必须在drl文件中激活规则1,然后在drl中激活ksession.insert(list)和规则2 有人能告诉我如何做到这一点吗。我读过关于议程过滤器和FactHandle的文章,但不知道如何让它工作 下面是一些代码: ArrayList=新建ArrayList(); 列表。添加(产品1); 添加(产品2); 列表。添加(产品3) K段插入(列表) KSSession.fireAllRules(“drl中的消防规则1”) //删除列表
KSSession.fireAllRules(“drl中的消防规则1”) //删除列表 ArrayList list2=新的ArrayList(); 清单2.添加(str1); 列表2.添加(str2); 清单2.添加(str3) K段插入(列表2);
KSSession.fireAllRules(“drl中的消防规则2”) 您不能直接控制触发哪些规则-规则上的约束决定了这一点。过滤器只能在您停止触发规则时起作用 我认为有一个更好的解决方法…您可以控制模式匹配 这里有一个简单快捷的方法
arrayList1.add("Rule 1");//if you can afford this without generics
arrayList1.add(...);//everything else you want to add
arrayList2.add("Rule 2");
arrayList2.add(..);//rest...
..
ksession.insert(..) ;//insert everything one by one
。。
在您的drl和内部规则1中
…当您希望规则1与arraylist1一起使用时,请先在lhs中进行此匹配
$al:ArrayList(包含“规则1”)
就这些