私は状況があり、私は動的にルールを追加する必要があります。その単純なルールの場合、同じ文字列を作成してknowledgebase
に追加することもできますが、ルールの一部としてリストを含める必要がある状況があります。このリストも動的に作成されます。ルールを追加してリストを追加すると、異なるイベントとして発生します。実行時に作成されたdroolsのリストへのアクセス
私はを持っていたと思っていましたが、ここでkeyはリストの名前です。ハッシュマップにアクセスし、リスト名を使用してリストを取得し、droolsの基準としてwhen
を使用します。
$pojo:Pojo($listOfString : list1, $listOfString contains input)
ルールをdroolsに追加している間。
私が知る限り、fireRule
のように、pojoのリストの一般的な名前を持っていても、droolsは使用するリストを選択する際に完全に混乱します。ルールを実行すると、ルールごとに同じリストが使用され、結果は期待どおりになりません。
それ以外の方法がある場合は、教えてください。
私はあなたがリストの識別と要素の値を含むクエリ事実を挿入することにより、リストの1の要素のためのクエリを起動することができDroolsの5.1
すべてのファクトは、実行時に作成され、WMに挿入されるため、リストが珍しいことはありません。そのMapを持っている場合は、eval CEにJavaコードを書き込んで、そのキーでListを抽出し、Stringの存在をテストできます。 Pojoパターンのサンプルコードでは、マップがあることを示していません。 – laune
@laune私はこの事実に同意しますが、問題は私が1つのルールを起動するのではなく、代わりに一連のルールを必要とし、それぞれ異なるリストを必要とし、それに対して文字列を評価する必要があります。したがって、実行時に事実を記入しても、ハッシュマップを渡して必要なリストを差し引いて入力を評価する方法がわかっている場合、ハッシュマップではなく、ただ1つのリストだけを入力できます(これまでのことです)。それは私に教えてください。 – piyushj