コールされるプロセス

コールされるプロセスは、別のプロセスから呼び出される完全なプロセスです。コールしているプロセスとコールされているプロセスの間には親子関係があります。子プロセスの流れは、本来親プロセス内に包含されています。

コールされるプロセスは、親プロセス内のコールアクティビティから呼び出される独立したプロセスです。プロセスの流れは、親プロセス内のコールアクティビティからコールされるプロセス内の開始要素に進みます。コールされるプロセスが実行している間、親プロセスは中断されます。コールされるプロセスの終了要素に到達すると、処理はコールアクティビティに戻ります。

コールされるプロセスは、他のプロセスとまったく同じ方法で定義されます。コールされるプロセスを呼び出すことも、イベント サブプロセスを含めることも可能です。親プロセスは1つ以上のこを呼び出すことができます。コールされるプロセスは、1つ以上の親プロセスによって呼び出されることも可能です。

コールされるプロセスは、親プロセスと同じプロセス図内の独立したプールに置くか、あるいは別のプロセス図に置くことがことができます。1つのプロセスがいくつかの親プロセスから呼び出される場合、そのコールされるプロセスは普通、メンテナンスやデプロイの容易性の観点から別のプロセス図に置きます。コールされるプロセスを含んでいるプロセス図が同じワークスペースに存在する場合、親プロセスをビルドしデプロイするときに、コールされるプロセスも自動的にデプロイされます。親プロセスとコールされるプロセスが同じワークスペースにない場合は、それらを別々にデプロイする必要があります。

コールされるプロセス内のデータは、どのプロセスと同じ方法で定義されます。さらに、親プロセスからデータをマップし、そのデータをコールされるプロセスで使用可能にできます。コールされるプロセスを呼び出すコールアクティビティを定義する際にデータのマッピングを定義します。

プロセスを定義するのと同様の方法でコールされるプロセスを定義できます。プロセス図からコールされるプロセスを抜き出すこともできます。

コールされるプロセスの定義

コールされるプロセスの定義には、「コールされるプロセスの定義」と「コールアクティビティの定義」の2つの部分があります。コールされるプロセスが既に存在し、必須でない場合は、コールアクティビティだけを定義すればよく、より簡単になります。

他のプロセスを定義したときと同じようにコールされるプロセスを定義します。コールされるプロセス内の変数を作成するときは、それらが親プロセス内の変数と関係しているか注意します。

親プロセスでコールアクティビティのタスクを定義します。通常のタスク特性を定義します。コールアクティビティはそれに関連するフォームを持てませんが、コネクタとタスクレベルのデータは持つことができることに留意してください。

[詳細] パネル -> [全般] タブ -> [全般] ペインに進んで、コールされるプロセスの名前を指定します。プロセス名が分かっている場合は、直接それを入力できます。それでなければ、式エディタを使用します。

[詳細] パネル -> [全般] タブ -> [マッピング] ペインに進んで、親プロセスとコールされるプロセス間でマッピングするデータ、あるいは入力コントラクトを指定します。同じデータ型の変数または入力コントラクトだけをマップできます。コールされるプロセスにはコントラクトをセットアップすることを推奨します。この方法で、親プロセスの変数をコールされるプロセスの入力コントラクトにマップできます。

自動マップを使用して、コールされるプロセスから親プロセスにデータを自動でマップすることができます。自動マップは親とコールされるプロセス間の変数名が一致するペアだけを対象にします。また、コールされるプロセスの変数を親プロセスの変数に明示的にマッピングすることも指定できます。

コールされるプロセスを抜き出す

プロセスからコールされるプロセスを抜き出すこともできます。そうするには、プロセス図を開いて、BPMN要素メニュー(ホワイトボード下部)内の Marquee tool をクリックし、抜き出したいプロセスの部分を選択します。プロセスの選択した部分は単一の開始点と単一の終了点を持つ必要があります。選択した部分を右クリックして、そのメニューから「コールされるプロセスを抜き出す」を選択します。選択した部分のプロセスは抜き出され、プロセス図内の現在のプールの下に挿入された新しいプール内に置かれます。元の図の抜き出された項目は、コールアクティビティに置き換えられます。親プロセスとコールされるプロセスは自動的のマップされます。