I'm really not on form today the real data does have negatives and thus my example
should have been as follows
Account :
accountBalanceInPence : 70000
transactions :
- transactionDate : 2009/07/10
amountInPence : 50000
transactionCode : charge
- transactionDate : 2009/07/12
amountInPence : -45000
transactionCode : Type 1
and
Account :
accountBalanceInPence : 70000
transactions :
- transactionDate : 2009/07/10
amountInPence : 50000
transactionCode : charge
- transactionDate : 2009/07/12
amountInPence : -45000
transactionCode : Type 1
- transactionDate : 2009/07/13
amountInPence : -5000
transactionCode : Type 2
Date: Tue, 14 Jul 2009 17:05:21 +0200
Subject: Re: [rules-users] Comparing multiple accumulations
From: wolfgang.laun(a)gmail.com
To: rules-users(a)lists.jboss.org
The second accumulate has "amountInPence < 0" but the values in your
data are all positive. Therefore,...
-W
2009/7/14 Richard Sherman <rsherman315(a)hotmail.com>:
> Thanks Wolfgang,
>
> Here's the extra information as requested.
> Firstly the When creating the email I was removing all references to rent
> and missed one hence RentTransaction should read Transaction. I've also
> noticed that the sum($value) in the third accumulation should read
> sum(-$value).
>
> Below is a typical set of Transactions that should cause a message to occur.
>
> Account :
> accountBalanceInPence : 70000
> transactions :
> - transactionDate : 2009/07/10
> amountInPence : 50000
> transactionCode : charge
> - transactionDate : 2009/07/12
> amountInPence : 45000
> transactionCode : Type 1
>
> Below is a similar set of Transactions that shouldn't cause a message to
> occur.
>
> Account :
> accountBalanceInPence : 70000
> transactions :
> - transactionDate : 2009/07/10
> amountInPence : 50000
> transactionCode : charge
> - transactionDate : 2009/07/12
> amountInPence : 45000
> transactionCode : Type 1
> - transactionDate : 2009/07/13
> amountInPence : 5000
> transactionCode : Type 2
>
> Thanks
> Richard
>
>
>>From: wolfgang.laun(a)gmail.com
>>To: rules-users(a)lists.jboss.org
>>Date: Tue, 14 Jul 2009 12:43:40 +0200
>>Subject: Re: [rules-users] Comparing multiple accumulations
>>
>>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
> ________________________________
> View your Twitter and Flickr updates from one place – Learn 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
_________________________________________________________________
MSN straight to your mobile - news, entertainment, videos and more.