ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド
11g リリース1(11.1.1.5.0)
B61409-03
  目次へ移動
目次

前
 
次
 

6 Oracle BPMを使用したビジネス・プロセスのモデリング

この章では、Oracle Business Process Management Suite内部でBusiness Process Management Notation and Modeling (BPMN)を使用して、ビジネス・プロセスを作成およびモデリングする方法について説明します。

この章では、オラクル社のBPMN 2.0の実装に関する具体的な情報について説明します。営業見積サンプル・プロジェクトを使用したBPMNの概要説明については、第2章「ビジネス・プロセス設計の概要」を参照してください。正式な仕様を含むBPMNの一般的な情報については、http://www.bpmn.orgを参照してください。

この章は、ビジネス・プロセスで実行する必要がある様々なタイプのタスクに従って構成されています。この章には次の項が含まれます。

6.1 スイムレーンを使用したプロセスの整理

この項では、スイムレーンを使用してプロセスを整理する方法を示します。また、ロールを使用してプロセスベースのアプリケーションの作業を実行するビジネス組織のメンバーを決定する方法についても説明します。

6.1.1 ロールの概要

ビジネス・プロセスの設計においては、ユーザー相互作用を必要とする各タスクを完了させる責任を負うユーザーまたはロールを決定することが重要となります。プロセスにおいて、ロールは、ビジネス・プロセス内で実行される作業の実行責任者をモデリングするために使用されます。ロールを使用すると、組織内の職務や責任を表す機能上のカテゴリを定義できます。

また、プロセスに定義されたロールは、論理ロールとも呼ばれます。Oracle BPMプロジェクトがランタイム環境にデプロイされると、これらのロールは、実際の組織におけるユーザーに対応するLDAPロールにマップされます。

ロールは水平のスイムレーンに割り当てられます。スイムレーンには、プロセス内のアクティビティおよびタスクを完了する責任を負うロールが表示されます。Business Process Composerを使用すると、プロセス内で必要なロールを作成および編集して、それらをスイムレーンに割り当てることができます。

Oracle BPM Studioを使用すると、LDAPを使用する特定のユーザーにロールをマップすることもできます。また、Oracle BPM Studioでは、組織単位、カレンダおよび休日を使用して、より堅牢な組織モデルを作成できます。

6.1.1.1 コンテキスト内のロール

通常、プロセス・アナリストは、ビジネス・プロセスを設計するときにどのようなロールが必要となるかを決定します。

営業見積サンプル・プロジェクトでは、次のロールが定義されています。

  • 営業担当者: 営業担当者は、プロジェクトに定義された他のロールによって承認されるまでの間における、営業見積の作成および更新を担当します。

  • 承認者: 営業見積で定義された製品と価格設定構成の組合せの承認を担当します。

  • ビジネス実行: 営業見積の参照および承認を担当するユーザーを表します。これらのユーザーは、営業見積のレビューにおいて、追加の承認者を追加する権限も持っています。

  • 契約: 営業見積に指定された条項の承認を担当するユーザーを表します。これらのユーザーは、顧客に転送可能な正式な法的文書の作成も担当します。

営業見積サンプル・プロジェクトの詳細は、第2章「営業見積サンプル・プロジェクトの概要」を参照してください。

6.1.2 スイムレーンの概要

スイムレーンは、プロセス・エディタに表示される水平の線です。すべてのフロー・オブジェクトを、スイムレーン内に配置する必要があります。

プロセス内で定義されたロールに基づいてフロー・オブジェクトをグループ化するために、スイムレーンを使用することもできます。ユーザー・タスクを含むスイムレーンは、そのユーザー・タスクに割り当てられたロールを持っている必要があります。スイムレーンでは、プロセス内の各フロー・オブジェクトの実行を担当するロールが視覚的に表示されます。また、同じロールに割り当てられた複数のスイムレーンを持つこともできます。

同じプロセスの異なる部分で同じロールを使用する必要がある場合は、スイムレーンを使用するとプロセスがよりわかりやすくなります。

新しいプロセスを作成すると、Oracle BPM StudioおよびBusiness Process Composerによってデフォルトのスイムレーンが作成されます。必要に応じて、プロセスに追加のスイムレーンを追加できます。プロセスに対話型アクティビティや手動アクティビティを追加する場合は、スイムレーンにロールを割り当てる必要があります。

新しい手動プロセスを作成する場合は、プロセス作成のためのウィザードの一部としてロールを指定する必要があります。


注意:

開始イベントおよび終了イベントを含むスイムレーンのロールは削除できません。

6.1.2.1 コンテキスト内のスイムレーン

図6-1は、複数のスイムレーンにスプリットされた単純なプロセスを示しています。この例では、営業担当者ロールが最初のスイムレーンに割り当てられています。このスイムレーン内には見積入力ユーザー・タスクが表示されているため、営業担当者ロールに割り当てられているプロセス参加者は、このタスクの実行を担当します。

図6-1 2つのスイムレーンにスプリットされた、単純なビジネス・プロセス

図6-1の説明が続きます
「図6-1 2つのスイムレーンにスプリットされた、単純なビジネス・プロセス」の説明

実際のビジネス・プロセスでは、スイムレーンの組合せ、およびスイムレーン内のフロー・オブジェクトが複雑になる場合があります。図2-1に示した営業見積サンプル・プロジェクトは、複数のスイムレーンを使用したより複雑なプロセスの例です。

6.1.3 プロセスへのロールおよびスイムレーンの追加

プロセスに新しいスイムレーンおよびロールを追加するには:

  1. スイムレーンを追加するプロセスを開きます。

  2. コンポーネント・パレットからフロー・オブジェクトを選択し、それを既存のスイムレーンの下のプロセス・キャンバスにドラッグ・アンド・ドロップします。

新しいスイムレーンが作成されます。ユーザー・タスクまたは手動タスクを追加した場合、スイムレーンには、デフォルトのロール名が含まれています。

6.1.4 Business Process ComposerとBPM Studioとの間でのロールの共有

Oracle BPM Studioでは、組織単位、カレンダおよび休日に基づいて、複雑な組織モデル内にロールを統合できます。

Business Process Composerでプロジェクト・テンプレートに基づいてプロジェクトを作成または編集するときに、そのプロジェクト内に定義されたロールにアクセスできます。ただし、プロジェクト内に定義された組織情報は表示または編集できません。

また、Business Process Composerを使用して新しいロールを作成することもできます。これらのロールは、プロジェクトの全体的な組織情報の一部として統合されます。

6.2 プロセスの開始点および終了点の定義

この項では、プロセスの開始と終了を定義するために使用するBPMNフロー・オブジェクトについて説明します。

6.2.1 開始イベントと終了イベントの概要

開始イベントは、プロセスの開始点を定義するBPMNフロー・オブジェクトです。開始イベントには様々なタイプがあり、それによってプロセス・インスタンスの作成方法が定義されます。

一方、終了イベントはプロセスの終了点を定義します。終了イベントには様々なタイプがあり、それによってプロセス・インスタンス完了時の処理が定義されます。


注意:

Oracle BPMでは、すべてのBPMNプロセスに少なくとも1つの開始イベントと1つの終了イベントが必要です。

開始イベントではプロセスの始まりを定義するため、受信シーケンス・フローは含まれません。同じく、終了イベントには送信シーケンス・フローを含めることができません。

ただし、None開始イベントとNone終了イベント以外の開始イベントと終了イベントには、プロセスへの入力と出力を含めることができます。

6.2.1.1 プロセスの各種のパターンおよびサブプロセスのデフォルト開始イベント

新しいプロセスを作成すると、Oracle BPM StudioおよびBusiness Process Composerがデフォルトの開始イベントと終了イベントを作成します。作成される開始イベントと終了イベントのタイプは、作成するプロセスのタイプによって異なります。

表6-1は、各プロセス・パターンのデフォルトの開始イベントと終了イベントを示しています。

表6-1 各プロセス・タイプのデフォルトの開始イベントおよび終了イベント

プロセス・タイプ デフォルトの開始イベント・タイプおよび終了イベント・タイプ

デフォルト・プロセス(Oracle BPM Studioのみ)

メッセージ開始および終了イベント

非同期サービス

メッセージ開始および終了イベント

同期サービス

メッセージ開始および終了イベント

手動プロセス

None開始および終了イベント


Oracle BPMでサポートされている様々なタイプのプロセスの詳細は、第5章「プロセスおよびプロセス・エディタの使用」を参照してください。

サブプロセスには、デフォルトでNone開始イベントおよびNone終了イベントが含まれています。これらは必須の開始イベントおよび終了イベントであり、変更できません。

イベント・サブプロセスには、デフォルトでメッセージ開始イベントおよびNone終了イベントが含まれています。ただし、処理するイベントのタイプに応じて、開始イベントを変更できます。

6.2.1.2 プロセス・インスタンスのトリガー方法の定義

Oracle BPMでは、プロセス・インスタンスをトリガーするために次の方法がサポートされています。

  • メッセージ、シグナルまたはタイマー開始イベントを使用。

  • None開始イベントを使用し、その後で受信タスクを使用。プロセス・インスタンスを作成するために受信タスクを構成する必要があります。

  • None開始イベントを使用し、その後でイニシエータ・パターンで定義したユーザー・タスクを使用。

6.2.1.3 1プロセスでの複数の開始イベントの使用

1つのBPMNプロセスに、複数の開始点を定義できます。複数の開始点を定義すると、使用される開始イベントに応じて、プロセス・インスタンスの複数の作成方法を指定できます。

図6-2は、メッセージ開始イベントとタイマー開始イベントの両方を含むプロセスの例を示しています。

図6-2 1プロセスでの複数の開始イベントの使用

図6-2の説明が続きます
「図6-2 1プロセスでの複数の開始イベントの使用」の説明

このプロセスは、他のプロセスまたはサービスから呼び出されたときにメッセージ・イベントを使用して開始できます。また、プロセス・インスタンスを自動的に作成する必要がある場合は、一定の時間間隔に基づいて開始することもできます。

複数の開始イベントを使用すると、2つの異なるプロセスを作成することなく、1つのプロセスが複数の方法で開始されるようにできます。

6.2.1.4 1プロセスでの複数の終了イベントの使用

