使用Drools 5.5.FINAL。我有一条规则可以检测工作内存中多个合同记录中何时只有一条ACTIVE合同记录。
/**
* There is exactly ONE Active Contract
*/
rule "Exactly one ACTIVE among multiple"
salience 870
activation-group "BRValidation"
no-loop
when
$bmsContract : BMSContract( STAT_CD == BMS_Contract_Status.ACTIVE.toString() )
not BMSContract( this != $bmsContract, STAT_CD == BMS_Contract_Status.ACTIVE.toString() )
$blueReport : BlueReport( status == null )
then
logger.info("Rule detected one ACTIVE record from among multiple contracts;" + " Rule=" + drools.getRule().getName());
modify ( $blueReport ) {
setStatus( BlueReportStatus.SUCCESSFUL.toString() ),
setReason( "Single ACTIVE status among many contracts - that's OK"),
appendRuleAudit(drools.getRule().getName());
}
end
我需要在RHS中做的是删除BMSContract对象的所有实例,除了那些具有" ACTIVE" STAT_CD。我怎么能这样做?