[rules-users] How to write rules in two fact's fields?

Wolfgang Laun wolfgang.laun at gmail.com
Sun Feb 5 07:21:41 EST 2012


In most programming languages the result of (e.g.) an integer comparison
   20 <= price
is a value of a different type, i.e., boolean, with values "true" or
"false". (You have heard this at some time, right?) Consequently, the
comparison of a boolean with an integer
   true < 30
depends on whether the language tolerates it, and if so,
how that result is defined.

IT IS A BUG THAT DROOLS TOLERATES (BUT DOES NOT DEFINE)
SUCH "MULTIPLE" COMPARISONS BUT DOES NOT FLAG THEM AS AN ERROR
OR IMPLEMENT THEM IN SOME WAY. (Tested with 5.3.0 Final.)

This means that you'll have to rwrite your constraints using && or ||,
as appropriate.

-W




On 05/02/2012, shanmuga <shanmugasundaram.t.v at gmail.com> wrote:
> Hi,
>    I want to know, how to write rules in two fact's fields?
>
> I used two facts, it will take AND condition or OR condition in between the
> two facts.
>
> Please check my code....
>
> package Project
> import com.sample.Person;
> import com.sample.Price;
> 	
> 	rule "rule_Name"
> 	    when
> 	        per:*Person*(50 <= age < 100, 10000 <= income < 50000, occupation
> == "Business", category == "Military", location == "Bangalore", custype ==
> "Individual")
> 	        pri:*Price*((20 <= price < 30) || price == 1)
> 	    then
> 	        System.out.println("Success");
> 	end
>
>
> The both fact values are satisfy means, what is the output?
>
> I got output, even the *Price* fact's value is wrong. (price == 100)
>
> Please slove my problem........!!!!
>
> --
> View this message in context:
> http://drools.46999.n3.nabble.com/How-to-write-rules-in-two-fact-s-fields-tp3717063p3717063.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> _______________________________________________
> 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