У меня есть список правил с той же группой повестки дня. Эти правила взаимозависимы. Ежемесячный PI правила зависит от правила годового PI, и значение годового PI также является фактом для рабочей памяти. Он работает только тогда, когда я изменяю имя группы повестки дня или снимаю блокировку при активном состоянии true (но переходит в al oop, даже если я использую no-l oop). Внутри, когда условие для ежемесячного правила PI, я проверяю, не является ли годовой PI не равным нулю, затем запускаю правило, но оно не работает, поскольку оно не получает обновленное значение для него. Пожалуйста, подскажите, что делать?
rule "Annual P&I one"
@attribute("interestRate,originalLoanAmount")
agenda-group "loaneconomics"
salience 500
lock-on-active true
when
$loanFact:LoanFact30Yr(loan.loanEcon.interestRate!=null)
then
System.out.println("::::Annual P&I Working ::::: ");
modify($loanFact){
$loanFact.getLoanRuleResult().getLoanEconomics().setAnnualPI( /*FORMULA*/ );
}
end
rule "Monthly P&I one"
@attribute("AnnualPI")
agenda-group "loaneconomics"
salience 400
lock-on-active true
when
$loanFact:LoanFact30Yr( $loanFact.getLoanRuleResult().getLoanEconomics().getAnnualPI() != null )
then
System.out.println(":::: Monthly P&I Working ::::: ");
System.out.println("Monthly Payments ::: " + $loanFact.getLoanRuleResult().getLoanEconomics().getAnnualPI()/12f);
modify($loanFact){
getLoanRuleResult().getLoanEconomics().setToorakMonthlyPI( $loanFact.getLoanRuleResult().getLoanEconomics().getAnnualPI()/12f );
}
end