我想删除工作内存中的对象,除了特定的一个

时间:2017-11-21 14:48:21

标签: drools rules

使用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。我怎么能这样做?

0 个答案:

没有答案