変数は、UI デザイナーの重要な概念です。それらはページの挙動を定義し、外部リソースを取りに行くためやプロセス情報の操作など、いろいろな目的に使用されます。ページ内でどのように変数を定義し使用するか、そしてウィジェットのプロパティを併用して変数に含まれたデータがどのように機能するのか、理解することが重要です。
変数の種類は次のとおりです:
- String
- JSON
- JavaScript expression
- External API
- URL parameter
評価サイクル
String と JSON は、初期設定に使用されるタイプです。これらのタイプを持った変数は、ページのデータモデルのインスタンス化時点で使用され、それ以降、その値が変わらないことが前提になります。
JavaScript expression 変数、External API 変数、および URL parameter 変数は、動的です。それらは、データの取得またはユーザーの操作時などで、ページ上に何らかの変化を起こるたびに評価されます。External API 変数のコールは、その変数が指し示すリソースのURLが変わるたびに起動されます。
External API 変数
External API 変数はページの外部にあるデータを取りに行くために使用されます。これは一般的に REST API が使用されます。指定したURLのコールは、HTTP GET リクエストを使用して行われます。その結果はページのデータモデルに格納されます。URL を他のデータを使って組み立てる場合は、{{variableName}}
の文法を使用してパラメータ化できます。
あなたは、 Bonita REST API を使用して情報を取得できます。 いくつか例を次に示します:
- 現在のユーザーIDの取得:
- API URL:
../API/system/session/{{userId}}
- この変数は
userId
の値が変化するたびに評価されます userId
が未定の場合は、コールは起動されません
- API URL:
- taskId の取得:
- API URL:
../API/bpm/humanTask/{{taskId}}
- API URL:
- プロセス インスタンスに関連するビジネス オブジェクトの取得:
- API URL:
../API/bdm/businessDataReference/{{caseId}}/{{businessDataName}}
- API URL:
- フォーム作成時に、コンテキストの参照を使用してビジネスデータを取得:
- API URL:
../{{context.myBusinessData_ref.link}}
- API URL:
JavaScript expression 変数
JavaScript expression は、JavaScript の関数です。この関数はその評価中、ページのデータモデルへのアクセスを提供する $data の変数を使用できます。
たとえば:
return result;
ページ上に何らかの変化が起こるたびに、expression が再評価され、以前のデータが上書きされます。したがって、ユーザー入力のために、この expression の結果をバインドすることはできません。
変数の使用
変数はウィジェットと一緒に使用されます。ウィジェットのプロパティ内で変数を使用する方法はたくさんあります。ウィジェット内に表示されるテキストまたはHTMLを含むプロパティでは、そのコンテンツ内に {{variableName}} の文法を使用し、動的に変化させることができます。たとえば、「ようこそ」メッセージにユーザー名を表示できるでしょう。ユーザー入力(テキスト入力の「値」プロパティの例)の場合、その変数は、初期値の設定とユーザー入力の取得の両方に使用されます。
バインディングは動的ですから、変数の値が変化するたびに、データモデル全体が再評価され、UIが更新されます。
Bonita BPM フォーム
UI デザイナーの最終目標の1つは、あなたがプロセスの起案(インスタンス化)とヒューマンタスク用のフォームをビルド可能にすることです。UI デザイナーは、ヒューマンタスクのフォーム実行の際にコンテキストを取得します。フォームがプロセスの起案またはヒューマンタスクに送信されたとき、UI デザイナーは、送り先のコントラクト値を埋めるためにデータを送信します。
Bonita BPM Studio からフォームを作成する場合、UI デザイナーは次の変数を生成します:
- formInput は JSON オブジェクトです。 このデータ構造は入力コントラクトによって定義され、その属性はデフォルト値で初期化されます。デフォルト値はフォームフィールドの初期値設定に使用されます。 コンスタントを使ってデフォルト値を編集する(テストやデバックに有効)、あるいは同じデータモデルを持つ外部ソース内のオブジェクト値を使ってデフォルト値を編集する(ビジネス データモデルの外部 External API を使用する例)、いずれかの方法でも formInput 内の値をセットすることができます。 formInput.を使用せずに、他のソースからフォームの初期値をセットすることも可能ですが、この場合は formOutput を手動で編集する必要があります。
- formOutput は、オブジェクトを返すJavaScript expression です。 戻り値のデータ構造は、コントラクトの要求仕様と一致し、 formInput のデータ値がデフォルトで埋められます。送信時にエンドユーザーによって入力または変更された値はformOutput オブジェクト(送信ボタンの「クリックで送られるデータ 」プロパティで定義されたもの)に集約され、コントラクトの値を埋めるためにプロセス、またはヒューマンタスクに送信されます。
- taskId は現在のBPMタスクのIDです。BPM API パラメータとして使用できます。
- context は、External API です。インスタンスのすべてのビジネス変数およびドキュメントへの参照を提供します。インスタンスのビジネス変数を取得するには、
../{{context.myBusinessData_ref.link}}
. の値を使ってExternal API 変数を作成します。