[rules-users] Guvnor and drools implementation - questions

Eddy Hautot eddyhautot at gmail.com
Tue Mar 1 11:07:44 EST 2011


thank you i will try for the global constant

for the halt, i see a lot of trouble on it on google, i think i will let
like this

2011/3/1 Wolfgang Laun <wolfgang.laun at gmail.com>

>
>
> 2011/3/1 ioda100 <eddyhautot at gmail.com>
>
> Thanks for your quick answer Esteban.
>>
>> 1) Ok i will have a look at DSL. In fact in my map i know all the
>> properties (about 200). It would be cool to be able to have a drop down list
>> with all these attributes as when we do it with objects for which we gave
>> Pojo to Guvnor.
>>
>>
>> 2) Yes i set the global constant i my application and put it in the
>> session. But when a rule fire, it has to send back a value "OK" for example
>> to the application. So i use the global consatnt to do that. As you say
>> guvnor don't create a working memory (needed to change the global constant),
>> i have to write by hand the lines : WorkingMemory wm =
>> drools.getWorkingMemory();
>> wm.setGlobal("resultValue", "OK"); ?
>>
>> I would not change the entire global object; I would just change a field:
>    global Result result;
>    ...
>    then
>        result.setValue( "OK ");
>
>
>
>> i use version 5.1 of drools and guvnor.
>>
>> 3) ok i will stay with this solution. yes i only need to stop after the
>> end of the rule that has successfully fired. I have tried other things like
>> workingMemory.stop() or something like this but it was not working.
>>
>>
> Calling fireUntilHalt() and calling halt() from an ActivationEventListener
> would be a technique that doesn't require any messing with the rules.
> (Except, to be on the safe side, the addition of a very low-salience rule
> acting as a sentinel if nothing else fires.)
>
> -W
>
>
>> Thank you again
>>
>>
>>
>>
>> On Tue, Mar 1, 2011 at 1:55 PM, Esteban [via Drools - Java Rules Engine]
>> <[hidden email] <http://user/SendEmail.jtp?type=node&node=2603551&i=0>>wrote:
>>
>>> Hi,
>>>
>>> 1) my facts are in fact java Maps, is there an easy way to deal with them
>>> in
>>> guvnor? it's not like in the example where facts are objects and we give
>>> guvnor the Pojo model to know what we can do with it
>>>
>>> for example i have :
>>> $m  : Map((this["attribute1_of_the_map"] == "test1"))
>>>
>>> How to deal with the map and have a prepopulated list of properties of
>>> the
>>> map? And to store it in the variable $m. Without using the "free from
>>> drl"
>>> where we have to write it by hand.
>>>
>>>  I think you could use DSL for achieve this. You could define your own
>>> DSL saying for example *There is a
>>> Test=Map((this["attribute1_of_the_map"] == "test1" *I would leave the
>>> variable binding to the editor. So when you add this particular pattern to a
>>> rule, you can bind it it you want to.
>>>
>>> 2) how to deal with global constant with guvnor?
>>>
>>> i have something like :
>>> WorkingMemory wm = drools.getWorkingMemory();
>>> wm.setGlobal("resultValue", "OK");
>>>
>>> Is it a direct way to play with global constant in Guvnor? Without using
>>> the
>>> "free from drl" where we have to write it by hand.
>>>
>>> The values of the globals are set in runtime. Guvnor doesn't create any
>>> ksession (or working memory) for rules authoring. There is no need to do
>>> that. So, you can declare your globals in Guvnor's package area  and then
>>> use them in your rules. When an application uses these rules, and creates a
>>> ksession from them, it must provide the value for these globals.
>>> By the way, which version of Drools are you using?
>>>
>>> 3) for stopping firing rules after one rule fire successfully, do you
>>> know
>>> if there is an option to do that?
>>> For now i insert a boolean in the session and the first condition in all
>>> my
>>> rules is that this boolean is there. When a rule fires successfully, i
>>> retract it. I suppose there is a bettre way to do it?
>>>
>>> I think the approach you have chosen is elegant enough. Of course that it
>>> will only prevents new activations to happen but it will not prevent current
>>> activations to be executed. For a cleaner implementation, you can make a
>>> super-rule with that condition and then make all your rules to inherit from
>>> it.
>>> There is actually a way to force the engine to stop (I don't remember it,
>>> but I'm pretty sure it is documented), but I don't know if that would be the
>>> best solution since I don't know if it has any collateral effect.
>>>
>>> Best Regards,
>>>
>>>
>>> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
>>>
>>> Esteban Aliverti
>>> - Developer @ http://www.plugtree.com
>>> - Blog @ http://ilesteban.wordpress.com
>>>
>>>
>>> On Tue, Mar 1, 2011 at 9:27 AM, ioda100 <[hidden email]<http://user/SendEmail.jtp?type=node&node=2602877&i=0>
>>> > wrote:
>>>
>>>> Hi,
>>>>
>>>> i have a few questions :
>>>>
>>>> 1) my facts are in fact java Maps, is there an easy way to deal with
>>>> them in
>>>> guvnor? it's not like in the example where facts are objects and we give
>>>> guvnor the Pojo model to know what we can do with it
>>>>
>>>> for example i have :
>>>> $m  : Map((this["attribute1_of_the_map"] == "test1"))
>>>>
>>>> How to deal with the map and have a prepopulated list of properties of
>>>> the
>>>> map? And to store it in the variable $m. Without using the "free from
>>>> drl"
>>>> where we have to write it by hand.
>>>>
>>>> 2) how to deal with global constant with guvnor?
>>>>
>>>> i have something like :
>>>> WorkingMemory wm = drools.getWorkingMemory();
>>>> wm.setGlobal("resultValue", "OK");
>>>>
>>>> Is it a direct way to play with global constant in Guvnor? Without using
>>>> the
>>>> "free from drl" where we have to write it by hand.
>>>>
>>>> 3) for stopping firing rules after one rule fire successfully, do you
>>>> know
>>>> if there is an option to do that?
>>>> For now i insert a boolean in the session and the first condition in all
>>>> my
>>>> rules is that this boolean is there. When a rule fires successfully, i
>>>> retract it. I suppose there is a bettre way to do it?
>>>>
>>>> Thanks in advance for your help
>>>>
>>>> --
>>>> View this message in context:
>>>> http://drools-java-rules-engine.46999.n3.nabble.com/Guvnor-and-drools-implementation-questions-tp2602641p2602641.html<http://drools-java-rules-engine.46999.n3.nabble.com/Guvnor-and-drools-implementation-questions-tp2602641p2602641.html?by-user=t&by-user=t>
>>>> Sent from the Drools - User mailing list archive at Nabble.com.
>>>> _______________________________________________
>>>> rules-users mailing list
>>>> [hidden email] <http://user/SendEmail.jtp?type=node&node=2602877&i=1>
>>>>
>>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>>
>>>
>>>
>>> _______________________________________________
>>> rules-users mailing list
>>> [hidden email] <http://user/SendEmail.jtp?type=node&node=2602877&i=2>
>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>
>>>
>>> ------------------------------
>>>  If you reply to this email, your message will be added to the
>>> discussion below:
>>>
>>> http://drools-java-rules-engine.46999.n3.nabble.com/Guvnor-and-drools-implementation-questions-tp2602641p2602877.html<http://drools-java-rules-engine.46999.n3.nabble.com/Guvnor-and-drools-implementation-questions-tp2602641p2602877.html?by-user=t>
>>>
>>
>>
>> ------------------------------
>> View this message in context: Re: Guvnor and drools implementation -
>> questions<http://drools-java-rules-engine.46999.n3.nabble.com/Guvnor-and-drools-implementation-questions-tp2602641p2603551.html>
>>
>> Sent from the Drools - User mailing list archive<http://drools-java-rules-engine.46999.n3.nabble.com/Drools-User-f47000.html>at Nabble.com.
>>
>> _______________________________________________
>> 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/20110301/47fc354f/attachment.html 


More information about the rules-users mailing list