Hi Wolffgang,

Thanks for your quick response. I did as you say. now my rule file when generated from excel sheet and printed in console looks like this.

package alertRouting;
#generated from Decision Table
import com.sify.beacon.events.RouteEvent;
import com.sify.beacon.events.trapevent.Varbind;
#From row number: 10
rule "210.210.122.100 GroupA"
  
    when
        $event : RouteEvent(nodeIp == "210.210.122.100")
        $varbind : Varbind(oid == "1.3.6.1.2.1.2.2.1.1" && value == "5")
        from $event.varbindings
    then
        event.setGroup("GroupA");
        System.out.println("set to Group A");

end

it seems that the "from" clause is in the next line as a separate condition. so, drools have considered it as a separate condition.

the error message is

 error java.lang.RuntimeException: Rule Compilation error : [Rule name='210.210.122.100 GroupA']
    alertRouting/Rule_210_210_122_100_GroupA_0.java (7:397) : event cannot be resolved

also, i don't understand about implementing the dependency to the cell in left. i tried logical, mathematical dependency conditions. sorry for my ignorance.

please help me resolve this issue.
 _ _     _ _ |.    
| | ||_|| (_|||  \/

On 01/11/2011 01:56 PM, Wolfgang Laun wrote:
There is a limit to what can be implemented using decision tables. Some constructs are possible with hacks.

In your case, you cannot have constraints with parameters and "from" in the same column. You need 2 adjacent columns.

CONDITION
$varbind : Varbind
oid == $1 && value == $2
the pattern and constraints
".1.3.6.1.2.1.2.2.1.1.0","5"
----------------------------------------------------------------
CONDITION

from $event.varbindings
the from clause
x
------------------------------------------------------------------

Note the blank cell below CONDITION. The 'x' triggers the insertion of the from clause. (It should be possible to implement the dependency on the cell to the left by a simple spreadsheet formula.)

-W




2011/1/11 Murali Venugopal <murali.venugopal@sifycorp.com>
>
> hi,
>
> i'm facing a problem with decision tables. i've got a .drl working file. but when i happen to take that into a .xls file ( decision table ) it throws some errors.
>
> my actual rule in .drl file has got something like this.
>
> when
>
>     $event : RouteEvent( nodeIp == "192.168.1.12 )
>     $varbind : Varbind ( oid == ".1.3.6.1.2.1.2.2.1.1.0" && value == "5" ) from $event.varbindings
>
> then
>    
>     System.out.println("some text")
>
> here in my decision table, my first cell would have the first condition
>
> $event : RouteEvent
> nodeIp == "$param"
> that is, i've to omit my "(" and ")" braces.
>
> so now, my second condition is
>
> $varbind : Varbind
> ( oid == "$1" && value == "$2" ) from $event.varbindings
>
> here i don't know how to omit the "(" and ")" braces. or should i add and other layer of those braces.
>
> anyway, the decision table is not working, where as my rule file does.
>
> the error message is
>
>  error java.lang.RuntimeException: [10,55]: [ERR 102] Line 10:55 mismatched input 'FROM' expecting ')' in rule "210.210.122.100 GroupA" in pattern Varbind[10,77]: [ERR 102] Line 10:77 mismatched input ')' expecting 'then' in rule "210.210.122.100 GroupA"
>
> my doubt is,
> in the first case all my condition expression is contained with in braces. where as in second case, it's not. so how do i've to handle this. do i've have to omit the braces in the second case or not.
>
> please help me. i've been struggling to solve this error. also, i couldn't find references in the documentation.
> thanks in advace.
>
>  _ _     _ _ |.    
> | | ||_|| (_|||  \/
>
> Whoever wants to be happy, let him be so: of tomorrow there's no knowing
>
> _______________________________________________
> rules-users mailing list
> rules-users@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>

_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users