Как вы проверяете, превышает ли дата более 90 дней с помощью таблиц решений (Drools) - PullRequest
0 голосов
/ 18 марта 2019

Я работаю над проектом правил Drools, используя Red Hat Proccess Automation Manager, полученный из набора инструментов автоматизации с открытым исходным кодом JBPM. Я столкнулся с дорожным блоком по следующему сценарию:

Приведенное ниже предложение является обязательным условием для определенного действия (где 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

Существует ли подход, который минимизирует количество объектов, позволяя мне выполнить условную проверку в таблице решений?

...