[rules-users] Help -- Conditional Logic in DRL

new2drools rkbeach at gmail.com
Tue Jun 16 10:22:18 EDT 2009



Greg,

Thanks much for your suggestion...I think this will help!!

Should have thought of this approach, before posting...

Thanks again!

Greg Barton wrote:
> 
> 
> Note to drools devs: I didn't put the original poster up to this. :)
> 
> Globals should be considered immutable, so shouldn't be used in this way.
> You could do it with an object asserted in working memory, though.
> 
> Just as good, though, you can use this kind of pattern to replicate else
> logic:
> 
> rule "EverythingMatches"
> when
>   Condition0
>   Condition1
>   Condition2
> then
>   ...
> end
> 
> rule "ElseAtCondition2"
> when
>   Condition0
>   Condition1
>   !Condition2
> then
>   ...
> end
> 
> rule "ElseAtCondition1"
> when
>   Condition0
>   !Condition1
> then
>   ...
> end
> 
> rule "ElseAtCondition0"
> when
>   !Condition0
> then
>   ...
> end
> 
> --- On Mon, 6/15/09, Scott Reed <sreed at avacoda.com> wrote:
> 
>> From: Scott Reed <sreed at avacoda.com>
>> Subject: Re: [rules-users] Help -- Conditional Logic in DRL
>> To: "Rules Users List" <rules-users at lists.jboss.org>
>> Date: Monday, June 15, 2009, 10:19 PM
>> Looks like 5 rules with a global flag
>> might work:
>> 
>> global boolean flag = false;
>> 
>> rule "name1"
>> when
>>   (condition1 == true )
>>   (flag == false)
>> then
>>   consequence1();
>>   flag = true;
>> end
>> 
>> ...
>> 
>> rule "name5"
>> when
>>   (condition5 == true )
>>   (flag == false)
>> then
>>   consequence5();
>>   flag = true;
>> end
>> 
>> Does that work for you?
>> 
>> Vishy [6/15/2009 11:06 PM] wrote:
>> > Hi All,
>> >
>> > I am new to drools...and am trying to figure out as to
>> how I can
>> > represent the following logic in a DRL file.
>> >
>> > if (condition1) {
>> >
>> >   if (condition2) {
>> >
>> >   } else if (condition3) {
>> >
>> >   } else if (condition 4) {
>> >
>> >   } else if (condition 5) {
>> >
>> >   }
>> >
>> > }
>> >
>> > In DSL, a typical rule is represented as follows:
>> >
>> > rule "name"
>> >
>> > when
>> >   condition is true
>> > then
>> >   consequence
>> >
>> > end
>> >
>> > How can I represent the above mentioned if - else
>> logic in DSL? Or is
>> > it not possible?
>> >
>> > If it is not, can you please suggest any alternative?
>> >
>> > Thanks much!!
>> > _______________________________________________
>> > 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
>> 
> 
> 
>       
> 
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
> 
> 

-- 
View this message in context: http://www.nabble.com/Help----Conditional-Logic-in-DRL-tp24046912p24055432.html
Sent from the drools - user mailing list archive at Nabble.com.





More information about the rules-users mailing list