0

drools ルール エンジンを使い始めたばかりです。ファクト内に 2 つのリストがあり、その中の値を繰り返し処理したいと考えています。私は小さなことを試しましたが、うまくいきませんでした.Droolsにネストされたforループのようなものを実装する必要があります. 2 つのリストのうち、1 つはタイプのもので、もう 1 つはStringユーザー定義オブジェクトのものです。

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

上記の を除き、 はユーザー定義のリストであり、$handexceptionは ですString

4

1 に答える 1

0

達成しようとしているのが BillingInfo 内に、handlingExceptions からの少なくとも 1 つの HandlinExpection ($h) と 1 つの String ($s) があるかどうかを確認することである場合、次のようになります。次のようにします。

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

end

それが役に立てば幸い、

于 2013-02-09T13:50:34.957 に答える