Hi,
Thanks for the response.
That doesn't seem to be right - this is what is produced from the Compiler.
// rule values at A9, header at A3
rule "Test rule_9"
when
$c : ConditionObject(somefield)
$a : ActionObject(this != null == "X")
EmbeddedObject(myField == AnEnum.SomeOtherValue) from
$c.embedded
then
ActionObject.someMethod2(50);
$a.someMethod("someOtherValue")
$a.someMethod3(B)
end
Is there a way to have a "when" rule produced where the data table row, for
that CONDITION is empty ?
The hack version I can work out is
> CONDITION
> $a : ActionObject
> $param != null
> this
> this
Ramon Buckland
[email protected]
On 22 May 2013, at 10:33, Michael Anstis <[email protected]> wrote:
> Add an additional CONDITION for ActionObject.
>
> You'll need to probably add a constraint for "this != null" and put an X in
> the rows; e.g.
>
> CONDITION
> $a : ActionObject
> this != null
> X
> X
>
>
>
>
> On 22 May 2013 09:55, Ramon Buckland <[email protected]> wrote:
> Hi.
>
> I am working on Drools 5.5.0.Final and have a question regarding XLS and a
> Decision Table structure,
>
> I have a ConditionObject and an ActionObject and wanted to know or see an
> example for XLS that produces a "does exist" for the ActionObject
> in the when.
>
> I can simply write the rule in a DRL, but translating how to make the XLS
> compiler create the same is proving challenging.
>
> An example:
>
> I want to produce a set of rules like below
>
> rule "Test rule_11"
> when
> $c : ConditionObject( somefield )
> EmbeddedObject(myField == AnEnum.SomeValue) from $c.embedded
> $a : ActionObject( )
> then
> $a.someMethod("value")
> $a.someMethod2(10)
> $a.someMethod3("A")
> end
>
> rule "Test rule_12"
> // some other AnEnum checks.
>
> What I can't work out is how I get the test of "existence" of the Action
> Object into the "when" for the rule, so that I can "use" the Object in the
> ACTION.
> In addition, is there a away that I can avoid needing a whole column just for
> "existence of an object with a field.. collect as a variable $c :
> (ConditionObject( somefield )" ?
>
> CONDITION CONDITION
> ACTION ACTION
> ACTION
> $c : ConditionObject EmbeddedObject() from $c.embedded
> $param myField == AnEnum.$param
> $a.someMethod("$param") $a.someMethod2($param) $a.someMethod3($param)
> "Description" "Description"
> "Description" "Description"
> "Description"
> somefield SomeValue
> value 10
> A
> somefield SomeOtherValue
> someOtherValue 50
> B
>
> This is the XLS of the above.
>
> https://www.dropbox.com/s/lw3zb5hwtjdbpcm/sample_rules.xls?v=1scns
>
> When this sheet is compiled, I get the following: How do I setup a
> "condition" for ActionObject to get in the when ?
>
> package packageName;
> //generated from Decision Table
> // rule values at A8, header at A3
> rule "Test rule_8"
> when
> $c : ConditionObject(somefield)
> EmbeddedObject(myField == AnEnum.SomeValue) from $c.embedded
> then
> $a.someMethod("value")
> $a.someMethod2(10)
> $a.someMethod3(A)
> end
>
> // rule values at A9, header at A3
> rule "Test rule_9"
> when
> $c : ConditionObject(somefield)
> EmbeddedObject(myField == AnEnum.SomeOtherValue) from
> $c.embedded
> then
> $a.someMethod("someOtherValue")
> $a.someMethod2(50)
> $a.someMethod3(B)
> end
>
>
>
>
> Ramon Buckland
> [email protected]
>
>
>
>
> _______________________________________________
> 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