如何使用决策表检查日期是否超过90天(Drools)

时间:2019-03-18 15:41:27

标签: drools redhat jbpm redhat-brms

我正在使用从JBPM开源自动化工具包派生的Red Hat Proccess Automation Manager进行Drools规则项目。我遇到了以下情况的路障:

下面的句子是某些操作的必需条件(其中 lastPaymentDate 是java.util.Date类型)

  

lastPaymentDate大于90天

我还需要将尽可能多的条件放入决策表中(包括该条件)

但是,我无法在决策表中找到一种检查这种情况的干净方法。

目前,我最好的方法是创建一个预处理规则,该规则创建一个具有整数值的新对象...这不是理想的选择,因为它会不必要地增加项目中dataObjects的数量。

import java.util.Date;
import java.time.temporal.ChronoUnit;
rule "Process Account Details"
        salience 1
        when
            account: Account()
        then
            Case caseObj = new Case();
            caseObj.daysSinceLastPayment = (int) ChronoUnit.DAYS.between(account.lastPaymentDate.toInstant(), new Date().toInstant());
            insert(caseObj);
end

有没有一种方法可以最大限度地减少对象数量,同时让我在决策表中执行条件检查?

0 个答案:

没有答案