You have, say,
Person( "Joe" )
Person( "Jim" )
This happens:
person1 <- match any Person: (1) match Joe, and (2) match Jim
person2 <- match any Person name2!=name1: when (1) then match Jim,
when (2) then match Joe
To avoid this, you can
(a) retract person2 in rule "FirstNameDifference"
(b) add a constraint asserting an ordering between Persons, e.g.,
some unique number
(c) use compareTo with names, test for -1
(d) post-process dataDifferenceVO.getDataDiffArray()
-W
On 29/03/2012, arup <arup4u2007(a)gmail.com> wrote:
i have one drl like below:
rule "FirstNameDifference"
no-loop true
lock-on-active true
when
person1: Person( $firstName1: firstName )
person2: Person( firstName != $firstName1 )
then
dataDifferenceVO.getDataDiffArray().add("Person/FirstName");
end
i'm passing a list of objects in which i have 2 person type objects. my aim
is to check if the firstnames are same or different. if its different i need
to add one String to the DataDiffArray that is declared inside
DataDifferenceVO class.
but as i pass 2 person objects in the WM the rule is getting executed twice.
i.e, the string "Person/FirstName" is getting added twice in the array list.
why is this happening?... the rule should compare 2 firstnames and return
one String...is not that?... what step should i take to achive what i
want....
Thanks a lot i advance... :) :) :)
--
View this message in context:
http://drools.46999.n3.nabble.com/drl-execution-problem-tp3866929p3866929...
Sent from the Drools: User forum mailing list archive at
Nabble.com.
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users