在Drools中,当评估when条件时,无法访问同一议事日程组中已修改的事实是因为Drools的默认行为是在规则的每个条件之间创建一个隐式的逻辑AND关系。这意味着在同一规则中的不同条件之间是并行评估的,而不是按顺序评估的。
当一个事实在规则的某个条件中被修改后,Drools不会立即更新其他条件中对该事实的引用。这是为了避免潜在的循环依赖和无限循环的问题。因此,在同一议事日程组中已修改的事实在后续条件中是不可见的。
为了解决这个问题,可以使用Drools中的逻辑关键字"after"来指定条件的评估顺序。通过使用"after"关键字,可以确保某个条件在其他条件之后进行评估,从而可以访问到已修改的事实。
另外,还可以考虑使用Drools中的agenda-group来控制规则的执行顺序。通过将相关规则放置在同一个agenda-group中,可以确保它们按照指定的顺序进行评估。
总结起来,在Drools中评估when条件时无法访问同一议事日程组中已修改的事实是由于默认的并行评估行为所导致的。可以通过使用"after"关键字和agenda-group来控制条件的评估顺序,从而解决这个问题。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云