終了イベントは、プロセス・パスの終わりを示します。プロセスに1つしか終了イベントがないときに、トークンがその終了イベントに到達すると、終了イベント到達時にプロセスが終了します。

複数の終了イベントを使用している場合は、1プロセス内で様々なトークンが様々なパスを経由する可能性があります。通常、パラレルなすべてのパスが終了イベントに達して初めてプロセスが完了します。

ただし、次のような特別な場合には、すべてのプロセス・パスが完了する前にプロセス・インスタンスが終了することがあります。

  • エラー終了イベント: エラー終了イベントに達すると、すべてのプロセス・アクティビティが停止します。エラー・スロー・イベントと同様に、エラー終了イベントでは、プロセスのフローが停止されます。詳細は、6.2.7項「エラー終了イベントの概要」を参照してください。

  • 強制終了イベント: 強制終了イベントが発生すると、プロセス上のすべての作業が即時に停止します。エラー処理や、その他の実行中プロセスのクリーン・アップは行われません。詳細は、6.2.9項「強制終了イベントの概要」を参照してください。

6.2.2 None開始イベントの概要

None開始イベントは、インスタンス・トリガーが定義されていないときに使用します。プロセスで必要な開始イベントが不明な場合、または開始イベントが後でプロセス開発者によって定義および実装される場合、プロセス・アナリストはNone開始イベントをプレースホルダとして使用できます。

図6-3は、None開始イベントのデフォルトの表記を示しています。

図6-3 None開始イベント

図6-3の説明が続きます
「図6-3 None開始イベント」の説明

None開始イベントは、プロセス・インスタンスが別のフロー・オブジェクトで作成される場合に、プロセスの始まりを指定するためにも使用されます。None開始イベントはプロセス・インスタンスの作成をトリガーしませんが、次に示すフロー・オブジェクトを使用してプロセス・インスタンスをトリガーするときに必要です。

  • 受信タスク。受信タスクでは、「インスタンスの作成」プロパティがtrueに設定されている必要があります。

  • イニシエータ・パターンで実装されたユーザー・タスク

他の開始イベントと同様に、None開始イベントも受信シーケンス・フローを含むことはできません。含むことができるのは、デフォルトの送信シーケンス・フローのみです。


注意:

Noneイベントは、サブプロセスの開始を定義するときに常に使用されます。

6.2.2.1 コンテキスト内のNone開始イベント

図6-4は、営業見積サンプル・プロジェクト内のNone開始イベントの例を示しています。この例では、None開始イベントによってプロセスの開始が定義されています。また、プロセスにはイニシエータ・パターンを使用して実装されたユーザー・タスクが含まれているため、None開始イベントによってプロセス・インスタンスがトリガーされます。

図6-4 営業見積サンプル・プロセス内のNone開始イベント

図6-4の説明が続きます
「図6-4 営業見積サンプル・プロセス内のNone開始イベント」の説明

この例では、プロセス・インスタンスは見積入力ユーザー・タスクによって作成されます。このユーザー・タスクは、イニシエータ・パターンを使用して実装されています。

6.2.2.2 データ・アソシエーション

None開始イベントでは、プロセスの入力引数を受け入れません。

6.2.3 メッセージ開始イベントの概要

メッセージ開始イベントは、メッセージを受信するとプロセス・インスタンスをトリガーします。このメッセージは、別のBPMNまたはBPELプロセス、あるいはサービスから送信されます。

メッセージとは、プロセス間で情報を交換するために使用されるタイプのデータです。データ・オブジェクトが、プロジェクト内で使用されるデータを定義するために使用されるのと同様に、メッセージは、プロセス間またはプロセスとサービスとの間で使用されるデータを定義するために使用されます。

図6-5は、メッセージ開始イベントのデフォルトの表記を示しています。

図6-5 メッセージ開始イベント

図6-5の説明が続きます
「図6-5 メッセージ開始イベント」の説明

他の開始イベントと同様に、メッセージ開始イベントには受信シーケンス・フローを含めることができません。メッセージ開始イベントには、デフォルトの送信シーケンス・フローが必要です。

他のプロセスやアプリケーションがプロセスを起動できるように、BPMNプロセスをサービスとして公開できます。プロセスをサービスとして公開するには、プロセスをメッセージ開始イベントで開始する必要があります。詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』の「他のBPMNプロセスおよびサービスとの通信」を参照してください。

6.2.3.1 コンテキストにおけるメッセージ開始イベント

図6-6は、営業見積プロセスの修正バージョンを示しています。ここでは、プロセスは、プロセス・インスタンスを開始するメッセージ開始イベントから開始されています。

図6-6 営業見積サンプル・プロセス内のメッセージ開始イベント

図6-6の説明が続きます
「図6-6 営業見積サンプル・プロセス内のメッセージ開始イベント」の説明

6.2.3.2 プロセスの入力引数と出力引数の使用

メッセージ開始イベントを使用すると、プロセスに対して入力引数および出力引数を指定できます。これらの引数では、他のプロセスやサービスがプロセスを呼び出すときに送信する必要があるメッセージが定義されます。

6.2.4 シグナル開始イベントの概要

シグナル開始イベントは、別のプロセスまたはサービスからの通信に基づくという点でメッセージ開始イベントに似ています。ただし、メッセージ開始イベントは、特定のプロセスに送信されたメッセージに応答します。対照的に、シグナル開始イベントは複数のプロセスにブロードキャストされたシグナルに対するレスポンスです。

シグナルは、BPMNプロセスからシグナル・スロー・イベントを使用してブロードキャストできます。シグナル・スロー・イベントとシグナル開始イベントを組み合せて使用すると、複数のプロセスを同時に起動できます。

シグナル開始イベントとシグナル・スロー・イベントは、通常、プロセス開発者によってプロセスに追加されます。シグナル・スロー・イベントの実装の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』の「シグナル・イベントを使用したプロセス間の通信の概要」を参照してください。

図6-7は、シグナル開始イベントのデフォルトの表記を示しています。

図6-7 シグナル開始イベント

図6-7の説明が続きます
「図6-7 シグナル開始イベント」の説明

6.2.4.1 コンテキストにおけるシグナル開始イベント

シグナル開始イベントおよびシグナル・スロー・イベントは、通常、プロセス開発者によってプロセスに追加され、実装されます。

6.2.5 タイマー開始イベントの概要

タイマー開始イベントは、特定の時間条件に基づいてプロセス・インスタンスの作成をトリガーします。タイマー開始イベントは、次の内容に基づいてプロセス・インスタンスをトリガーするように構成できます。

  • 特定の日付および時刻。たとえば、12月31日の午後11時59分にプロセスをトリガーできます。

  • 繰返し間隔。たとえば、10時間ごと、5分ごと、32秒ごとにプロセスをトリガーできます。

図6-8は、タイマー開始イベントのデフォルトの表記を示しています。

図6-8 タイマー開始イベント

図6-8の説明が続きます
「図6-8 タイマー開始イベント」の説明

6.2.6 None終了イベントの概要

None終了イベントは、プロセス・パスの終わりを示すために使用します。トークンは、None終了イベントに到達すると消費されます。プロセス・インスタンス内に他のトークンがない場合は、インスタンスが完了します。

None終了イベントは、プロセス完了後にアクションを実行する必要がない場合に使用します。また、このイベントは、後で実装時にプロセス開発者が変更するためのプレースホルダとして、プロセス・アナリストが使用することもできます。

図6-9は、None終了イベントのデフォルトの表記を示しています。

図6-9 None終了イベント

図6-9の説明が続きます
「図6-9 None終了イベント」の説明

None終了イベントは、サブプロセスおよびイベント・サブプロセスの終わりを示すときに常に使用されます。

6.2.6.1 コンテキスト内のNone終了イベント

図6-10は、営業見積サンプル・プロセス内のNone終了イベントの例を示しています。この例では、営業見積サービス・タスクを使用して、営業見積に関する情報をデータベースに保存するタスクを実行しています。

図6-10 営業見積サンプル・プロセス内のNone終了イベント

図6-10の説明が続きます
「図6-10 営業見積サンプル・プロセス内のNone終了イベント」の説明

トークンがプロセスの終わりに到達した場合は、他の作業を実行できないようにする必要があるため、None終了イベントが使用されています。プロセス・トークンがすべてNone終了イベントに到達すると、プロセス・インスタンスが完了します。

6.2.7 エラー終了イベントの概要

エラー終了イベントは、なんらかのエラー状態が原因でプロセスを終了する場合に使用します。

通常、エラー終了イベントは、エラー境界イベントとともに使用します。エラー境界イベントは、特定のエラーに基づいてプロセス・フローを変更するために使用します。通常、エラー境界イベントを使用したフローは、エラー終了イベントを使用して終了します。エラー中間イベントの使用方法の詳細は、6.8.3項「エラー・キャッチ・イベントの概要」を参照してください。

図6-11は、エラー終了イベントのデフォルトの表記を示しています。

図6-11 エラー終了イベント

図6-11の説明が続きます
「図6-11 エラー終了イベント」の説明

エラー終了イベントの実装の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』を参照してください。

6.2.8 メッセージ終了イベントの概要

メッセージ終了イベントは、プロセス完了時に他のプロセスやサービスにメッセージを送信するために使用します。メッセージ終了イベントは、常にメッセージ開始イベントまたはメッセージ・キャッチ・イベントとともに使用します。


注意:

複数の終了イベントを持つプロセスを作成する場合は、メッセージ終了イベントに到達するすべてのトークンがメッセージ開始イベントによって作成されることを確認する必要があります。たとえば、タイマー開始イベントによって開始されたプロセス・インスタンスを終了するためにメッセージ終了イベントを使用することはできません。

図6-12は、メッセージ終了イベントのデフォルトの表記を示しています。

図6-12 メッセージ終了イベント

図6-12の説明が続きます
「図6-12 メッセージ終了イベント」の説明

メッセージ・スロー・イベントの実装方法の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』の「メッセージ・イベントを使用した、他のBPMNプロセスおよびサービスとの通信」を参照してください。

6.2.9 強制終了イベントの概要

強制終了イベントは、即時にプロセスを終了するために使用します。強制終了イベントに到達すると、プロセスは即時に終了します。エラー処理や、追加のクリーン・アップは行われません。

6.3 プロセスへのユーザー相互作用の追加

