]
Michael Anstis moved GUVNOR-2803 to DROOLS-1835:
------------------------------------------------
Project: Drools (was: Guvnor)
Key: DROOLS-1835 (was: GUVNOR-2803)
Workflow: GIT Pull Request workflow (was: classic default workflow)
Component/s: Guided Decision Table Editor
(was: Guided Decision Table)
Affects Version/s: 6.4.0.Final
(was: drools_6.4.0.Final)
Validation false positive w/GDT: "Conflicting rows"
---------------------------------------------------
Key: DROOLS-1835
URL:
https://issues.jboss.org/browse/DROOLS-1835
Project: Drools
Issue Type: Feature Request
Components: Guided Decision Table Editor
Affects Versions: 6.4.0.Final
Reporter: Jeff Jensen
The following false positive validation errors occurred for us with the Guided Decision
Table editor (created the rule in the GDT editor). They are close but each has one
discriminator column making the rows/rules unique.
Note that the same error occurred twice, once for rule rows 1:7 and once for rule rows
4:7.
{quote}
Conflicting rows
Affected rows:4, 7
(same message for "Affected rows:1, 7")
Conflict between two rows exists when the conditions for both rules are met with a same
set of facts, but the actions set existing fact fields to different values. The conditions
can be redundant or subsumptant.
Since the actions do different things with the same conditions, it is impossible to know
which actions end up activating last. This causes the rule set to be inconsistent. To fix
this, please either remove one row or make the conditions more strict.
{quote}
This is the conditions source for the GDT (with names changed):
{code:java}
//from row number: 1
rule "Row 1 RuleName"
dialect "mvel"
when
$f : F( r == "ABC" )
$gmi : GMI( )
$vmear : Vmear( value >= 0.8 , value < 2.0 )
$sepr : Sepr( sepr <= 1 )
//from row number: 4
rule "Row 4 RuleName"
dialect "mvel"
when
$f : F( r == "ABC" )
$gmi : GMI( )
$vmear : Vmear( value >= 0.8 , value < 2.0 )
$sepr : Sepr( sepr > 1 )
//from row number: 7
rule "Row 7 RuleName"
dialect "mvel"
when
$f : F( r == "ABC" )
$gmi : GMI( )
$vmear : Vmear( value >= 0.8 , value < 2.0 )
not (Sepr( ))
{code}