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

Reply via email to