ほとんどのビジネス・アプリケーションでは、組織内のプロセス参加者からの相互作用が必要です。相互作用は、フォームに情報を入力するなどの単純な操作の場合や、複数のワークフローおよび複数のユーザーが関与する場合があります。

この項では、プロセス参加者がビジネス・プロセスと相互作用する方法をモデリングするために使用されるBPMNフロー・オブジェクトについて説明します。

6.3.1 ヒューマン・ワークフローの概要

多くのエンドツーエンドのビジネス・プロセスでは、プロセスとユーザーとの相互作用が必要です。承認、例外管理、ビジネス・プロセスを進めるために必要なアクティビティの実行などにユーザーの相互作用が必要となります。

Oracle Human Workflowでは、次の機能によってユーザーの参加が包括的にサポートされます。

  • 適切なユーザーまたはグループに対するタスクの割当ておよびルーティングを含む、プロセスとユーザーとの相互作用

  • タスク(ヒューマン・アクティビティ)が適切なタイミングで実行されることを保証するために必要な期限、エスカレーション、通知およびその他の機能

  • プロセス参加者が各自のタスクを実行するときの生産性を向上するために必要な組織、フィルタ、優先順位付けおよびその他の機能

  • スーパーバイザおよびビジネス所有者がタスクのパフォーマンスを管理するために必要なレポート、再割当て、ロード・バランシングおよびその他の機能

詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。

6.3.1.1 ヒューマン・タスクの概要

ヒューマン・タスクは、Oracle Human Workflowのコンポーネントの1つです。ヒューマン・タスクを使用すると、エンドツーエンドのプロセス・フロー内のシステムおよびサービスとの接続を使用して、ユーザーの相互作用をインタリーブできます。ヒューマン・タスクの役割は、ビジネス・プロセスに参加しているユーザーおよびグループのすべての相互作用を処理することです。これを行うために、組織内で該当するユーザーのタスクを作成して追跡しています。ユーザーは通常、ワークリスト・アプリケーション、電子メール、ポータル、カスタム・アプリケーションなどの各種クライアントを通じてタスクにアクセスします。

プロセス開発者は、ヒューマン・タスクを使用して、Oracle BPMおよびSOA Suiteを使用して作成されたプロセスベースのアプリケーションとプロセス参加者との相互作用の方法を定義できます。

プロセス開発者はヒューマン・タスクを使用して次の要素を作成することで、エンド・ユーザー相互作用のインタフェースとワークフローを定義できます。

ヒューマン・タスクは、同じUIを使用する他のプロセス内で使用できる再使用可能なサービスです。

  • ロールと割当て

  • 期限とエスカレーション

  • プレゼンテーション

ヒューマン・タスクはOracle BPM Studioを使用して作成します。


注意:

Business Process Composerでは、BPM Studioで作成したプロジェクトやプロジェクト・テンプレートでヒューマン・タスクを使用できます。Business Process Composerでヒューマン・タスクを作成または編集することはできません。

6.3.2 ユーザー・タスクの概要

ユーザー・タスクは、プロセス内で、プロセス参加者が作業を実行する必要がある部分を表します。ユーザー・タスクは、フォームへの入力などの単純な相互作用である場合もあれば、複数のプロセス参加者からの入力を必要とする複雑なワークフローの一部である場合もあります。

図6-13は、ユーザー・タスクのデフォルトの表記を示しています。

図6-13 ユーザー・タスク

図6-13の説明が続きます
「図6-13 ユーザー・タスク」の説明

Oracle BPM Suiteでは、プロセス参加者はOracle BPM WorkSpaceを使用してビジネス・アプリケーションと相互作用を行います。プロセス参加者に対して表示される画面やパネルなどの具体的なユーザー・インタフェース要素は、Oracle Human Tasksを使用して作成します。

プロセスの設計時には、多くの場合、プロセス・アナリストの作業はユーザー・タスクをプロセス図に追加するだけで完了です。その後、プロセス開発者が必要なヒューマン・タスクを作成し、プロセスベースのビジネス・アプリケーション作成の構成要素として実装します。

トークンがユーザー・タスクに到達すると、対応するヒューマン・タスクが実行されます。トークンは、ヒューマン・タスクが完了するまで待機してから、次のフロー・オブジェクトに移動します。

ユーザー・タスクの実装方法の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』の「ヒューマン・タスクの使用」を参照してください。

他のフロー・オブジェクトと同様、ユーザー・タスクには受信および送信データ・アソシエーションを含めることができます。

また、ユーザー・タスクには、受信シーケンス・フローおよびデフォルトの送信シーケンス・フローを含めることもできます。


注意:

Business Process Composerでは、Oracle BPM Studioでプロジェクト・テンプレートの構成要素として作成したユーザー・タスクにヒューマン・タスクを割り当てる操作のみを実行できます。新規ヒューマン・タスクの作成や既存ヒューマン・タスクの編集を行うことはできません。

6.3.2.1 コンテキスト内のユーザー・タスク

営業見積のデモ・プロセスでは、見積入力タスク(図6-14を参照)は見積情報を入力する作業を表します。

図6-14 見積入力ユーザー・タスク

図6-14の説明が続きます
「図6-14 見積入力ユーザー・タスク」の説明

エンド・ユーザーが営業見積に関する情報を入力すると、プロセス・フローは送信シーケンス・フローに従ってプロセス内の次のフロー・オブジェクトに移動します。

6.3.2.2 対話型アクティビティの使用

Oracle BPM Studioを使用すると、対話型アクティビティをコンポーネント・パレットからプロセスに直接追加できます。対話型アクティビティは、Oracle Human Workflowのタスク・ルーティング機能および承認機能に基づくショートカットです。詳細は、Oracle Fusion Middleware Oracle SOA Suite開発者ガイドのヒューマン・ワークフローの概要を参照してください。


注意:

対話型アクティビティは、Business Process Composerのコンポーネント・パレットからは利用できません。Business Process Composerを使用してユーザーの相互作用をモデリングするには、プロセスに一般的なユーザー・タスクを追加します。対話型アクティビティは、後でプロセス開発者がOracle BPM Studioを使用して実装できます。

表6-2は、Oracle BPM Studioのコンポーネント・パレットから利用できる対話型アクティビティを示しています。

表6-2 対話型アクティビティ

パターン 説明

複合

ヒューマン・タスク内に定義されている複雑なルーティング・フローを使用します。

管理

スイムレーンに割り当てられたグループまたはロールに属するプロセス参加者の管理チェーン・パターンに割当て先を設定する管理チェーン・パターンを使用します。

FYI

割当てはスイムレーンに定義された参加者、ロールまたはグループに基づきます。FYIアクティビティはユーザー対話型アクティビティに類似していますが、完了を待機せずに処理を続行する点が異なります。

グループ

グループ投票パターンを使用します。割当て先はレーンに関連付けられたロールまたはグループに自動的に設定されます。対話型アクティビティはロールまたはグループに関連付けられたスイムレーンにのみ追加できます。

イニシエータ

イニシエータ・パターンは、プロセス・インスタンスを作成するために使用します。


6.3.2.3 プロジェクト・テンプレートでのユーザー・タスクの使用

Oracle BPM Studioを使用して、ヒューマン・タスクをビジネス・カタログに追加します。プロセス・アナリストは、プロジェクト・テンプレートから作成されたプロジェクトを使用するときに、Business Process Composerでこれらのヒューマン・タスクを使用できます。


注意:

Business Process Composerを使用してヒューマン・タスクを作成または編集することはできません。ヒューマン・タスクは、Oracle BPM Studioを使用して作成します。

ユーザー・タスクをプロジェクト・テンプレートに追加してBusiness Process Composer内で使用する場合、次のガイドラインに従う必要があります。

  • プロセス開発者は、Business Process Composerでテンプレートを使用する前に、必要なすべてのヒューマン・タスク・サービスをOracle BPM Studioで作成する必要があります。ヒューマン・タスクは、ユーザー・タスク内に実装することも、プロジェクト・テンプレートに基づいてプロジェクトを編集するときに実装することもできます。

  • ただし、プロジェクト・テンプレート内でシールされたユーザー・タスクに対してヒューマン・タスク・サービスを実装する場合は、Business Process Composerでプロジェクト・テンプレートを使用する前にも実装を行う必要があります。

6.3.3 手動タスクの概要

手動タスクは、Oracle BPMのスコープ外のプロセス参加者が実行するタスクを表します。手動タスクはプロセス内のプレースホルダとして使用され、実行時にBPMNサービス・エンジンによって管理されない作業を示します。また、手動タスクはWorkSpaceアプリケーションには表示されません。


注意:

手動タスクはOracle BPMによって管理されません。Oracle BPMランタイムでは、手動タスクの開始および完了は追跡されません。

図6-15は、手動タスクのデフォルトの表記を示しています。

図6-15 手動タスク

図6-15の説明が続きます
「図6-15 手動タスク」の説明

手動タスクでは、デフォルト受信シーケンス・フローとデフォルト送信シーケンス・フローをそれぞれ1つのみ使用できます。

多くのBPMNフロー・オブジェクトと異なり、手動タスクではデータ・オブジェクトを操作できません。以前のフロー要素に関連付けられたデータ・オブジェクトはそのままの状態で次のフロー要素に渡されます。

6.3.3.1 コンテキスト内の手動タスク

営業見積サンプル・プロセスのコンテキストでは、図6-16に示すように正式な契約書を印刷して署名するための手動タスクを追加できます。

図6-16 手動タスクの例

図6-16の説明が続きます
「図6-16 手動タスクの例」の説明

この例では、正式な契約書への署名をビジネス・プロセスの一部として明示的に示す必要がありますが、署名はBPMNサービス・エンジンによって管理されないため、手動タスクが使用されています。

6.4 他のプロセスおよびサービスとの通信

Oracle BPMでは、プロセス指向アプリケーション内のビジネス・プロセス間の相互作用を定義できます。以降の項では、プロセス間の通信のモデリングに使用されるBPMNフロー・オブジェクトについて説明します。

この項では、Business Process Composerを使用してプロセス・モデルを作成する場合のこれらのフロー・オブジェクトの使用方法について説明します。プロセスベースのアプリケーションにおけるこれらのフロー・オブジェクトの実装方法の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』を参照してください。

6.4.1 サービス・タスクの概要

