[rules-users] Convert logic to DRL rules

Bill Zhang billzhang2006 at gmail.com
Mon Feb 19 00:06:53 EST 2007


So Alex, if I only want to use the old syntax that is in production,
there is no way to implement my seemingly simple logic conditioning?

Thanks for your help.

On 2/18/07, Alexander Varakin <avarakin at optonline.net> wrote:
> 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
> >
>
> _______________________________________________
> 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