[rules-users] Convert logic to DRL rules

Alexander Varakin avarakin at optonline.net
Sun Feb 18 23:17:21 EST 2007


As far as I know this syntax is new and is available in SVN only, you
will have to wait till 3.1 is released or take source from SVN and build it.

Bill Zhang wrote:
> Hi Steven,
>
> Thank you very much for your help. Really appreciate.
>
> I still got the same error, Unexpected token '|'. I did not see "|" in
> the document, only saw "||", which is supposed to be used with
> columns.
>
> Ye
>
> On 2/18/07, Steven Williams <stevenw at objectconsulting.com.au> wrote:
>> Hi Bill,
>>
>> I think it should be:
>>
>> $a : Person(age > 35 | < 25, zipCode == 23546 | == 68590)
>>
>> Edson, Mark or Michael can probably confirm or correct the above syntax.
>>
>> Make sure you are running of the latest trunk.
>>
>> cheers
>> Steve
>>
>>
>> On 2/18/07, Bill Zhang <billzhang2006 at gmail.com> wrote:
>> >
>> > I tried:
>> >
>> > $a : Person(age > 35 || age < 25, zipCode == 23546 || == 68590)
>> >
>> > Errors:
>> > org.drools.rule.InvalidRulePackage: unknown:39:30
>> Unexpected token '||'
>> > unknown:39:40 mismatched token:
>> [@246,1040:1041='<=',<47>,39:40];
>> > expecting type '('
>> > unknown:39:92 mismatched token:
>> [@258,1092:1092='<',<46>,39:92];
>> > expecting type '('
>> >
>> > I also tried
>> >
>> > $a : Person(age > 35 | age < 25, zipCode == 23546 | == 68590)
>> >
>> > Pretty much the same error.
>> >
>> > Based on the document, "||" is only valid for columns...
>> >
>> >
>> > On 2/17/07, Bill Zhang <billzhang2006 at gmail.com> wrote:
>> > > Thank you Steve. But I got syntax error using the following.
>> > >
>> > > On 2/17/07, Steven Williams <stevenw at objectconsulting.com.au> wrote:
>> > > > In trunk I think you can use connective constraints:
>> > > >
>> > > > $a : Person(age > 35 | < 25, zipCode == 23546 | == 68590)
>> > > > then
>> > > > $a.setStatus("KT");
>> > > >
>> > > >
>> > > >
>> > > >
>> > > > On 2/18/07, Bill Zhang < billzhang2006 at gmail.com> wrote:
>> > > > >
>> > > > > Hello,
>> > > > >
>> > > > > I am a new Drools user trying to convert the following simple
>> logic
>> into
>> > > > DRL:
>> > > > >
>> > > > > IF (Person.Age > 35 OR Person.Age < 25) AND (Person.ZipCode =
>> 23546
>> or
>> > > > > Person.ZipCode = 68590)
>> > > > > THEN
>> > > > > Person.Status = "KT";
>> > > > >
>> > > > > I found that it is not easy to convert the above logic into
>> ONE DRL
>> rule.
>> > > > >
>> > > > > I tried something like this
>> > > > >
>> > > > > when
>> > > > > $a: Person(age>35) or Person (age<25)
>> > > > > $b: Person(Zipcode==23456) or Person (ZipCode == 68590)
>> > > > > $c: $a and $b
>> > > > > Then
>> > > > > $c.setStatus("KT")
>> > > > >
>> > > > > But looks like I can not use
>> > > > > $c: $a and $b
>> > > > > becaue in Drools, you can only bind variable to column, not
>> to other
>> > > > varaibles.
>> > > > >
>> > > > > Please advise how to do this. I would imagine this should be
>> quite
>> > > > > simple, maybe I missed something quite obvious.
>> > > > >
>> > > > > I know that I can write custom Java method to do this, but if
>> I do
>> > > > > that, I suppose I lose the power of RETEOO pattern matching
>> (pattern
>> > > > resuing,
>> > > > > etc.). So I prefer not to do that.
>> > > > >
>> > > > > I also understand I can break the above logic into 4 rules
>> and that
>> > > > > would be quite easy, but our business user is not used to
>> think in
>> > > > > that way. Also, we have more complex logic than the above. So
>> what I
>> > > > > want is to see if there is a way to convert this
>> > > > > kind of logic in ONE DRL rule.
>> > > > >
>> > > > > Thanks in advance.
>> > > > >
>> > > > > Bill
>> > > > > _______________________________________________
>> > > > > rules-users mailing list
>> > > > > rules-users at lists.jboss.org
>> > > > >
>> https://lists.jboss.org/mailman/listinfo/rules-users
>> > > > >
>> > > >
>> > > >
>> > > >
>> > > > --
>> > > > Steven Williams
>> > > >
>> > > > Supervising Consultant
>> > > >
>> > > > Object Consulting
>> > > > Office: 8615 4500 Mob: 0439 898 668 Fax: 8615 4501
>> > > > stevenw at objectconsulting.com.au
>> > > > www.objectconsulting.com.au
>> > > >
>> > > > consulting | development | training | support
>> > > > our experience makes the difference
>> > > > _______________________________________________
>> > > > 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
>> >
>>
>>
>>
>> -- 
>> Steven Williams
>>
>> Supervising Consultant
>>
>> Object Consulting
>> Office: 8615 4500 Mob: 0439 898 668 Fax: 8615 4501
>> stevenw at objectconsulting.com.au
>> www.objectconsulting.com.au
>>
>> consulting | development | training | support
>> our experience makes the difference
>> _______________________________________________
>> 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
>




More information about the rules-users mailing list