サービス・タスクを使用すると、他のプロセスおよびサービスと通信できます。プロセス・アナリストは、プロセスで外部サービスまたは外部プロセスを呼び出す必要がある場合、サービス・タスクを追加できます。

その後、プロセス開発者は必要なサービスを実装できます。サービス・タスクを使用して、次を呼び出すことができます。

  • 他のBPMNプロセス

  • BPELプロセス

  • SOAサービス・アダプタ

  • サービスとして公開されているメディエータ

サービス・タスクの動作は、送信タスクと受信タスクのペアの動作、およびメッセージ・スロー・イベントとメッセージ・キャッチ・イベントのペアの動作と似ています。主な違いは、サービス・タスクがプロセスおよびサービスを同期的に起動するために使用される点です。サービス・タスクがプロセスやサービスを起動すると、レスポンスが返されるまで、トークンはサービス・タスクで待機します。レスポンスを受信した後、トークンはプロセス内の次のシーケンス・フローに移動します。

サービスおよびBPMNプロセスを使用したサービス・タスクの実装方法の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』の「サービス・タスクを使用した、サービスおよびBPMNプロセスの同期操作の起動」を参照してください。

図6-17は、サービス・タスクのデフォルトの表記を示しています。

図6-17 サービス・タスク

図6-17の説明が続きます
「図6-17 サービス・タスク」の説明

6.4.1.1 コンテキスト内のサービス・タスク

図6-18は、完成した営業見積をデータベースに保存するために使用されるサービス・タスクの例を示しています。

図6-18 営業見積サンプル・プロセス内のサービス・タスク

図6-18の説明が続きます
「図6-18 営業見積サンプル・プロセス内のサービス・タスク」の説明

6.4.1.2 プロジェクト・テンプレートでの再使用可能なサービスの実装

Oracle BPMを使用すると、プロジェクト・テンプレートに再使用可能なサービスを統合できます。これらのサービスは、ビジネス・カタログのコンポーネントです。

6.4.2 コール・アクティビティの概要

コール・アクティビティを使用すると、再使用可能なプロセスを現在のプロセス内からコールできます。被コール側プロセスは、コール側プロセスの子プロセスになります。再使用可能なプロセスをコールしている場合、親プロセスのコール・アクティビティは、子プロセスが完了するまで待機してから処理を続行します。

図6-19は、コール・アクティビティのデフォルトの表記を示しています。

図6-19 コール・アクティビティ

図6-19の説明が続きます
「図6-19 コール・アクティビティ」の説明

親プロセスのデータ・オブジェクトは、再使用可能なプロセスに対して自動的に使用可能になりません。データ・オブジェクトは、コール・アクティビティの引数マッピングを使用して、子プロセスとの間で受け渡す必要があります。

6.4.2.1 再使用可能なプロセス

Oracle BPMでは、再使用可能なプロセスというプロセス・タイプをサポートしています。BPMN用語では、再使用可能なサブプロセスと呼ばれることもあります。再使用可能なプロセスを使用すると、別のBPMNプロセスからコールできるプロセスを作成できます。

再使用可能なプロセスを使用すると、別のBPMNプロセスからコールできるプロセスを作成できます。たとえば、すべてのプロセスにクレジット・カード払いが必要な場合は、再使用可能なクレジット・カード払いのサブプロセスを作成できます。

再使用可能なプロセスには、次の特性があります。

  • 単一のNone開始イベントで開始する必要があります。

  • 複数の終了イベントを含めることができます。

  • コールできるのは、別のBPMNプロセスのみです。

6.4.2.2 再使用可能なプロセスをコールする際のコール・アクティビティの動作

次の図は、制御フローが子プロセスに渡されてから親プロセスに戻るまでの手順を示しています。

  1. トークンが親プロセスのコール・アクティビティに到達します。

  2. 子プロセスの新規インスタンスが作成されます。

  3. 子プロセスでは、終了イベントに到達するまで、またはエラーが発生するまで実行が継続されます。

  4. プロセス・フローが親プロセスのコール・アクティビティに戻ります。

  5. メイン・プロセスのフローが続行されます。

6.4.3 送信タスクの概要

送信タスクでは、現在のプロセス外部のシステムまたはプロセスにメッセージが送信されます。このメッセージが送信されると、タスクは完了し、プロセスの実行はプロセス・フロー内の次のタスクに移動します。

多くの場合、送信タスクは受信タスクと組み合せて使用され、プロセスまたはサービスを起動してレスポンスを受信します。送信タスクおよび受信タスクは非同期的にプロセスおよびサービスを起動するために使用します。プロセスおよびサービスを同期的に起動する場合は、サービス・タスクを使用します。


注意:

送信タスクおよび受信タスクでは、メッセージ・スロー・イベントおよびメッセージ・キャッチ・イベントと同様の機能が実行されます。ただし、メッセージ開始イベントによって開始されるプロセスは、送信タスクを使用して起動できません。

図6-20は、送信タスクのデフォルトの表記を示しています。

図6-20 送信タスク

図6-20の説明が続きます
「図6-20 送信タスク」の説明

プロセスまたはサービスを起動するための送信タスクの実装の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』の「送信タスクおよび受信タスクを使用した、BPMNプロセスでの同期操作の定義」を参照してください。

6.4.3.1 コンテキスト内の送信タスク

プロセス間で通信するための送信タスクおよび受信タスクの使用方法の詳細は、第6章「送信タスクおよび受信タスクを使用した、プロセス間の通信」を参照してください。

6.4.4 受信タスクの概要

送信タスクとは対照的に、受信タスクでは、現在のプロセスの外部にあるシステムまたはプロセスからのメッセージを待機します。このメッセージが受信されると、タスクは完了し、プロセスの実行はプロセス・フロー内の次のタスクに移動します。

図6-21は、受信タスクのデフォルトの表記を示しています。

図6-21 受信タスク

図6-21の説明が続きます
「図6-21 受信タスク」の説明

プロセスまたはサービスを起動するための送信タスクの実装の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』の「送信タスクおよび受信タスクを使用した、BPMNプロセスでの同期操作の定義」を参照してください。

6.4.4.1 コンテキスト内の受信タスク

プロセス間で通信するための送信タスクおよび受信タスクの使用方法の詳細は、6.4.5項「送信タスクおよび受信タスクを使用した、プロセス間の通信」を参照してください。

6.4.4.2 受信タスクによるプロセスの開始

受信タスクを使用して、プロセスの開始をトリガーできます。これは、他のプロセスから送信タスクを使用してプロセスを起動する場合に役立ちます。

受信タスクを使用してプロセスを開始する場合は、次の条件を満たしている必要があります。

  • 受信タスクの前にNone開始イベントがあること。

  • プロセスに他の開始イベントが含まれていないこと。

  • 「インスタンスの作成」プロパティが有効であること。

次の項では、プロセス間の通信で送信タスクおよび受信タスクを使用する方法について説明します。

6.4.5 送信タスクおよび受信タスクを使用した、プロセス間の通信

送信タスクおよび受信タスクを使用すると、他のBPMNプロセスを起動して、起動したプロセスからメッセージを受信できます。受信タスクによって開始され、送信タスクを含むプロセスは、Oracle BPMアプリケーション内の他のプロセスやサービスから使用できるサービスとして公開されます。

図6-22は、送信タスクおよび受信タスクを使用してプロセスを起動し、レスポンスを受信する場合の基本的な動作の概要を示しています。

図6-22 送信タスクおよび受信タスクを使用した、プロセス間の通信

図6-22の説明が続きます
「図6-22 送信タスクおよび受信タスクを使用した、プロセス間の通信」の説明

次の手順は、送信タスクおよび受信タスクを使用してプロセス間で通信する場合のシナリオの例を示しています。

  1. プロセスAが起動されます。

  2. プロセスAのトークンが送信タスクに到達します。

  3. 送信タスクによって、プロセスBが起動されます。

    この動作は、送信タスクの実装によって定義されます。

  4. プロセスAのトークンは、プロセスの次のフロー・オブジェクトに進みます。

  5. 受信タスクによって、プロセスBのプロセス・インスタンスが開始されます。

    受信タスクには、「インスタンスの作成」プロパティが定義されている必要があります。6.4.4.2項を参照してください。

  6. 新しく作成されたトークンがプロセスBに沿って進みます。

  7. プロセスの具体的な動作に応じて、次のシナリオが発生する場合があります。

    1. プロセスAのトークンが、プロセスBからの送信タスクとペアになっている受信タスクに到達すると、プロセスAのトークンはレスポンスを受信するまで待機します。レスポンスを受信した後、プロセスAのトークンは次のフロー・オブジェクトに移動します。

    2. プロセスBのトークンが、プロセスA内の受信タスクとペアになっている送信タスクに到達すると、プロセスBはプロセスAにレスポンスを送信します。プロセスBのトークンは、次のフロー・オブジェクトに移動します。

  8. 両方のプロセスが引き続き実行されます。この後に、さらに送信タスクと受信タスクのペアを使用して、2つのプロセス間での通信を定義できます。

6.4.6 メッセージ・スロー・イベントの概要

メッセージ・スロー・イベントを使用すると、他のプロセスまたはサービスにメッセージを送信できます。

図6-23は、メッセージ・スロー・イベントのデフォルトの表記を示しています。

図6-23 メッセージ・スロー・イベント

図6-23の説明が続きます
「図6-23 メッセージ・スロー・イベント」の説明

メッセージ・スロー・イベントを使用すると、次のタイプのプロセスおよびサービスを起動できます。

  • 他のBPMNプロセス

  • BPELプロセス

  • SOAサービス・アダプタ

  • サービスとして公開されているメディエータ

プロセス・アナリストは、プロセスにメッセージ・スロー・イベントを追加して、プロセスから他のプロセスやサービスを呼び出す必要がある位置を定義できます。ただし、他のプロセスとの接続の実装は、通常はプロセス開発者が担当します。また、メッセージ・スロー・イベントによって起動されるサービスの作成および実装も、通常はプロセス開発者が担当します。

メッセージ・スロー・イベントの実装方法の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』の「メッセージ・イベントを使用した、他のBPMNプロセスおよびサービスとの通信」を参照してください。

多くの場合、メッセージ・スロー・イベントは、他のプロセスのメッセージ開始イベントを呼び出すことによって他のBPMNプロセスを起動するために使用します。詳細は、6.2.3項「メッセージ開始イベントの概要」を参照してください。

