Also, please note that the repeated use of "from $acc.transactions" will
cripple the performance of your rules. The transactions should be asserted
into the working memory to avoid the problem.
[]s
Edson
2009/7/14 Wolfgang Laun <wolfgang.laun(a)gmail.com>
You'll have to provide one full set of $acc.transaction values
(indicating class and relevant field values) where you think the rule
should fire, but doesnt, for people to be able to check what's going
on.
Also, it is necessary to know how the types of Account.transactions
(List<???>), Transaction and RentTransaction are related.
-W
On 7/14/09, Richard Sherman <rsherman315(a)hotmail.com> wrote:
> First I'm new to drools and secondly where I'm working we're using
version
> 4.0.7.
>
> I have a list of accounts and each account contains a list of
transactions.
> I wish to accumulate charge transactions and compare them to an
accumulation
> of payment transactions for a given time period (such as the last month).
> And it gets slightly more awkward in that if a payment transaction is of
a
> certain type it needs to be converted from a 4 weekly figure to a monthly
> figure ( using / 4 / 7 * 365 / 12). I've tried to use structures as
follows
> but they are causing the then part of the rule never to fire.
>
> rule "Account in arrears"
> salience 10
> no-loop
> when
> $acc : Account( // balance between £500 and £1000
> accountBalanceInPence >= 50000 &&
> accountBalanceInPence <= 100000
> )
>
> $s : MessageInfo( accountNumber == $acc.accountNumber )
>
> Number($charges : intValue) from
> accumulate(
> (Transaction(
> transactionDate > oneMonthAgo &&
> amountInPence > 0 &&
> $value : amountInPence)
> from $acc.transactions),
> sum($value)
> )
>
> Number($adjustment : intValue) from
> accumulate(
> (Transaction(
> transactionDate > oneMonthAgo &&
> amountInPence < 0 &&
> transactionCode == "Type 1" &&
> $value : amountInPence)
> from $acc.transactions),
> sum(($value / 4 / 7 * 365 / 12) - $value)
> )
>
>
> Number( intValue > ($charges + $adjustment)) from
> accumulate(
> (RentTransaction
> (transactionDate > oneMonthAgo
> $value : amountInPence)
> from $acc.transactions),
> sum($value)
> )
>
> then
> $s.setMessage( "Account in arrears" );
> update($s); // flag update
> end
>
> Thanks
> Richard
>
> ________________________________
> Beyond Hotmail - see what else you can do with Windows Live. Find out
more.
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
Edson Tirelli
JBoss Drools Core Development
JBoss by Red Hat @
www.jboss.com