私はSessionに変数の2つのString型を挿入したSimple Ruleを持っています。今私は変数を取得する必要があります。同じのためにDroolsはセッションから同じタイプのオブジェクトを取り出します
コード:
rule "Header Account Null Check"
dialect "java"
ruleflow-group "TB:Header Account Null Check"
when
cAccount : AccountPair(headerAccount == null)
then
String error=new String();
String validateMsg=new String();
error="2528";
validationMsg="Header Account must not be null"
modify(cAccount) {
setErrorCode("2528")
}
insert(error);
insert(validateMsg);
System.out.println("Header Account null check called");
end
query "fetch validation variables"
#conditions
s:String();
end
Javaコードは:
Collection<Object> myfacts = kSession.getObjects(new ClassObjectFilter(String.class));
myfactsにチェックした後、私は2つの値を得ました。
は今問題がString.classタイプを持つ2つの変数があるですが、私はエラーためである値と、我々は次のタスクを実行するようにvalidationMsgのためにある値を知る必要があります。
入力と同じSessionから2つの文字列変数を追加した場合でも、これらの変数に条件を追加する必要があります。同じ問題が同様に発生します。これで、変数variableをグローバル変数として宣言することで入力変数の問題を解決しました。私はまた、グローバル変数を宣言するための良い決定ではないので、この戦略を変更する必要があります。
私を助けてください。
ありがとう、私はこのアプローチを知っています、私たちはJRuleで大規模なシステムを持っている、私たちはDroolsに変換している、JRuleは入力と出力のパラメータを設定する機能があります。私は、コードをjavaから将来的に変更したくないので、上記の機能が必要です。 – Viral
まあ、あなたが知っているなら、それはどういう意味ですか? – laune
ラッパークラスを作成しない方法が存在するかどうかを知りたいので、変数値を取得でき、変数の値を識別できるようにするためです。 – Viral