如何计算Drools中工作内存中的对象类型数

时间:2017-11-18 01:36:38

标签: drools rules

这是对此线程here中的一个规则的改进。

我正在使用Drools 5.4.FINAL。我有这样的规则几乎可以工作,但不适用于所有场景:

rule not_OK_1
when
  not BMSContract( status == "ACTIVE" )
then
  // there is no ACTIVE
end

因为我可以在工作记忆中有一个或多个BMSContract规则 - 我必须优化上面的规则,以便只有在没有BMSContract(status ==“ACTIVE”)的情况下它才会触发在工作记忆中不止一个BMSContracts(无论其状态如何)。

换句话说,我需要一个额外的条件表达式,它考虑了工作记忆中BMSContracts的数量。

rule not_OK_1
when
  not BMSContract( status == "ACTIVE" )
  And more than one BMSContract object exists
then
  // Fail - no ACTIVE in the list
end

...下面的其他规则将检查单个BMSContract场景并决定:成功或失败。

如何编写一个表达式来测试工作内存中BMSContract的实例数是否大于1?

0 个答案:

没有答案