2012-07-14 53 views
0

爲了簡化我的用例。我有測量值的溫度點t1-t4。 用戶可以爲要觸發的規則指定不同的條件和值。例如Drools中的非模板動態規則

t1+ (2* t2) LESS-THAN 100 or t3 EQUAL 5. 

所以條件和比較器是動態的,比較值和測量值也是動態的。 這是Drools或任何其他規則引擎的候選人。 這在我看來,Drools的是一個面向模板的規則引擎,因此可以做到

rule "engine_is_hot" 
    no-loop 
when 
$t1 : Temp(id =="1", $v1 : value) 
$t2 : Temp(id =="2", $v2 : value) 
    eval ($v1>=50 || $v1 + $v2<=100) 
then 
     System.out.println($t1.getId()+""+$t2.getId()); 
end 

所以可以動態生成規則,我的意思是,邏輯比較,comparedvalues和現值動態。我嘗試使用PackageDescr,它不靈活;我無法指定我想要一個<或> =邏輯比較器。

回答