ルール プロジェクトのルールセット パラメーターとして、タイプ TYPE1 の 2 つの arraylist があります。IN 用に 1 つ、OUT 用にもう 1 つ。私のルールフローには、OUT ルールセット パラメータを初期化する初期アクション タスクがあります。入力としてarrayListがあるので、それを「反復」する必要がありますが、その方法はわかっています。
私の問題はその後です。ルールフローの次のタスクには、いくつかの前提条件を持つデシジョン テーブルをすべて追加するルール タスクがあります。ほとんどのデシジョン テーブルでは、複数のルールを起動できます。私が達成したいのは、起動されたルールごとに、タイプ TYPE1 の新しいオブジェクトを出力配列リストに追加することです。ここで問題が発生します。3 つのルールを実行すると、実際には TYPE1 型の 3 つのオブジェクトが出力配列リストに追加されますが、3 つすべてに同じ値が含まれます。すべてが同じオブジェクトを「指している」ように見えます。
私の質問は、タイプ TYPE1 の新しいオブジェクトを作成する (コンストラクターを呼び出す) アクション列に方法があるので、ルールの残りのアクションを実行するときに TYPE1 の新しいオブジェクトに書き込む方法はありますか? TYPE1 型のルールセット変数を自分が持っているルールと同じ数だけ作成し、ルールごとにそれぞれを使用すれば、これを達成できることはわかっていますが、この方法ではテーブルが (横向きに) 巨大になり、私たちが望む方法ではありません。
TYPE1 と arraylists の両方が BOM メンバーです。
編集: 私は RetePlus アルゴリズムを使用していることを忘れていました。終了基準として「なし」を使用し、ランタイム ルールの選択に順序付けと動的 BAL を使用しています。
誰かが私を助けることができるように、私は自分自身を十分に説明したことを願っています. 前もって感謝します。