[rules-users] help! rule"rule_key" failed to predicate

FrankVhh frank.vanhoenshoven at agserv.eu
Fri Apr 15 04:00:03 EDT 2011


Hi,

I thnik you might need to reposition dialect = "mvel". The compiling error
will go away if you put it inside each of your rules. See example:

rule "system will execute 'tc' command"
   
 when
    dialect "mvel"
    eval(Server.Message>8388608)
 then 
     System.out.println("The network is so crowd that it needs repairing.");
    Runtime.getRuntime().exec("tc");#give the authority and execute the "tc"
command
end
 
rule "caution"
    dialect "mvel"
    when 
        eval(Server.Message==8388608)
    then 
        System.out.println("caution!The network maybe will get blocked very
soon.");
end 
 
rule "fluent network"
  dialect "mvel"
  when
  eval(Server.Message<8388608)#conditions
 then 
  System.out.println("the current network is very good");#actions
end

Also, mvel is needed to make the "eval" statement work. In your case, it
might not be needed to work with eval at all.

WHEN Server.message < .... should work as well. Providing you have an
attribute message in Server with a getter defined.

Regards,
Frank


赵慧 wrote:
> 
> hello,everyone! I wrote a rule with Drools, I compile the program and get
> the errors as follows: 
> 
> [3,0]: [ERR 103] Line 3:0 rule 'rule_key' failed predicate:
> {(validateIdentifierKey(DroolsSoftKeywords.RULE))}? in rule
> [3,9]: [ERR 101] Line 3:9 no viable alternative at input 'com' in rule
> package
> [7,0]: [ERR 101] Line 7:0 no viable alternative at input 'import' in rule
> package in rule sample  
> 
> I don't know how it happened, looking forward to your reply! thank you !!! 
>  
> PS: My rules are here:
>  dialect "mvel"
> package  com.sample
> import com.sample.Server;
> 
> rule "system will execute 'tc' command"
>    
>  when
>     eval(Server.Message>8388608)
>  then 
>      System.out.println("The network is so crowd that it needs
> repairing.");
>     Runtime.getRuntime().exec("tc");#give the authority and execute the
> "tc" command
> end
>  
> rule "caution"
>     when 
>         eval(Server.Message==8388608)
>     then 
>         System.out.println("caution!The network maybe will get blocked
> very soon.");
> end 
>  
> rule "fluent network"
>   when
>   eval(Server.Message<8388608)#conditions
>  then 
>   System.out.println("the current network is very good");#actions
> end
>  
>  
>   
> 
> 
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
> 


--
View this message in context: http://drools.46999.n3.nabble.com/rules-users-help-rule-rule-key-failed-to-predicate-tp2823695p2823722.html
Sent from the Drools: User forum mailing list archive at Nabble.com.




More information about the rules-users mailing list