Thank you Edson.
Doe sthe new syntax support something like this:
$a : Person(
(age > 35 | < 25, zipCode == 23546 | == 68590, LastOrderPrice
300 | TotalOrderNumber > 2 ) | (some other logic)
)
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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 < [EMAIL PROTECTED]> 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 < [EMAIL PROTECTED]>
>> 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 <[EMAIL PROTECTED]> 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:
>> > > >> [EMAIL PROTECTED],1040:1041='<=',<47>,39:40];
>> > > >> > expecting type '('
>> > > >> > unknown:39:92 mismatched token:
>> > > >> [EMAIL PROTECTED],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 <[EMAIL PROTECTED]> wrote:
>> > > >> > > Thank you Steve. But I got syntax error using the following.
>> > > >> > >
>> > > >> > > On 2/17/07, Steven Williams <[EMAIL PROTECTED]>
>> 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 < [EMAIL PROTECTED]> 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
>> > > >> > > > > [email protected]
>> > > >> > > > >
>> > > >> https://lists.jboss.org/mailman/listinfo/rules-users
>> > > >> > > > >
>> > > >> > > >
>> > > >> > > >
>> > > >> > > >
>> > > >> > > > --
>> > > >> > > > Steven Williams
>> > > >> > > >
>> > > >> > > > Supervising Consultant
>> > > >> > > >
>> > > >> > > > Object Consulting
>> > > >> > > > Office: 8615 4500 Mob: 0439 898 668 Fax: 8615 4501
>> > > >> > > > [EMAIL PROTECTED]
>> > > >> > > > www.objectconsulting.com.au
>> > > >> > > >
>> > > >> > > > consulting | development | training | support
>> > > >> > > > our experience makes the difference
>> > > >> > > >
>> _______________________________________________
>> > > >> > > > rules-users mailing list
>> > > >> > > > [email protected]
>> > > >> > > >
>> https://lists.jboss.org/mailman/listinfo/rules-users
>> > > >> > > >
>> > > >> > > >
>> > > >> > >
>> > > >> > _______________________________________________
>> > > >> > rules-users mailing list
>> > > >> > [email protected]
>> > > >> >
>> https://lists.jboss.org/mailman/listinfo/rules-users
>> > > >> >
>> > > >>
>> > > >>
>> > > >>
>> > > >> --
>> > > >> Steven Williams
>> > > >>
>> > > >> Supervising Consultant
>> > > >>
>> > > >> Object Consulting
>> > > >> Office: 8615 4500 Mob: 0439 898 668 Fax: 8615 4501
>> > > >> [EMAIL PROTECTED]
>> > > >> www.objectconsulting.com.au
>> > > >>
>> > > >> consulting | development | training | support
>> > > >> our experience makes the difference
>> > > >> _______________________________________________
>> > > >> rules-users mailing list
>> > > >> [email protected]
>> > > >> https://lists.jboss.org/mailman/listinfo/rules-users
>> > > >>
>> > > >>
>> > > > _______________________________________________
>> > > > rules-users mailing list
>> > > > [email protected]
>> > > > https://lists.jboss.org/mailman/listinfo/rules-users
>> > > >
>> > >
>> > > _______________________________________________
>> > > rules-users mailing list
>> > > [email protected]
>> > > https://lists.jboss.org/mailman/listinfo/rules-users
>> > >
>> > _______________________________________________
>> > rules-users mailing list
>> > [email protected]
>> > https://lists.jboss.org/mailman/listinfo/rules-users
>> >
>>
>>
>>
>> --
>> Steven Williams
>>
>> Supervising Consultant
>>
>> Object Consulting
>> Office: 8615 4500 Mob: 0439 898 668 Fax: 8615 4501
>> [EMAIL PROTECTED]
>> www.objectconsulting.com.au
>>
>> consulting | development | training | support
>> our experience makes the difference
>> _______________________________________________
>> rules-users mailing list
>> [email protected]
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
> _______________________________________________
> rules-users mailing list
> [email protected]
> 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
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users