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

前
 
次
 

19 プロセス・フローの制御

この章では、プロセスでフローを制御するために使用できる様々なフロー・オブジェクトを簡単に説明します。ここでは、これらのフロー・オブジェクトの詳細について説明する章へのリンクも含まれています。また、サブプロセスに定義できるマーカーについても説明します。

この章の内容は次のとおりです。

19.1 プロセス・フローの制御の概要

Oracle BPMでは、プロセスのフローを制御するための様々な構造が提供されています。これらの構造によって、様々な状況に基づいてプロセス・インスタンスが使用するパスを決定できます。

プロセスのフローを制御できる構造は、次のとおりです。

19.1.1 ゲートウェイ

ゲートウェイは、プロセスのフローをブランチ化させることができるフロー・オブジェクトです。ゲートウェイのタイプに応じて、インスタンスはゲートウェイからの1つ以上の送信シーケンス・フローに従うか、複数のコピーが作成されてこれらのブランチをパラレルに実行します。

ゲートウェイの詳細は、6.7項「ゲートウェイを使用したプロセス・フローの制御」を参照してください。

19.1.2 タイマー・イベント

タイマー・イベントを使用すると、時間の条件に基づいてプロセス・インスタンスが使用するパスを定義できます。タイマー・イベントの詳細は、第20章「プロセスへの遅延、期限および時間ベースのサイクルの追加」を参照してください。

19.1.3 エラー

エラー・イベントでは、プロセスが異常な状態を処理する方法を定義できます。エラー・イベントを使用すると、ビジネス・プロセスで発生する場合がある各エラーに対して異なるプロセス・フローを定義できます。エラー・イベントの詳細は、第21章「エラーの処理」を参照してください。

19.1.4 メッセージ・イベント

メッセージ・イベントでは、特定のイベントの発生に基づいてプロセス・フローを定義できます。通常、メッセージ・イベントは、非同期で外部サービスまたは別のBPMNプロセスを起動する場合に使用します。メッセージ・イベントの詳細は、第22章「他のBPMNプロセスおよびサービスとの通信」を参照してください。

19.1.5 送信タスクおよび受信タスク

メッセージ・イベントでは、特定のイベントの発生に基づいてプロセス・フローを定義できます。通常、メッセージ・イベントは、非同期で外部サービスまたは別のBPMNプロセスを起動する場合に使用します。メッセージ・イベントの詳細は、第22章「他のBPMNプロセスおよびサービスとの通信」を参照してください。

19.1.6 ループ・マーカー

ループ・マーカーでは、特定の状態に基づいてサブプロセスを複数回実行できます。ループ・マーカーの詳細は、19.2項「サブプロセスのループ・マーカーおよびマルチインスタンス・マーカーの概要」を参照してください。

19.1.7 マルチインスタンス・ループ・マーカー

マルチインスタンス・ループ・マーカーでは、一連のデータの各要素に対してサブプロセスを実行できます。ループ・マーカーの詳細は、19.2項「サブプロセスのループ・マーカーおよびマルチインスタンス・マーカーの概要」を参照してください。

19.2 サブプロセスのループ・マーカーおよびマルチインスタンス・マーカーの概要

ループ・マーカーおよびマルチインスタンス・マーカーを使用して複数回実行するサブプロセスを構成できます。

ループ・マーカーおよびマルチインスタンス・マーカーを構成するには、サブプロセスを繰り返す方法を指定する式および条件を定義する必要があります。

ループ・マーカー

ループ・マーカーによって、条件に基づいてサブプロセスを複数回実行できます。サブプロセスの実行前または実行後に条件を評価するように、ループ・マーカーを構成できます。特定の反復回数後に停止するように、ループ・マーカーを構成することもできます。

ループ・マーカーを構成するには、BPMNサービス・エンジンがサブプロセスの繰返しを続行する必要があるかどうかを決定するループ条件を記述する必要があります。

マルチインスタンス・マーカー

マルチインスタンス・マーカーによって、データのセット上の各要素のサブプロセスを実行できます。BPMNサービス・エンジンがマルチインスタンス・ループ・マーカーを使用してサブプロセスを実行すると、インスタンスのセット、データのセット上の各要素のインスタンスが作成されます。パラレルまたは順番にこれらのインスタンスを処理するように、マルチインスタンス・マーカーを構成できます。

マルチインスタンス・ループ・マーカーの次のフィールドには、式を記述する必要があります。

19.2.1 ループ・マーカーの構成方法

ループ・マーカーを構成して、サブプロセスを複数回実行できます。

ループ・マーカーを構成するには:

  1. サブプロセスを右クリックします。

  2. 「プロパティ」を選択します。

  3. 「ループ特性」タブをクリックします。

  4. 「ループ」を選択します。

  5. 次のように、ループ条件を指定します。

    1. 式言語を選択します。

      使用可能なオプションは「シンプル」または「XPath」です。

    2. 下のテキスト領域に、ループを駆動する条件を記述します。

      オプションで、式ビルダーを使用して条件を記述できます。式ビルダーを起動するには、テキスト領域の横にある「式ビルダー」ボタンをクリックします。

  6. オプションで、次のように、実行するループの最大回数を指定できます。

    1. 「ループ最大」を選択します。

    2. 数字を指定します。

  7. 「次より前」を選択してフロー・オブジェクトの実行前に条件を評価するか、選択解除してフロー・オブジェクトの実行後に条件を評価します。

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

19.2.2 マルチインスタンス・マーカーの構成方法

マルチインスタンス・マーカーを構成して、データのセットに基づいてサブプロセスを複数回実行できます。

マルチインスタンス・マーカーを構成するには:

  1. サブプロセスを右クリックします。

  2. 「プロパティ」を選択します。

  3. 「ループ特性」タブをクリックします。

  4. 「MultiInstance」を選択します。

  5. 次のモードを選択します。

    • 順次: 次のトークンがサブプロセスの実行を開始する前に各トークンがサブプロセスを完了する必要があることを指定します。

    • パラレル: トークンがパラレルで実行されることを指定します。


    注意:

    パラレル・モードを使用するときは、サブプロセスの実行によって生成される情報の保存にプロセス・データ・オブジェクトを使用すると、インスタンスが情報を上書きする可能性があることを考慮してください。これを避けるには、サブプロセス・データ・オブジェクトを使用してください。


  6. 次のように、ループ・カーディナリティを指定します。

    1. 式言語を選択します。

      使用可能なオプションは「シンプル」または「XPath」です。

    2. 下のテキスト領域に、ループ・カーディナリティの指定を記述します。

      オプションで、式ビルダーを使用して条件を記述できます。式ビルダーを起動するには、テキスト領域の横にある「式ビルダー」ボタンをクリックします。

  7. オプションで、次のように、完了条件を指定できます。

    1. 式言語を選択します。

      使用可能なオプションは「シンプル」または「XPath」です。

    2. 下のテキスト領域に、ループが完了したかどうかを決定する条件を記述します。

      オプションで、式ビルダーを使用して条件を記述できます。式ビルダーを起動するには、テキスト領域の横にある「式ビルダー」ボタンをクリックします。

  8. データ出力を指定するには、「ループ・データ出力」フィールドの横にある「参照」ボタンをクリックします。

    データ・オブジェクトまたはサブプロセスに渡す複合データ・オブジェクトの属性を選択できます。通常、選択したデータ・オブジェクトはアイテムのコレクションです。

  9. データ入力を指定するには、「ループ・データ入力」フィールドの横にある「参照」ボタンをクリックします。

    データ・オブジェクトまたはサブプロセスの結果を割り当てる複合データ・オブジェクトの属性を選択します。

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