BPL ダイアグラムの右側には、一連のプロパティ・タブを含むペインがあります。二重矢印のアイコンをクリックすることで、この右側のペインを必要に応じて展開および縮小できます。これらのタブうち、3 つはその BPL ビジネス・プロセス自体に関するものであり、1 つは選択したシェイプに関するものです。
context オブジェクトの定義
BPL ビジネス・プロセスの context オブジェクトは、ビジネス・プロセス・デザイナの [コンテキスト] タブで定義できます。虫めがねアイコンをクリックすると、以下の各フィールドの [ファインダダイアログ] を起動できます。
-
[要求クラス] — このプロセスの受信要求のクラスを選択します。
-
[応答クラス] — このプロセスによって返される応答のクラスを選択します。
-
[コンテキスト・スーパークラス] — 次に説明するように、このオプションを使用すると [コンテキスト・プロパティ] リストへの追加とは異なる方法で、カスタム・コンテキスト・プロパティが提供されます。[コンテキスト・スーパークラス] を使用するには、Ens.BP.ContextOpens in a new tab のカスタム・サブクラスを作成します。このサブクラスで、コンテキスト・プロパティとして使用するクラス・プロパティを定義します。このクラスの名前を、ビジネス・プロセスの [コンテキスト・スーパークラス] の値として使用します。こうすることで <assign> アクションを作成する際に、例えば、context オブジェクトの標準プロパティだけでなく、これらのカスタム・プロパティも選択できるようになります。
[コンテキスト・プロパティ] のリストを追加するには、プラス記号をクリックしてビジネス・プロセス・コンテキスト・ウィザードを起動します。次に、以下のフィールドに値を入力します。
-
[プロパティ名] — 有効な識別子である必要があります。
-
プロパティ・データが [単一値]、[リスト・コレクション]、または [配列コレクション] のいずれ科である場合に選択します。
-
[プロパティタイプ] — パラメータを含むこのプロパティのタイプ。
[タイプ] フィールドにデータ型クラス名を入力するか、虫めがねアイコンをクリックしてデータ型として使用するクラスを探して選択します。
-
[デフォルト値] (コレクションの場合は無視されます) — 単一値データ型の最初の式を入力します。
-
[インスタンス化] — オブジェクト値型のプロパティの場合に、そのオブジェクトが作成されたときにインスタンス化されるようにするには、このチェックボックスにチェックを付けます。
-
[説明] — コンテキスト・プロパティの説明を入力します (省略可能)。
作業内容を保存する場合は [OK] を、作業内容を破棄する場合は [キャンセル] をクリックします。ビジネス・プロセス・デザイナによって、必要な <context> および <property> 要素が BPL コード内に生成されます。
ビジネス・プロセス・デザイナで MINVAL、MAXVAL、MINLEN、MAXLEN などのプロパティ・パラメータを設定するには、そのプロパティを最初に追加するときに、またはそれ以降の任意の時点で、データ型パラメータを context プロパティに追加します。そのためには、データ型クラス名の後ろにパラメータのカンマ区切りリストをかっこで囲んで挿入します。つまり、単に %StringOpens in a new tab や %IntegerOpens in a new tab を入力する代わりに、以下のようにデータ型を入力できます。
%String(MAXLEN=256)
%Integer(MINVAL=0,MAXVAL=100)
%String(VALUELIST=",Buy,Sell,Hold")
ビジネス・プロセス・デザイナによって、必要な <parameters> 要素が BPL コード内に生成されます。
context オブジェクト上のプロパティを定義したら、通常のドット構文と対象のプロパティ名を使用して、BPL 内のどこからでもそれらのプロパティを参照できます (例 : context.MyData)。
参照の詳細は、以下のトピックを参照してください。
デフォルトでは、ルールに渡される ruleContext は、ビジネス・プロセスの実行コンテキストです。別のオブジェクトをコンテキストとして指定する場合、そのオブジェクトに対していくつかの制約が発生します。まず、タイプ Ens.BusinessProcessOpens in a new tab のプロパティ %Process が必要です。これは、ルール・エンジンにビジネス・プロセスの呼び出しコンテキストを渡すために使用します。このプロパティに値を設定する必要はありませんが、存在することは必要です。次に、目的のオブジェクトが、ルールそのもので想定されているオブジェクトと一致している必要があります。これらの制約が守られていることを確認するためのチェックは行われません。開発者側で、オブジェクトを正しく設定することが必要です。