1.3.3 BPMN要素のCSCIWでの扱われ方
(1) BPMN要素とCSCIWの変換概要
BPMN要素とCSCIWの変換について説明します。
BPMN要素であるタスクやイベントは,CSCIWの業務ステップ定義および作業定義に変換されます。変換された業務ステップ定義および作業定義の定義名は,変換元のBPMN要素のname属性値とid属性値を「_」(半角アンダースコア)でつないだ名称になります。ただし,以降の変換イメージの図では,定義名のid部分を省略して説明しています。
- 注※1
-
サブプロセス(マルチインスタンス)に含まれるタスクやイベントの場合,業務ステップ定義名は「IW<インデクス>_<BPMN要素のname属性>_<BPMN要素のid属性>」となります。
- 注※2
-
タスクがマルチインスタンスである場合,作業定義名は「IWMW_STEP1_101」となります。
基本的に,タスクやイベントから変換された業務ステップ定義には,対応する作業定義が1つ生成されます。次の場合,作業定義は複数生成されます。
-
境界イベントが定義されている場合
次の業務ステップ定義の場合,境界イベントを受信するための作業定義が追加されます。
-
境界イベント(境界中断(メッセージ),境界非中断(メッセージ),または境界中断(エラー))が定義されたアクティビティ内のタスクやイベントから変換された業務ステップ定義
-
境界中断(タイマー)または境界非中断(タイマー)が定義されたタスクから変換された業務ステップ定義
追加する対象は,次のタスクやイベントから変換された業務ステップ定義です。
-
ユーザタスク
-
サービスタスク
-
ビジネスルールタスク
-
コールアクティビティ
-
キャッチ(メッセージ)
-
スロー(メッセージ)
-
終了(メッセージ)
-
排他イベントゲートウェイ
-
終了(エラー)
-
-
排他イベントゲートウェイの場合
排他イベントゲートウェイから変換された業務ステップ定義に,遷移先のすべてのイベントに対応した作業が生成されます。詳細は,「1.3.4 BPMN要素のCSCIWビジネスプロセス定義への変換の詳細」の「(28) 排他イベントゲートウェイ」を参照してください。
-
マルチインスタンスの場合
マルチインスタンスが定義されたアクティビティのタスクから変換された業務ステップ定義には,作業を動的に生成するための作業定義(並列作業)および作業定義(一般作業)が生成されます。生成される対象は,次のタスクから変換された業務ステップ定義です。
-
ユーザタスク(シーケンシャルマルチインスタンス)
-
ユーザタスク(パラレルマルチインスタンス)
-
サービスタスク(シーケンシャルマルチインスタンス)
-
サービスタスク(パラレルマルチインスタンス)
-
ビジネスルールタスク(シーケンシャルマルチインスタンス)
-
ビジネスルールタスク(パラレルマルチインスタンス)
-
コールアクティビティ(シーケンシャルマルチインスタンス)
-
コールアクティビティ(パラレルマルチインスタンス)
-
(2) BPMN要素とCSCIWの作業者
CSCIWの作業の作業者に設定される文字列について説明します。
CSCIWの作業の作業者には,ユーザタスクの場合はレーン名が,イベントの場合はmessageRefやerrorRefなどから生成された文字列が設定されます。ユーザタスクの作業者の決定方法については,「1.3.4 BPMN要素のCSCIWビジネスプロセス定義への変換の詳細」の「(1) ユーザタスク」を参照してください。
CIWServerクラスのgetWorkItemsListメソッドのフィルター条件に状態と作業者を指定することで,指定したユーザの作業(ユーザタスク)の一覧や,指定したイベントを受信待ちしている作業(キャッチなど)の一覧を取得できます。
BPMN 要素 |
作業者 |
---|---|
ユーザタスク |
<レーン名>※ |
サービスタスク |
IWTOPE_<operationRef> |
ビジネスルールタスク |
IWTOPE_<operationRef> |
コールアクティビティ |
IWCALL_GLOBALBP |
キャッチ(メッセージ) |
IWRMSG_<messageRef> |
境界中断(メッセージ)[受信用] |
IWRMSG_<messageRef> |
スロー(メッセージ) |
IWTMSG_<messageRef> |
終了(メッセージ) |
IWTMSG_<messageRef> |
排他イベントゲートウェイ[キャッチ(メッセージ)] |
IWRMSG_<messageRef> |
境界中断(エラー)[受信用] |
IWRERR_<errorRef> |
終了(エラー) |
IWTERR_<errorRef> |
境界非中断(メッセージ)[受信用] |
IWRMSG_<messageRef> |
キャッチ(タイマー) |
IWTTIM_IWTransit |
境界中断(タイマー)[受信用] |
IWTTIM_IWTransit |
境界非中断(タイマー)[受信用] |
IWTTIM_IWTransit |
イベント・サブプロセス中断開始(タイマー)[受信用] |
IWTTIM_IWTransit |
イベント・サブプロセス非中断開始(タイマー)[受信用] |
IWTTIM_IWTransit |
- 注※
-
<レーン名>の決定方法については,「1.3.4 BPMN要素のCSCIWビジネスプロセス定義への変換の詳細」の「(1) ユーザタスク」を参照してください。
(3) BPMNビジネスプロセス定義のCSCIWでの実行例
BPMNビジネスプロセス定義の実行例で使用する,BPMNビジネスプロセス定義の例を次の図に示します。
図に示したビジネスプロセス定義で,申請結果受信が実行中の場合の業務ステップ一覧の例を示します。現在実行中のタスク・イベントに対応する業務ステップの状態は「d(実行中)」になります。実行済みのタスク・イベントに対応する業務ステップの状態は「t(遷移済)」になります。
案件ID |
業務ステップID |
業務ステップ定義名 |
状態 |
開始日時※ |
終了日時※ |
---|---|---|---|---|---|
1001 |
2001 |
申請データ登録_101 |
t(遷移済) |
2016/08/01 |
2016/08/01 |
1001 |
2002 |
審査_102 |
t(遷移済) |
2016/08/01 |
2016/08/10 |
1001 |
2003 |
申請結果送信_103 |
t(遷移済) |
2016/08/10 |
2016/08/15 |
1001 |
2004 |
申請結果受信_104 |
d(実行中) |
2016/08/15 |
- |
- 注※
-
実際の開始日時および終了日時には,時刻まで含まれます。
作業一覧の例を示します。現在実行中のタスク・イベントに対応する作業の状態は「j(実行開始可能)」になります。実行済みのタスク・イベントに対応する作業の状態は「r(実行済)」になります。
案件ID |
作業ID |
作業定義名 |
作業者 |
状態 |
作成日時※ |
終了日時※ |
---|---|---|---|---|---|---|
1001 |
2001 |
申請データ登録_101 |
IWTOPE_operef001 |
r(実行済) |
2016/08/01 |
2016/08/01 |
1001 |
2002 |
審査_102 |
審査者 |
r(実行済) |
2016/08/01 |
2016/08/10 |
1001 |
2003 |
申請結果送信_103 |
IWTMSG_msgref001 |
r(実行済) |
2016/08/10 |
2016/08/15 |
1001 |
2004 |
申請結果受信_104 |
IWRMSG_msgref002 |
j(実行開始可能) |
2016/08/15 |
- |
- 注※
-
実際の作成日時および終了日時には,時刻まで含まれます。
CIWServerクラスのgetWorkItemsListメソッドのフィルター条件に,「ProcessInstanceID=1001 AND Participant='IWRMSG_msgref002' AND StateCode='j'」と指定すると,指定したメッセージで受信待ちしている作業(イベント)を検索できます。