2013-02-08 45 views
0

我剛開始使用drools規則引擎。我在事實中有兩個列表,並且想要迭代地在它們內部的值。我曾嘗試過一件小事,但沒有成功。我需要在Drools中實現類似嵌套的for循環。在兩個列表中,一個是String類型,另一個是用戶定義的對象。上述比較DROOLS中兩個列表中的值

rule "for the Handling Exception" 

when 
$billInfo : BillingInfo ($except : exceptions , $handException : handlingExceptions , $rate : rate , $price : price); 

    HandlingException ($exc : exceptionValue ; $exce : this )from $except 
exists (String ($handExc : this == $exc ) from $handException) 
then 

$billInfo.setPrice($price + ($rate * $exce.getDiscount())); 


end 

,除了被定義的用戶列表,並$handexceptionString

回答

0

如果您試圖實現的是檢查BillingInfo內是否至少有一個來自handlingExceptions的HandlinExpection($ h)和一個String($ s),例如:$ h.exceptionValue == $ S,你可以做這樣的事情:

when 
    $b: BillingInfo() 
    exists (
     $h: HandlingException(exceptionValue memberof $b.handlingExceptions) from $b.exceptions 
    ) 
then 

end 

希望它能幫助,