また、多くの場合、メッセージ・スロー・イベントは、起動したプロセスまたはサービスからレスポンスを受信するメッセージ・キャッチ・イベントとともに使用します。ただし、メッセージ・スロー・イベントは常に非同期的に使用されます。メッセージ・スロー・イベントから他のプロセスまたはサービスにメッセージが送信された後、トークンは即時にプロセスの次のフロー・オブジェクトに移動します。

プロセスで同期的にレスポンスを受信する場合は、サービス・タスクを使用してプロセスまたはサービスを起動する必要があります。詳細は、6.4.1項「サービス・タスクの概要」を参照してください。


注意:

送信タスクおよび受信タスクでは、メッセージ・スロー・イベントおよびメッセージ・キャッチ・イベントと同様の機能が実行されます。ただし、メッセージ受信タスクによって開始されるプロセスをメッセージ・スロー・イベントを使用して起動することはできません。

6.4.7 メッセージ・キャッチ・イベントの概要

メッセージ・キャッチ中間イベントでは、別のプロセスまたはサービスからのメッセージを受信できます。

図6-24は、メッセージ・キャッチ・イベントのデフォルトの表記を示しています。

図6-24 メッセージ・キャッチ・イベント

図6-24の説明が続きます
「図6-24 メッセージ・キャッチ・イベント」の説明

多くの場合、メッセージ・キャッチ・イベントは、他のBPMNプロセスと通信するためのメッセージ・スロー・イベントとともに使用されます。メッセージ・スロー・イベントとメッセージ・キャッチ・イベントを組み合せて使用する方法の詳細は、6.4.8項を参照してください。

メッセージ・スロー・イベントの実装方法の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』の「メッセージ・イベントを使用した、他のBPMNプロセスおよびサービスとの通信」を参照してください。

6.4.8 メッセージのスローおよびキャッチを使用した、プロセス間の通信

スロー・イベントとキャッチ・イベントを組み合せて使用することによって、他のBPMNプロセスを起動したり、他のBPMNプロセスと通信できます。スロー・イベントを使用して他のプロセスを起動する場合は、次の条件を満たしている必要があります。

  • 起動されるプロセスは、非同期プロセスである必要があります。メッセージ・スローを使用して同期プロセスを起動することもできますが、起動したプロセスから同期的にメッセージをキャッチするメカニズムは用意されていません。

    同期プロセスを起動する場合は、サービス・タスクを使用する必要があります。詳細は、6.4.1項「サービス・タスクの概要」を参照してください。

  • 最初にスロー・イベントを使用する場合は、他のプロセスのメッセージ開始イベントとペアにする必要があります。これは、プロセス・インスタンスをトリガーするために必要となります。インスタンスがトリガーされた後は、2つ目のプロセスによってキャッチされる後続のメッセージ・スロー・イベントを使用できます。

メッセージ開始イベントで開始し、メッセージ終了イベントで終了するプロセスは、Oracle BPMアプリケーション内の他のプロセスやサービスから使用できるサービスとして公開されます。

プロセスから起動されたプロセスは、子プロセスであるとはみなされません。このことは、強制終了イベントをプロセスの終了点として使用するプロセスを設計する場合に重要となります。たとえば、コール側プロセスの終了イベントでは、メッセージ・スロー・イベントによって起動されたプロセスは停止しません。

図6-25は、スロー・イベントおよびキャッチ・イベントを使用してプロセスを起動し、レスポンスを受信する場合の基本的な動作を示しています。

図6-25 プロセス間でのメッセージのスロー・イベントおよびキャッチ・イベントの使用

図6-25の説明が続きます
「図6-25 プロセス間でのメッセージのスロー・イベントおよびキャッチ・イベントの使用」の説明

次の手順は、メッセージ・スロー・イベントおよびメッセージ・キャッチ・イベントを使用してプロセス間で通信を行う場合のシナリオの例を示しています。

  1. プロセスAが起動されます。

  2. プロセスAのトークンが、プロセスBを起動するように構成されているメッセージ・スロー・イベントに到達します。

  3. メッセージ・スロー・イベントからプロセスBのメッセージ開始イベントにメッセージが送信されます。

  4. プロセスAのトークンは、次のフロー・オブジェクトに進みます。

  5. メッセージ開始イベントによって、プロセスBのインスタンスがトリガーされます。

  6. 新しく作成されたトークンがプロセスBに沿って進みます。

  7. プロセスの動作に応じて、次のシナリオが発生する場合があります。

    1. プロセスAのトークンが、プロセスBからのスロー・イベントとペアになっているキャッチ・イベントに到達すると、プロセスAのトークンはメッセージを受信するまで待機します。メッセージを受信した後、プロセスAのトークンは次のフロー・オブジェクトに移動します。

    2. プロセスBのトークンが、プロセスAのキャッチ・イベントとペアになっているスロー・イベントに到達すると、プロセスBはプロセスAにメッセージをスローします。プロセスBのトークンは、次のフロー・オブジェクトに移動します。

  8. 両方のプロセスが引き続き実行されます。この後に、さらにキャッチ・イベントとスロー・イベントのペアを使用して、2つのプロセス間での通信を定義できます。

6.5 Oracle Business Rulesを使用したビジネス・ロジックの追加

この項では、ビジネス・ルール・タスクを使用してビジネス・プロセス内にOracle Business Rulesを取り込む方法について説明します。Business Process Composerを使用したOracle Business Rulesの利用の詳細は、第16章「Oracle Business Rulesの使用」を参照してください。

6.5.1 Oracle Business Rulesの概要

ビジネス・ルールは、ビジネス・ポリシーを表す文または重要なビジネスの意思決定を表す文です。

6.5.2 ビジネス・ルール・タスクの概要

ビジネス・ルール・タスクを使用すると、プロセス内にOracle Business Rulesを取り込むことができます。

図6-26は、ビジネス・ルール・タスクのデフォルトの表記を示しています。

図6-26 ビジネス・ルール・タスク

図6-26の説明が続きます
「図6-26 ビジネス・ルール・タスク」の説明

ビジネス・プロセス内にOracle Business Rulesを取り込むユース・ケースは、主に2つあります。

  • 構造ルールの使用

    構造ルールを使用すると、ビジネス・プロセス内で使用される計算を実行できます。たとえば、信用度を計算するためにビジネス・ルールを使用できます。

  • 運用ルールの使用

    運用ルールは、プロセスのフローを変更するために使用します。運用ルールの典型的な使用方法として、ルール・カタログ内のルール条件のチェックの実行があります。その後、出力データ・アソシエーションの一部として、式を使用してデータ・オブジェクトに値を割り当てます。

    このシナリオでは、ビジネス・ルール・タスクの直後にゲートウェイが配置されます。このゲートウェイは、データ・オブジェクトの値に従ってプロセス・パスを分岐するために使用されます。

    営業見積サンプル・プロジェクト内での操作ルールの使用方法の詳細は、6.5.2.1項「コンテキスト内のビジネス・ルール・タスク」を参照してください。

6.5.2.1 コンテキスト内のビジネス・ルール・タスク

図6-27は、営業見積サンプル・プロセス内のビジネス・ルール・タスクの例を示しています。

図6-27 営業見積サンプル・プロセス内のビジネス・ルール・タスク

図6-27の説明が続きます
「図6-27 営業見積サンプル・プロセス内のビジネス・ルール・タスク」の説明

6.6 シーケンス・フローを使用したプロセス・フローの制御

この項では、シーケンス・フローを使用してビジネス・プロセスの動作を定義する方法を説明します。

6.6.1 シーケンス・フローの概要

シーケンス・フローでは、プロセス内で作業が実行される順序(シーケンス)が定義されます。シーケンス・フローによって、プロセス内のフロー・オブジェクトが接続され、プロセス内でプロセス・トークンが移動するパスが特定されます。

受信シーケンス・フローは、フロー・オブジェクト内に移動するシーケンス・フローです。送信シーケンス・フローは、フロー・オブジェクトから外部に移動するプロセス・パスを特定するシーケンス・フローです。

多くのフロー・オブジェクトには、受信シーケンス・フローと送信シーケンス・フローの両方が含まれています。ただし、開始イベントと終了イベントは例外です。開始イベントで使用できるのは送信シーケンス・フローのみです。終了イベントで使用できるのは受信シーケンス・フローのみです。また、イベント・サブプロセスには、受信シーケンス・フローも送信シーケンス・フローも含まれません。

6.6.2 無条件シーケンス・フローの概要

無条件シーケンス・フローは2つのフロー・オブジェクト間の通常のパスです。デフォルト・シーケンス・フローは図6-28のように矢印線として表示されます。

図6-28 無条件シーケンス・フロー

図6-28の説明が続きます
「図6-28 無条件シーケンス・フロー」の説明

ほとんどのフロー・オブジェクトでは、デフォルト送信シーケンス・フローを1つのみ使用できます。プロセスのパラレル・パスを表す複数の無条件シーケンス・フローを使用できるのは、パラレル・ゲートウェイのみです。

排他ゲートウェイ、包含ゲートウェイおよび条件ゲートウェイには、無条件送信シーケンス・フローを使用できません。これらのゲートウェイでは、条件シーケンス・フローおよびデフォルト・シーケンス・フローを使用して、プロセスのフローを決定します。

6.6.3 条件シーケンス・フローの概要

条件シーケンス・フローは、特定の条件に基づいてプロセスのフローを制御するために使用します。無条件シーケンス・フローと同様に、条件シーケンス・フローは、矢印線として表示されます。

図6-29は、2つの送信条件シーケンス・フローと1つのデフォルト・シーケンス・フローを示しています。

図6-29 条件シーケンス・フローとデフォルト・シーケンス・フロー

図6-29の説明が続きます
「図6-29 条件シーケンス・フローとデフォルト・シーケンス・フロー」の説明

送信条件シーケンス・フローを使用できないフロー・オブジェクトもあります。送信条件シーケンス・フローを使用できるのは、次のタイプのゲートウェイのみです。

  • 排他ゲートウェイ

  • 包含ゲートウェイ

  • 条件ゲートウェイ

  • イベントベース・ゲートウェイ

