Thank you Edson.
Doe sthe new syntax support something like this:
$a : Person(
(age > 35 | < 25, zipCode == 23546 | == 68590, LastOrderPrice
)
then
$a.setStaus("KT")
If I can put all complex logic in the condition part, that would be great.
Our business logic is quite complex and the business partners do not
want to break them down because they have a lot of these rules.
Thanks,
Ye
On 2/19/07, Edson Tirelli <tirelli(a)post.com> wrote:
Bill,
The way of doing that is using connective constraints as explained by
Steven previously:
$a : Person(age > 35 | < 25, zipCode == 23546 | == 68590)
This is a new feature that only works in 3.1M1 and later versions.
[]s
Edson
Bill Zhang wrote:
> Hi Steven,
>
> Yes I thought of that but our business user says this is unacceptable
> unless I can write a parser to automatically generate all these
> combinations.
>
> The example I use is quite simple. Our business user have quite
> complex logic expressions (imagin my example plus a lot of parenthesis
> to build up multiple level logic) already built using Pascal like
> language and it is not easy to do.
>
> Thanks,
>
> Ye
>
> On 2/19/07, Steven Williams <stevenw(a)objectconsulting.com.au> wrote:
>
>> Hi Bill,
>>
>> To implement your rules in 3.0.5 you would need to implement a rule for
>> each combination of age and zipCode.
>>
>> $a : Person(age > 35 zipCode == 23546)
>> then
>> $a.setStatus("KT");
>>
>> $a : Person(age < 25, zipCode == 23546 )
>> then
>> $a.setStatus("KT");
>>
>> $a : Person(age > 35, zipCode == 68590)
>> then
>> $a.setStatus("KT");
>>
>> etc..
>>
>> Steve
>>
>>
>> On 2/19/07, Bill Zhang <billzhang2006(a)gmail.com> wrote:
>> > 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(a)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(a)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(a)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(a)gmail.com>
wrote:
>> > > >> > > Thank you Steve. But I got syntax error using the
following.
>> > > >> > >
>> > > >> > > On 2/17/07, Steven Williams
<stevenw(a)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(a)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(a)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(a)objectconsulting.com.au
>> > > >> > > >
www.objectconsulting.com.au
>> > > >> > > >
>> > > >> > > > consulting | development | training | support
>> > > >> > > > our experience makes the difference
>> > > >> > > >
>> _______________________________________________
>> > > >> > > > 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
>> > > >> >
>> > > >>
>> > > >>
>> > > >>
>> > > >> --
>> > > >> Steven Williams
>> > > >>
>> > > >> Supervising Consultant
>> > > >>
>> > > >> Object Consulting
>> > > >> Office: 8615 4500 Mob: 0439 898 668 Fax: 8615 4501
>> > > >> stevenw(a)objectconsulting.com.au
>> > > >>
www.objectconsulting.com.au
>> > > >>
>> > > >> consulting | development | training | support
>> > > >> our experience makes the difference
>> > > >> _______________________________________________
>> > > >> 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
>> > >
>> > _______________________________________________
>> > rules-users mailing list
>> > rules-users(a)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(a)objectconsulting.com.au
>>
www.objectconsulting.com.au
>>
>> consulting | development | training | support
>> our experience makes the difference
>> _______________________________________________
>> 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
>
--
Edson Tirelli
Software Engineer - JBoss Rules Core Developer
Office: +55 11 3124-6000
Mobile: +55 11 9218-4151
JBoss, a division of Red Hat @
www.jboss.com
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users