[rules-users] Working with dates in rules

David Siefert siefert.david.mailinglist at gmail.com
Thu Jan 29 07:53:12 EST 2009


Hey, that was quite clever.  Where can I find more about Day()?  I did some
research about DateFactory which I can see how dates get parsed according to
the documentation, as well as compared with the conditional operators (<, >,
<=, >=, etc).

Thanks,
David

On Thu, Jan 29, 2009 at 5:57 AM, Anstis, Michael (M.) <manstis1 at ford.com>wrote:

>  Hi David,
>
> Sorry it was of little help.
>
> A rule of thumb is to stay away from "eval" as it kills performance (the
> patterns can't be indexed).
>
> I'm not sure if Drools can handle Date variables (the docs state it handles
> Data literals formatted as "dd-mmm-yyyy" so Cheese( date == "27-Oct-2008")
> works).
>
> I guess you could look at something like this (gees, this is going to show
> how "green" I am with Drools now):-
>
> rule "yuck"
>     when
>         DateFactory($today : today )
>         $c : CreditCard( $expires : expirationDate )
>         ArrayList( size >= 0 ) from collect( Day( date >= $today, date <=
> $expires ))
>     then
>         //Difference between "today" and "expiry date" is more than zero
> days
> end
>
> This does require the insertion of (possibly) huge amounts of Day facts.
> Yuck. There must be a better way (in fact your eval looks soooo much
> cleaner). I'm just throwing out ideas.
>
> Good luck with your adventures with Drools.
>
> Mike
>
>  ------------------------------
>  *From:* rules-users-bounces at lists.jboss.org [mailto:
> rules-users-bounces at lists.jboss.org] *On Behalf Of *David Siefert
> *Sent:* 29 January 2009 11:31
> *To:* Rules Users List
> *Subject:* Re: [rules-users] Working with dates in rules
>
>   Not sure--Drools 5 temporal reasoning looks like it would be the
> answer.  Only problem is that I need a solution now, so I am stuck with
> Drools 4.
>
> This did give me some ideas though.  I created myself a class called
> TemporalReasoner.  This has a few methods, namely to roll a date (so I can
> tell it x amount of time from now), and then compare it to another date.
>
> So in my rule, lets say I have a fact CreditCard with property
> expiration:Date (speaking uml-ishly for "a property named 'expiration' of
> type Date"):
>
> rule "Fires when expiration less than today"
>   when
>     $c: CreditCard($expires : expirationDate)
>     eval(new TemporalReasoner(Calendar.getInstance()).lessThan($expires))
>   then
>     // do something for when credit card is still valid
> end
>
> Now, I'm still generally a noob with BRs, so I'm not sure how this will
> affect performance.  Any advice?
>
> Thanks,
> David
>
> On Thu, Jan 29, 2009 at 3:50 AM, Anstis, Michael (M.) <manstis1 at ford.com>wrote:
>
>>  Hi,
>>
>> I wonder whether Drools 5 "Complex Event Processing Support (Temporal
>> Reasoning)" might be what you're looking for?
>>
>> http://blog.athico.com/2008/07/drools-50-m1-new-and-noteworthy.html
>>
>> With kind regards,
>>
>> Mike
>>
>>  ------------------------------
>> *From:* rules-users-bounces at lists.jboss.org [mailto:
>> rules-users-bounces at lists.jboss.org] *On Behalf Of *David Siefert
>> *Sent:* 29 January 2009 09:40
>> *To:* Rules Users List
>> *Subject:* [rules-users] Working with dates in rules
>>
>>   Hi-
>>
>> I'm wondering how it would be possible to compare a part of a date in the
>> lhs condition of a rule in a Drool.  In other words, I need to compare a
>> date to see if it is *x* days from the current date, *n* hours from
>> current time, etc.  Would anyone be kind enough to provide an example?  I'm
>> thinking I may have to implement something of my own to offer that
>> functionality?
>>
>> Big thanks,
>> David
>>
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20090129/af3935f0/attachment.html 


More information about the rules-users mailing list