Amazing!
thanks a lot Wolfgang!
Kind regards
On Wed, Mar 12, 2014 at 10:27 AM, Wolfgang Laun <wolfgang.laun(a)gmail.com>wrote:
You can create a rule with a timer to update Current with the
required
frequency.
rule "set current"
timer (int: 1s 1s)
no-loop
when
$c: Current()
then
modify( $c ){ setXYZ(whatever) }
end
On 11/03/2014, Ioannis Christodoulou <io.christod(a)gmail.com> wrote:
> Thanks a lot for the prompt reply and the detailed example!
> It took me some time but I managed to convert it to a working xls
decision
> table.
>
> Now, I wanted to figure out how to automatically update the Current
object
> regularly, in order to re-calculate the rules over time.
> My application is a java ee one. Would creating a @schedule on a
singleton
> method be a good solution, or is there another better advice for it?
>
> Thanks again!
>
> Ευχαριστώ πολύ,
> Ιωάννης Χριστοδούλου
>
>
> On Tue, Mar 11, 2014 at 8:50 PM, Wolfgang Laun
> <wolfgang.laun(a)gmail.com>wrote:
>
>> As you have Level with a field date, you can access that point in time
in
>> milliseconds, using getTimeInMillis(). For the current time, you might
>> insert an object of class Current with a member now of class Calendar.
>>
>> rule closest
>> when
>> Current( $now: now )
>> $level: Level( $value == 2, $date: date )
>> not $x: Level( Math.abs( $x.getDate().getTimeInMillis() -
>> $now.getTimeInMillis() ) < Math.abs( $date.getTimeInMillis() -
>> $now.getTimeInMillis() ) )
>> then
>> // $level is the Level fact closest to Current with a level of 2
>> end
>>
>> Untested. If the long expression gives you trouble, try enclosing it in
>> eval(...).
>> -W
>>
>>
>> On 11 March 2014 18:14, JChrist <io.christod(a)gmail.com> wrote:
>>
>>> Hello everyone,
>>> I was messing with drools v6.0.1.Final the past week and I have not
been
>>> able to completely understand how to integrate the rule engine to my
>>> specification.
>>>
>>> For the needs of my project, I want to regularly insert some data in
the
>>> engine, similar to the following:
>>> class Level { double value;Calendar date; }
>>> this class contains some values at specific time points (both in the
>>> past
>>> and in the future).
>>>
>>> I would like to be able create a decision table based on the
"current"
>>> time
>>> (plus or minus a variable offset) and the value of the closest Level to
>>> that
>>> time point.
>>>
>>> For example, assuming it is '2014-11-03 19:10:00' and the level
objects
>>> in
>>> the session currently are:
>>> '1.0 2014-11-03 18:00:00' and '2.0 2014-11-03 19:00:00',
>>>
>>> I would want a rule to say that if current level value is 2.0 then do
>>> some
>>> stuff and it would make a match.
>>>
>>> I would really appreciate any help on how to overcome this issue, as
>>> well
>>> as
>>> any good examples/tutorials regarding this.
>>>
>>> Kind regards.
>>>
>>>
>>>
>>>
>>> --
>>> View this message in context:
>>>
http://drools.46999.n3.nabble.com/Temporal-rules-in-decision-table-tp4028...
>>> Sent from the Drools: User forum mailing list archive at
Nabble.com.
>>> _______________________________________________
>>> 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
>>
>
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users