Decision Table Action列のBOMメンバーからオブジェクトを作成する方法(コンストラクタをコールする)

StackOverflow https://stackoverflow.com//questions/25034462

  •  21-12-2019
  •  | 
  •  

質問

私のルールプロジェクトのルールセットパラメータとしてタイプType1の2つのArrayListを持っています。別のもののためのもののために1つ。私のルールフローでは、Out Rulesetパラメータを初期化する最初のアクションタスクがあります。入力としてアレイリストを持っているので、私はそれを知っている方法を知っていることを「反復」する必要があります。

私の問題が後に来ます。私のルールフローの次のタスクでは、私がいくつかの前提条件を持つすべての私の決定表を追加したルールタスクがあります。 ほとんどの決定表について、複数の規則を発射することができます。私が達成したいのは、Type1の新しいオブジェクトを出力ArrayListに追加したいという各ルールに対するものです。問題がここに来る。私に3つのルールがある場合、ifing iが実際には、Type1のタイプ1のオブジェクトが出力AraphListに追加されますが、すべて3つすべてが同じ値が付属しています。同じオブジェクトを「指している」のように見えます。

私の質問は、Type1型の新しいオブジェクトを作成するためのアクション列(コンストラクタを呼び出します)であるため、Type1のその新しいオブジェクトに書き込まれた状態の残りのアクションを実行します。私はあなたが持っている多くの規則としてタイプ1のルールセット変数をいくつでも作成し、それぞれのルールに対してそれぞれを使うのを創造することができると私はこれを達成することができますが、このように私のテーブルは巨大な(サイドワイ)とそれが望む方法ではありません。

Type1とアライグリストの両方がBOMメンバーです。

編集:Reteplusアルゴリズムを使用していることを忘れて、実行時ルール選択のための終了基準と順序付けと動的BALの「なし」と述べています。

私は誰かが私を助けることができるのに十分なほど自分自身を話し合ってください。事前にありがとうございます。

役に立ちましたか?

解決

これはあなたが欲しいものを達成するための技術です、3ステップで:

BOMエディタでは、Type1クラス(または実際には他のクラス)にメソッドを作成します。戻りタイプをtype1に設定します。たとえば、CreateType1を呼び出します。オブジェクトを初期化する必要があるため、多くのメソッド引数を追加します。静的にしてください。

ルール作成者にとって理にかなった方法でそれを言語化する。何かのようなもの : 新しいType1、{0}に設定されている名前、{1} //に設定されている値は一例です、それを持っている引数リストに適応します。

B2Xスクリプトのピースとしての方法を実装します。

// calling the appropriate constructor from the XOM class.
return new mypackage.TYPE1(arg1, arg2); 
.

BOMを保存します。

この新しいフレーズを使用して、次のような構成です。 新しいType1を追加し、名前を "joe"に設定して、出力リストに12に設定されています。

通常、Decision TableのAction列で使用できます。エディタはフレーズのすべてのプレースホルダーをサブカラムにマッピングします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top