1. プロセスで使用する変数を定義する
1. プロセスで使用する変数を定義する
最初に変数について説明していきます。変数には数種類ありますが、主要なもののスコープを図2に示します。
このうちインスタンス変数はプロセスの中を流れる変数で、定義済みの変数はプロセス固有の情報を持っています。プロセスに変数を追加するには、 AquaLogic BPM Studioの右タブの「変数」をクリックし、各タイプの欄から「+」をクリックして追加します(図3)。

図3:変数の定義
特にインスタンス変数のタイプについては、「String」「Int」「Bool」「Decimal」「Time」「Binary」配列などの型に加えて、後述するBPMオブジェクトを設定することも可能です。
2. 各アクティビティに処理を記述する
次に各アクティビティについて解説していきます。
人が関与するアクティビティ
人が関与するアクティビティを実際に使用する際は、Webブラウザの画面から値の入出力をすることになります。画面の作り方は主に4通りあります(図4)。

図4:画面の作り方
完成版のBPMプロジェクトでは、BPMオブジェクトを使って注文伝票がプロセス内を流れるように設定しています。明細行を含む画面をデータ構造からウィザード形式で自動的に生成できますので、興味のある方は試してみてください(図5)。
自動実行アクティビティ
人が関与しないアクティビティでは、計算処理や他システムとの連携などを実行します。ここには簡易スクリプトPBL(Process Business Language)を記述することができ、AquaLogic BPM Studioが提供するライブラリを使いながら様々な処理を行うことが可能です。
PBLを使用して開発する際は、コードの補完機能やデバッガーを使用することができます。このデバッガーはステップ実行が可能で、ブレークポイントの設定や式のウォッチができます。
またAquaLogic BPM Suiteでは、他のシステムとの連携を容易にするために、様々な連携アダプタを持っています(図6)。
カタログコンポーネントと呼ばれるこのアダプタ群は、ウィザード形式で容易に接続パラメータを設定できます。完成版のBPMプロジェクトでは、データベースへのデータの読み書きに使用しています。
サブプロセス
AquaLogic BPM Suiteでは、複数のプロセスを柔軟に連携させて動作させることができます。メインプロセスからサブプロセスを呼び出して、終了するとメインプロセスに 戻ってくるような連携はもちろんのこと、非同期に別々のプロセスを走らせ、必要なときだけ同期を取るような処理も記述できます。図7は最もシンプルなサブ プロセスのパターンです。
AquaLogic BPM Designerを使用するプロセスモデルのデザイン時と、AquaLogic BPM Studioを使用する開発時では、アクティビティの粒度が異なる場合が多くでてきます。こういった場合にサブプロセスを使って、できるだけ元のプロセス の形を変更しないようにして進めていきます。
またプロセスには通常のスイムレーン(区画)が記入できるものに加えて、以下のものが使えます。
- 画面フロー
- 画面処理だけを記述する。対話式アクティビティから呼び出す。
- プロシージャ
- 自動アクティビティだけを記述する。バッチ処理やシステム連携などに使用する。
- BPEL処理
- BPELに従った処理を記述する。バッチ処理やシステム連携などに使用する。
また、処理の粒度を柔軟にするものとして、アクティビティをまとめてグループとして扱うことも可能です。
遷移や分岐など
遷移にも様々な条件が設定できます(表3)。
| BPMN図 | 還移名 | 機能 |
|---|---|---|
| 条件なし遷移 | 条件なし接続(デフォルト) | |
| 条件付き遷移 | 条件を満たしたときに進む | |
| 期限付き遷移 | 一定時間の経過後に進む | |
| 補正遷移 | 処理に失敗したときの補正処理へ進む | |
| メッセージベース遷移 | 引数の内容に応じて進む | |
| 例外遷移 | 例外が起きたときに進む |
表3:AquaLogic BPM Studio遷移一覧
1つのアクティビティから複数本遷移を出す場合には、遷移に書いた条件式に合致したものが採用され、次のアクティビティに進みます。例えば期限付き 遷移を使うと、担当者のタスクが開始されて一定時間がたった後に、期限切れという形でマネージャにタスクを移し替えることが可能です。



