这应该很简单,但我还是迷路了。这里有一个非常相似的帖子:How to share data between Drools rules in a map? 但它不能解决我的问题:
我有一套规则,在启动它们之前,我插入一个 Map<String, Object> 作为事实。在这些规则中,我使用地图来写一些结论,例如:
when
$map : Map();
something ocurrs;
then
$map.put("conclusion1", 100);
现在我想在其他规则中使用这些中间结论,例如:
when
$map : Map(this["conclusion1"] > 50)
then
do something cool;
问题是当我执行规则时,就像第二个规则看不到第一个规则的结论,并且它不会触发。我尝试设置一个断点并分析工作内存,事实上,在触发第一条规则后,Map 将包含结论 1, 100。我还尝试在结论中进行更新($map),但这会触发无限循环。
知道为什么这不起作用,或者我的问题有任何替代解决方案吗?
谢谢 !