条件シーケンス・フロー内で使用される条件は、式を使用して定義されます。式エディタを使用して式を定義する方法は、22.1項「Oracle BPMでの式の概要」を参照してください。

6.6.4 デフォルト・シーケンス・フローの概要

条件シーケンス・フローと同様に、デフォルト・シーケンス・フローは排他ゲートウェイ、包含ゲートウェイおよび条件ゲートウェイへの送信シーケンス・フローとして使用されます。デフォルト・シーケンス・フローは、いずれの条件もtrueと評価されない場合に、プロセスがこれらのゲートウェイから脱出するパスを表します。

デフォルト・シーケンス・フローは、図6-29のように一方の端にチック・マークが付いた矢印として表示されます。

6.7 ゲートウェイを使用したプロセス・フローの制御

この項では、ゲートウェイを使用してプロセスのフローおよび動作を制御する方法を説明します。

6.7.1 ゲートウェイの概要

ゲートウェイはプロセスのフローを定義するフロー要素です。ゲートウェイはトークンがプロセスを辿るパスを指定します。ゲートウェイはパスのスプリットとマージによってプロセス内の制御ポイントを定義します。

プロセスのデフォルト・パスに対する例外または逸脱となるパスには、可能なかぎりゲートウェイを使用します。

6.7.1.1 スプリットとマージのペア

次のゲートウェイにはスプリットとマージのペアが必要です。

  • パラレル・ゲートウェイ

  • 包含ゲートウェイ

  • 複合ゲートウェイ

これらのゲートウェイのいずれかをBPMNプロセスに追加すると、Oracle BPM Studioはスプリットとマージのフロー・オブジェクトを自動的に作成します。

ゲートウェイのマージ部分は常に必要となりますが、必ずしもスプリットされたすべてのパスをマージ部分に戻す必要はありません。

ゲートウェイでスプリットされたプロセス・パスのうち、ゲートウェイでマージされないものがあってもかまいませんが、通常はお薦めしません。ゲートウェイのマージ動作の詳細は、後述の各ゲートウェイ・タイプの項を参照してください。


注意:

プロセスからマージ・ゲートウェイを削除すると、対応するスプリットも削除されます。

6.7.2 排他ゲートウェイの概要

排他ゲートウェイを使用すると、プロセスを複数のパスにスプリットできます。ただし、複数の送信シーケンス・フローが存在する場合でも、プロセスが経由するパスは、これらのパスのうちの1つのみです。排他ゲートウェイでは、条件送信シーケンス・フローを使用でき、少なくとも1つのデフォルト送信シーケンス・フローが必要です。

プロセスが条件シーケンス・フローを経由するかどうかを決定するために使用される式を定義できます。プロセスに排他ゲートウェイに対する複数の送信シーケンス・フローがある場合、それらが評価される順序を定義できます。評価の順序は排他ゲートウェイのプロパティで構成されます。

複数の条件がtrueと評価される排他ゲートウェイがある場合、プロセスはこの順序によって決定される最初の条件シーケンス・フローを続行します。

排他ゲートウェイは、他のゲートウェイとは異なり、スプリット後、対応するマージをプロセス内に明示的に定義する必要はありません。

図6-30は、排他ゲートウェイのデフォルトの表記を示しています。

図6-30 排他ゲートウェイ

図6-30の説明が続きます
「図6-30 排他ゲートウェイ」の説明

6.7.2.1 コンテキスト内の排他ゲートウェイ

図6-31は、営業見積サンプル・プロセス内で使用されている排他ゲートウェイの例を示しています。ここでは、排他ゲートウェイは、ビジネス実行のレビューが必要であるかどうかを評価するために使用されます。

図6-31 営業見積サンプル・プロセス内の排他ゲートウェイ

図6-31の説明が続きます
「図6-31 営業見積サンプル・プロセス内の排他ゲートウェイ」の説明

この評価は、送信条件シーケンス・フローに定義された式によって決定されます。評価がtrueである場合、プロセス・フローは「はい」のパスを進みます。評価がfalseである場合、プロセス・フローは、デフォルト送信シーケンス・フローのパスを進みます。

6.7.2.2 排他ゲートウェイのスプリットとマージ

トークンが排他ゲートウェイに到達すると、送信条件シーケンス・フローの1つがtrueに評価されるまで、送信条件シーケンス・フローが評価されます。排他ゲートウェイのプロパティを構成することによって、送信条件シーケンス・フローが評価される順序を定義できます。この構成に基づいて、最初の条件シーケンス・フローの評価がtrueである場合、トークンはこの送信シーケンス・フローに従って次のフロー・オブジェクトに移動します。複数の送信条件シーケンス・フローがある場合は、それらの評価順序を決定できます。trueと評価される送信条件シーケンス・フローが存在しない場合、トークンはデフォルト送信シーケンス・フローに従って移動します。したがって、排他ゲートウェイには、デフォルト送信シーケンス・フローを定義する必要があります。

排他ゲートウェイでは受信シーケンス・フローもマージできます。ただし、プロセス・フロー内の他のパスから受信する可能性がある他のトークンと同期されません。


注意:

他のトークンが排他ゲートウェイのマージに到達した場合、そのトークンもそのまま次のフロー・オブジェクトに渡されます。トークンを同期する場合や、受信シーケンス・フローで評価を実行する場合は、別のタイプのゲートウェイを使用する必要があります。

6.7.3 包含ゲートウェイの概要

包含ゲートウェイを使用すると、プロセスを複数のパスにスプリットできます。ただし、排他ゲートウェイとは異なり、送信条件シーケンス・フローの評価結果に応じて、トークンは1つ以上のパスに移動する場合があります。

包含ゲートウェイのスプリットには、複数の送信条件シーケンス・フローを指定できます。また、少なくとも1つのデフォルト・シーケンス・フローを定義する必要があります。

図6-32は、包含ゲートウェイのスプリットのデフォルトの表記を示しています。

図6-32 包含ゲートウェイ(スプリット)

図6-32の説明が続きます
「図6-32 包含ゲートウェイ(スプリット)」の説明

図6-33は、包含ゲートウェイのマージのデフォルトの表記を示しています。

図6-33 包含ゲートウェイ(マージ)

図6-33の説明が続きます
「図6-33 包含ゲートウェイ(マージ)」の説明

6.7.3.1 包含ゲートウェイのスプリットとマージ

包含ゲートウェイでは、排他ゲートウェイと同様にプロセスがスプリットされますが、トークンが複数の送信シーケンス・フローを進むことができる点が異なります。トークンが包含ゲートウェイに到達すると、包含ゲートウェイの条件シーケンス・フローの式が評価されます。

次に、trueと評価された各条件シーケンス・フローに対してトークンが生成されます。トークンは、デフォルト・シーケンス・フローに対しても生成されます。

これらのトークンは、包含ゲートウェイのマージでマージされます。トークンがマージ・ゲートウェイに到達すると、スプリットによって生成されたすべてのトークンがマージに到達するまで待機します。これらすべてのトークンが包含ゲートウェイのマージに到達すると、マージが完了して、トークンはゲートウェイに続く次のシーケンス・フローに移動します。

6.7.4 パラレル・ゲートウェイの概要

パラレル・ゲートウェイを使用して、プロセスを複数のパスにスプリットすると、プロセス・フローがすべてのパス上を同時に進むようにできます。パラレル・ゲートウェイは、プロセスで複数のタスクをパラレルに実行する必要がある場合に便利です。

図6-34は、パラレル・ゲートウェイのスプリットのデフォルトの表記を示しています。

図6-34 パラレル・ゲートウェイ(スプリット)

図6-34の説明が続きます
「図6-34 パラレル・ゲートウェイ(スプリット)」の説明

図6-35は、パラレル・ゲートウェイのマージのデフォルトの表記を示しています。

図6-35 パラレル・ゲートウェイ(マージ)

図6-35の説明が続きます
「図6-35 パラレル・ゲートウェイ(マージ)」の説明

6.7.4.1 コンテキスト内のパラレル・ゲートウェイ

営業見積サンプル・プロセスでは、プロセスの承認ステージでパラレル・ゲートウェイを使用しています。図6-36 に、パラレル・ゲートウェイを使用して2つのプロセス・パスを同時に実行する方法を示します。

図6-36 パラレル・ゲートウェイの例

図6-36の説明が続きます
「図6-36 パラレル・ゲートウェイの例」の説明

この例では、2つの異なるプロセス・パスが同時に実行されます。

6.7.4.2 パラレル・ゲートウェイのスプリットとマージ

トークンがパラレル・ゲートウェイに到達すると、パラレル・ゲートウェイでは各送信シーケンス・フローのトークンが作成されます。パラレル・ゲートウェイのスプリットでは、送信シーケンス・フローは評価されません。

パラレル・ゲートウェイを使用して、パラレル・ゲートウェイによってスプリットされたプロセス・パスをマージすることもできます。パラレル・ゲートウェイのマージでは、各受信シーケンス・フローからのトークンの到着が待機されます。すべてのトークンが到着すると、1つのトークンのみが送信シーケンス・フローに渡されます。


注意:

パラレル・ゲートウェイのマージの各受信シーケンス・フローにトークンが到着するようにプロセスを設計する必要があります。このように設計しないと、到着しないトークンをマージで待機し続け、プロセスがフリーズする可能性があります。

6.7.5 複合ゲートウェイの概要

複合ゲートウェイでは、包含ゲートウェイと同様にプロセスがスプリットされます。ただし、複合ゲートウェイのマージにすべてのトークンが到着しない場合でもインスタンスを続行できる条件を定義できます。

たとえば、2つ以上のトークンが到達した後に続行する、複合ゲートウェイを構成できます。包含ゲートウェイの条件のうち2つのみがtrueと評価されると、プロセス・インスタンスは次のアクティビティに進みます。ただし、包含ゲートウェイではすべての条件シーケンス・フローが即時に評価されるため、これらのプロセス・パスのすべてのフロー・オブジェクトもすべて実行されます。

図6-37は、複合ゲートウェイのスプリットのデフォルトの表記を示しています。このアイコンは、包含ゲートウェイのスプリットのアイコンと同じです。

図6-37 複合ゲートウェイ(スプリット)

図6-37の説明が続きます
「図6-37 複合ゲートウェイ(スプリット)」の説明

図6-38は、複合ゲートウェイのマージのデフォルトの表記を示しています。

