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

Reply via email to