请教 修改 drools fact 问题

lovylinda 2013-07-12
现有两个drl, a.drl, b.drl
同时加载这两个 drl
为 a.drl 中每个rule设置 agenda-group "group a"
b.drl 中每个rule 设置 agenda-group "group b"
初始化设置 group a 为 focus
在a中 的一个 rule中设置  drools.getWorkMemery().getAgenda().setFocus("group b");跳转到b.drl

问题如下:
  我想 在进入b.drl之前 初始化 fact的内容,并且暂存drools.getWorkMemery().getAgenda().setFocus("group b");之前fact的内容,然后在b.drl运行完成后,把此内容赋值给fact

已使用办法(未解决):
  在session 上添加agendaEventListener然后分别在pushed, poped 上暂存,初始化fact
  然后用在poped或者pushed上加入knowlegdeRuntime.update(fact,已初始化对象)
  发现整drools包括group a 也被update了,这样并不能解决问题


lovylinda 2013-07-12
问题其实很简单 就是 怎么想rule中改变 fact,但是不实时update,让其他规则暂时不执行
lovylinda 2013-07-13
怎么都没有人呀,晕死
shenjun134 2013-07-24
可以在触发a rule的时候,新建一个fact,clean之后插入b,但是结果会有两个fact,然后自己再处理下,应该可以实现
Global site tag (gtag.js) - Google Analytics