図6-38 複合ゲートウェイ(マージ)

図6-38の説明が続きます
「図6-38 複合ゲートウェイ(マージ)」の説明

6.7.6 イベントベース・ゲートウェイの概要

Event-based Gatewayを使用すると、イベントが発生する可能性に基づいてプロセス・フローを分岐できます。これは、コンテキストに応じて、様々なイベント・タイプの1つになります。

Event-based Gatewayでは、様々なタイプのイベントがプロセス内の特定の位置で発生する可能性を予想できます。これはExclusive Gatewayに類似していますが、式に基づいてパスを選択するのではなく、Event-based Gatewayではプロセス内でのイベントの発生に基づいてパスを選択します。

たとえば、注文処理プロセスでは、現在使用可能な在庫がない場合にプロセス内のある位置に移動できます。プロセスは、在庫が使用可能になるまで待機する必要がありますが、無限に待機することはできません。Event-based Gatewayを使用すると、プロセスは、(メッセージ・キャッチ・イベントを使用して)新しい在庫の到着を知らせるメッセージを待機したり、(タイマー・イベントを使用して)一定時間の経過後にメッセージを受信しない場合に処理を続行できます。

図6-39は、イベントベース・ゲートウェイのデフォルトの表記を示しています。

図6-39 イベントベース・ゲートウェイ

図6-39の説明が続きます
「図6-39 イベントベース・ゲートウェイ」の説明

イベントベース・ゲートウェイは、プロセス・フローに関する決定がデータ固有の条件ではなく、イベントに基づいている点が他のゲートウェイと異なります。

イベントベース・ゲートウェイは、次の要素から構成されます。

  • イベントベース・ゲートウェイ

  • 2つ以上のターゲット・イベント。これらのイベントには、次のタイプがあります。

    • メッセージ・キャッチ・イベント

      メッセージ・キャッチ・イベントを使用してプロセスを開始する場合は、メッセージ・スロー・イベントを使用してプロセスを起動する必要があります。

    • タイマー・キャッチ・イベント

      一般に、Event-based Gatewayに付随して単一のタイマー・イベントのみが使用されます。

    • 受信タスク

      Event-based Gatewayに付随して受信タスクを使用し、プロセス・インスタンスを開始できます。ただし、プロセスは、コール側プロセス内の送信タスクから起動する必要があります。


    注意:

    同じEvent-based Gateway内にメッセージ・イベントと受信タスクを混在させることはできません。

ターゲット要素には、イベントベース・ゲートウェイからの受信シーケンス・フローのみを含めることができます。プロセスの他の部分からのシーケンス・フローを含めることはできません。イベントベース・ゲートウェイでは、プロセスにおいて発生する可能性のあるイベントを複数設定できますが、プロセス・インスタンス内でトリガーされるのは1つのイベントのみです。イベントベース・ゲートウェイで最初のイベントがトリガーされると、そのイベントに続くパスが使用されます。

デフォルトで、プロセスにイベントベース・ゲートウェイを追加すると、タイマー・キャッチ・イベントおよびメッセージ・キャッチ・イベントも作成されます。


注意:

イベントベース・ゲートウェイを削除すると、すべての送信シーケンス・フローも削除されます。ただし、関連付けられたイベントは削除されません。

6.7.6.1 Event-based Gatewayを使用したプロセスの開始

プロセスの最初でEvent-based Gatewayを使用して新しいプロセス・インスタンスを作成することもできます。これはプロセス内に複数の開始イベントを保持するのと同じです。

Event-based Gatewayを使用可能にして新しいプロセス・インスタンスを作成するには、次のことを確認する必要があります。

  • Event-based GatewayのInitiateプロパティが有効であること。

  • Event-based Gatewayへの受信シーケンス・フローがないこと。

Event-based Gatewayは、新しいプロセス・インスタンスの作成に使用できますが、別のプロセスからのデータ入力は受け入れません。プロセス・インスタンスに渡す必要があるデータは、ターゲット・イベントを使用して構成する必要があります。

6.8 中間イベントを使用したプロセス・フローの制御

この項では、中間イベント、および中間イベントを使用してプロセスのフローおよび動作を制御する方法について説明します。

6.8.1 中間イベントの概要

開始イベントおよび停止イベントとは異なり、中間イベントはプロセス・フローの最中に発生します。

中間イベントには次の2つのタイプがあります。

  • 標準フロー・イベント

    標準フロー・イベントは、プロセスの標準のフローで発生します。

  • 境界イベント

    境界イベントは、プロセスの中断をトリガーします。境界イベントはフロー・オブジェクトに関連付けられており、これらのオブジェクトの通常の動作を中断するように構成できます。

    境界イベントは、プロセスが経由するフロー・オブジェクトのパスを特定するために使用されるという点で、シーケンス・フローと同様に動作します。

    境界イベントは、連続しないタイプおよび連続するタイプの2つのタイプに分類されます。

6.8.2 タイマー・キャッチ・イベントの概要

タイマー・キャッチ・イベントを使用すると、時間条件を使用してプロセスのフローを制御できます。次に、タイマー・キャッチ・イベントの使用例を示します。

  • アクティビティ実行の前に遅延を作成します。

  • アクティビティの期限を構成します。

  • プロセスの期限を構成します。

  • 一定時間経過後に追加のアクティビティをトリガーします。

図6-40は、タイマー・キャッチ・イベントのデフォルトの表記を示しています。

図6-40 タイマー・キャッチ・イベント

図6-40の説明が続きます
「図6-40 タイマー・キャッチ・イベント」の説明

タイマー・イベントは、アクティビティの境界イベントとして使用できます。タイマー・イベントは、連続しない境界イベントまたは連続する境界イベントとして定義できます。

連続しないタイマー・イベントが発生した場合、トークンはメイン・プロセス・フローを離れて、タイマーによって定義されたフローを進みます。連続しないタイマー・イベントによって定義されたフローは、メイン・プロセス・フローに直接戻ることができます。

連続するイベントが発生した場合は、トークンのコピーが作成され、タイマー・イベントによって定義されたフローに渡されます。連続するイベントによって定義されたフローからメイン・プロセス・フローに戻ることはできません。

6.8.3 エラー・キャッチ・イベントの概要

エラー・キャッチ・イベントは、プロセス・フロー内で発生したエラーを処理するために使用される中間イベントです。エラー・キャッチ・イベントは、常に境界イベントとして使用され、次のタスクやサブプロセスに添付できます。

  • サービス・タスク

  • ユーザー・タスク

  • 送信タスク

  • 受信タスク

  • スクリプト・タスク

  • ルール・タスク

  • イベント・サブプロセス

  • サブプロセス

エラー・キャッチ・イベントは常に割込みを実行します。つまり、このイベントによって、プロセスの標準フローが中断されます。

図6-41は、サービス・タスクに境界イベントとしてアタッチされたエラー・キャッチ・イベントのデフォルトの表記を示しています。

図6-41 サービス・タスクにおける境界イベントとしてのエラー・キャッチ・イベント

図6-41の説明が続きます
「図6-41 サービス・タスクにおける境界イベントとしてのエラー・キャッチ・イベント」の説明

サービスまたはプロセスでエラーが発生すると、エラー・キャッチ・イベントがトリガーされます。これにより、プロセス・フローはエラー・キャッチ・イベントの送信シーケンス・フローのパスに進みます。

このフローを使用して、エラーの処理方法を定義できます。エラーは、通常次の2通りの方法のいずれかで処理されます。

  • プロセス・フローが、メイン・プロセス・フローに戻ります。実行する必要があるすべての作業は、メイン・フローに戻る前にエラー・プロセス・フロー内で処理されます。


    注意:

    境界イベントが非割込みの場合、境界フローはメイン・フローに戻ることができません。

  • エラーからのプロセス・フローが、エラー・イベントで終了します。プロセスは即時に終了されます。プロセスの制御は、プロセスを開始したサービスまたはプロセスに渡されます。

6.9 サブプロセスを使用したプロセスの整理

Oracle BPMでは、サブプロセスは埋込みのサブプロセスとなります。サブプロセスは、親サブプロセスの一部として包含されます。サブプロセスは、None開始イベントで始まり、None終了イベントで終わる必要があります。

サブプロセスは開閉できます。図6-42は、プロセス内の閉じられたサブプロセスの表示を示しています。

図6-42 閉じられたサブプロセスの例

図6-42の説明が続きます
「図6-42 閉じられたサブプロセスの例」の説明

図6-43は、プロセス内の開かれたサブプロセスの表示を示しています。サブプロセスを開くと、サブプロセス内のフロー・オブジェクトを編集できます。また、サブプロセス・ウィンドウの端をクリックしてドラッグすると、ウィンドウのサイズを変更できます。

図6-43 開かれたサブプロセスの例

図6-43の説明が続きます
「図6-43 開かれたサブプロセスの例」の説明

他のタイプのプロセスと同様に、サブプロセスには開始イベントと終了イベントがあり、独自のフローが含まれています。サブプロセスは、None開始イベントで始まり、None終了イベントで終わる必要があります。サブプロセスには、スイムレーンは含まれません。

また、サブプロセスはアクティビティと同様に動作します。受信シーケンス・フローおよび送信シーケンス・フローを使用できます。また、サブプロセス内で使用されるデータ・オブジェクトを定義するデータ・アソシエーションが含まれています。

サブプロセスには、タイマー・イベント、メッセージ・イベントおよび境界イベントを含めることもできます。

必要に応じて、プロセスにはネストしたサブプロセスを含めることができます。ただし、ネストしたサブプロセスは、プロセスをわかりやすくするために必要な場合にのみ使用してください。

6.9.1 サブプロセスとシーケンス・フロー

サブプロセス内のフロー・オブジェクトには、サブプロセス外部のフロー・オブジェクトに接続するシーケンス・フローを含めることができません。

他のフロー・オブジェクトと同様に、サブプロセスには、受信シーケンス・フローおよび送信シーケンス・フローがあります。

6.9.2 コンテキスト内のサブプロセス

図6-44は、サブプロセスの例を示しています。この例では、サブプロセスは、営業見積の処理に使用されるサービス・タスクをグループ化するために使用されています。

図6-44 サブプロセスの例

図6-44の説明が続きます
「図6-44 サブプロセスの例」の説明

6.9.3 ループ・サブプロセス

