drl ファイルでグローバルな hashMap を使用できるかどうかを誰かに教えてもらえますか?
処理されたすべてのドキュメントを追跡するカウンター機能を実装しようとしています。
ルール ファイル レベルで変数を宣言したい (Java のクラス変数のようなもの)。
私はグローバル リストを問題なく使用してきたので、マップも同様に機能すると思います。
setGlobal()
メソッドで開始するときに、グローバルをワーキングメモリに渡すことができます。global
次に、drl ファイルで、次のようにキーワードを使用してその使用を宣言します。
import java.util.Map
global Map myMap
when
// some condition
then
myMap.put(...);
end
まず、メイン プログラムでグローバル変数を作成します。
public static HashMap<String , String> collectRule = new HashMap<String , String>();
その変数をワーキングメモリに渡し、
WorkingMemory workingMemory = ruleBase.newStatefulSession();
workingMemory.setGlobal( "myGlobalList", collectRule );
次に、.drl ファイルに入ります。
import java.util.Map
global java.util.Map myGlobalList;
rule " Rule 1: Hello World"
when
//some codition
then
myGlobalList.put(key,value);
end