这是对此线程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?