プロセス・フローのコンテキスト内で、複数回繰り返すようにサブプロセスを構成できます。ループは、プロセスの設計時にプロセス・アナリストが検討する必要がありますが、実装は通常プロセス開発者が行います。

6.10 プロセス内のデータ・オブジェクトの値の変更

この項では、スクリプト・タスクを使用してプロセス内のデータ・オブジェクトの値を変更する方法について説明します。

6.10.1 スクリプト・タスクの概要

スクリプト・タスクは、プロセス内のデータ・オブジェクトの値を変更するために使用します。スクリプト・タスクは、値の変更をビジネス・プロセス内で明示的にモデリングする場合、または別のフロー・オブジェクトの外部でデータ・オブジェクトの値を変更する場合に使用します。多くの場合、スクリプト・タスクは、プロセス開始時にデータ・オブジェクトの初期値を設定するために使用します。

図6-45は、スクリプト・タスクのデフォルトの表記を示しています。

図6-45 スクリプト・タスク

図6-45の説明が続きます
「図6-45 スクリプト・タスク」の説明

通常、スクリプト・タスクは、プロセスおよびプロセスベースのアプリケーション内におけるデータ・オブジェクトの動作の定義を担当する、プロセス開発者がプロセスに追加します。

6.10.1.1 コンテキスト内のスクリプト・タスク

図6-46は、営業見積サンプル・プロセスの開始時に使用される2つのスクリプト・タスクの例を示しています。営業見積サンプル・プロセスでは、プロセスの開始時にデータ・オブジェクトに対して初期値を設定するスクリプト・タスク、およびいくつかのビジネス・インジケータに値を設定するスクリプト・タスクが使用されています。

図6-46 営業見積サンプル・プロジェクト内のスクリプト・タスク

図6-46の説明が続きます
「図6-46 営業見積サンプル・プロジェクト内のスクリプト・タスク」の説明

プロジェクト・データ・オブジェクトは、プロジェクト内に定義するデータ・オブジェクトであり、そのプロジェクト内のすべてのプロセスにはこれらのデータ・オブジェクトが定義されますが、実際の値はオブジェクトを使用するプロセスに応じて変化します。また、プロジェクトがビジネス・インジケータを使用するように構成されている場合には、ビジネス・インジケータとしてマークされたデータ・オブジェクトの値が、エンジンによってプロセス分析データベースに保存されます。

図6-47は、ビジネス・インジケータの初期値を設定するために使用されるデータ・アソシエーションを示しています。

図6-47 ビジネス・インジケータの設定スクリプト・タスクによって使用されるデータ・アソシエーション

図6-47の説明が続きます
「図6-47 ビジネス・インジケータの設定スクリプト・タスクによって使用されるデータ・アソシエーション」の説明

データ・アソシエーションを受け入れる他のフロー・オブジェクトと同様に、式を使用してデータ・オブジェクトの値を変更できます。図6-48は、割引プロジェクト変数の値を変更する場合の式の使用方法を示しています。

図6-48 割引プロジェクト変数の値の変更に使用される式

図6-48の説明が続きます
「図6-48 割引プロジェクト変数の値の変更に使用される式」の説明

6.11 測定マークを使用したプロセス・パフォーマンスの測定

測定マークを使用して、プロセス・パフォーマンスを測定できます。測定マークを使用すると、プロセス内の特定の位置、またはプロセスの特定のセクションにおいて、タイプが測定のビジネス・インジケータを測定できます。

測定マークおよびプロセス分析データベースの使用方法の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』の「プロセス分析の使用」を参照してください。

測定マークによって、プロセス分析データベースに次のデータが保存されます。

1つの測定マークを使用して、複数の測定ビジネス・インジケータを測定できます。

BPMNサービス・エンジンでは、測定ビジネス・インジケータの値が保存されるときに、プロセスに定義されたディメンションの値も保存されます。後でプロセスを監視するためにダッシュボードを構築するときに、これらのディメンションを使用して値を様々なカテゴリにグループ化できます。たとえば、営業見積プロセスでは、承認済見積金額の合計を地域ごとに表示できます。

定義できる測定マークのタイプは次のとおりです。

6.11.1 プロセスへの測定マークの追加方法

測定マークは、コンポーネント・パレットからプロセス・エディタ・キャンバスにドラッグすることによって、ビジネス・プロセスに追加できます。

単一測定マークをプロセスに追加するには:

  1. BPMNプロセスを開きます。

  2. コンポーネント・パレットで、「アーティファクト」セクションを開き、次のいずれかを選択します。

    • 「測定の開始」マーク

    • 「測定の終了」マーク

    • 「単一測定」マーク(スナップショット)

  3. ビジネス・インジケータを測定するシーケンス・フロー付近まで測定マークをドラッグします。シーケンス・フローが青色になったら、測定マークをドロップします。

  4. 測定マークを右クリックして、「プロパティ」を選択します。

  5. 「名前」テキスト・フィールドに、測定マークを識別するための名前を入力します。

  6. 「ビジネス・インジケータ」セクションで、使用可能なビジネス・インジケータのリストからビジネス・インジケータを選択し、2つのリストの間にある矢印を使用して「選択済」リストに移動します。


    注意:

    1つの測定マークで複数のビジネス・インジケータを測定できます。


    注意:

    ビジネス・インジケータを選択しない場合、この測定マークにはデフォルト・ビジネス・インジケータの値のみが保存されます。「測定マーク・プロパティ」ダイアログ・ボックスを開いた状態でビジネス・インジケータを追加するには、「選択済」リストの下にある「新規」ボタンをクリックします。

  7. 「OK」をクリックします。

6.12 ガイド付きビジネス・プロセスを使用したプロジェクトのマイルストンの設定

この項では、Business Process Composerでガイド付きビジネス・プロセスを使用する方法について説明します。

6.12.1 ガイド付きビジネス・プロセスの概要

ガイド付きビジネス・プロセスは、プロセス・フローのガイド付き視覚表現を提供します。プロセス参加者にビジネス・プロセスのカプセル化された階層ビューを提供することによって、ユーザーの操作性を向上します。

プロセス設計者は、ガイド付きビジネス・プロセスを使用することによって、プロセス参加者がプロセスに関連付けられた一連のガイド付き手順に従ってビジネス・プロセスを完了できるように設定できます。ガイド付きビジネス・プロセスには手順の概要が示されます。この手順に従うことによって、プロセス参加者はより少ないトレーニングでビジネス・プロセスを完了できるようになり、プロセスの結果もより予測可能になります。

6.12.1.1 アクティビティ・ガイドおよびマイルストンの概要

ガイド付きビジネス・プロセスは、ビジネス・プロセスに基づいたアクティビティ・ガイドとしてモデリングされます。アクティビティ・ガイドには、一連のマイルストンが含まれています。マイルストンには、プロセス参加者が完了する必要がある一連のタスクが含まれています。マイルストンに含まれている一連のタスクをユーザーが正常に実行すると、マイルストンが完了します。

各マイルストンは、ヒューマン・ワークフロー・タスクの特定のセットです。各ヒューマン・ワークフロー・タスクは、それ自体が、様々なロールの複数の参加者のコラボレーションを必要とするタスク・フローである場合があります。タスク・フローの内容によっては、参加者は未完了のタスク・フローをいったん保存して、後で再開することもできます。

6.12.2 ガイド付きビジネス・プロセスの使用

Business Process Composerを使用すると、ガイド付きビジネス・プロセスを構成して、それらにマイルストンを追加できます。

プロジェクトのアクティビティ・ガイドを構成するには:

  1. プロジェクト・ナビゲータで、アクティビティ・ガイドを構成するプロジェクトを開きます。

  2. 「アクティビティ・ガイド」を右クリックして、「構成」を選択します。

  3. アクティビティ・ガイドのタイトルを入力します。

  4. 次のオプションのプロパティを構成します。

    • 表示モード: ガイド付きビジネス・プロセス内のマイルストンおよびタスクにおけるリンクの表示方法を指定します。マイルストンおよびタスクで他の構成が使用される場合は、ガイド付きビジネス・プロセスの構成は無視されます。

      可能な値は次のとおりです。

      • 常時: このガイド付きビジネス・プロセスのすべてのマイルストンで、マイルストンおよびタスクのリンクを常に表示します。

      • インスタンス化時: ガイド付きビジネス・プロセスのすべてのマイルストンで、マイルストンの1つ以上のユーザー・タスクがインスタンス化されているときにのみ、マイルストンおよびタスクのリンクを表示します。

    • タスク・アクセス: タスクが完了した後、ガイド付きビジネス・プロセスではこの構成を使用してリンクが表示されます。タスク・モードが「アクティブのみ」の場合は、タスクのリンクがグレー表示されます。タスク・モードが「任意の状態」の場合は、タスクのリンクは有効なままになり、タスクを実行しようとしたときにメッセージが表示されます。

      可能な値は次のとおりです。

      • アクティブのみ: タスクへのリンクは、タスクがアクティブであり、ユーザーが更新可能なときにのみ有効になります。タスクを完了すると、タスクへのリンクはグレー表示されます。

      • 任意の状態: タスクへのリンクは、タスクをインスタンス化した後は常に有効になります。タスクを完了した後でも有効なままです。

    • ルート・プロセス: このアクティビティ・ガイドに使用されるプロセスを指定します。BPMプロジェクトごとに、1つのガイド付きビジネス・プロセスのみを定義できます。このプロセスが、ルート・プロセスです。

    • 説明: アクティビティ・ガイドのオプションの説明を指定します。

  5. プロジェクト・ツールバーで「保存」をクリックします。

新しいマイルストンを作成するには:

  1. プロジェクト・ナビゲータで、アクティビティ・ガイドを構成するプロジェクトを開きます。

  2. 「アクティビティ・ガイド」を右クリックして、「構成」を選択します。

  3. 「新規マイルストン」をクリックします。

  4. リストから、今作成したマイルストンを選択します。

  5. 必要に応じて、マイルストンを構成します。

  6. プロジェクト・ツールバーで「保存」をクリックします。

マイルストンにユーザー・タスクを追加するには:

  1. マイルストンを追加するプロセスを開きます。

  2. マイルストンに追加するユーザー・タスクを右クリックします。

  3. リストからマイルストンを選択して、「OK」をクリックします。