Cosminexus ビジネスプロセス管理/エンタープライズサービスバス V8 サービスプラットフォーム 開発ガイド

[目次][用語][索引][前へ][次へ]

6.6.15 並列処理アクティビティ

ビジネスプロセスの処理フローを二つ以上のシーケンスに枝分かれさせて並列実行するための定義をするアクティビティで,並列処理開始アクティビティと並列処理終了アクティビティの二つがあります。並列処理の開始個所には並列処理開始アクティビティを,複数のシーケンスの合流個所には並列処理終了アクティビティを配置します。

並列処理開始アクティビティから枝分かれさせて並列実行するシーケンスのうち,フォルト送出アクティビティで終了するシーケンスは,並列処理終了アクティビティに連結する必要はありません。また,並列処理開始アクティビティから枝分かれさせて並列実行するシーケンスがすべてフォルト送出アクティビティで終了する場合,並列処理終了アクティビティを配置する必要はありません。

並列処理アクティビティを利用した処理の並列実行について,次の図に示します。

図6-14 並列処理アクティビティを利用した処理の並列実行

[図データ]

並列処理開始アクティビティの下には複数のシーケンスを用意して,並列して処理を実行できます。なお,複数のシーケンス間での処理の順序を設定することもできます。

例えば,図6-14のA-1およびA-2が完了してからA-3を実行する場合,A-1およびA-2を連結元,A-3を連結先として,リンクコネクション(link1およびlink2)で連結します。さらに,A-1およびA-2の処理の終了に加えて,リンクの条件を設定してA-1およびA-2とA-3のリンクを制御することもできます。

図6-14の例の場合,連結先のA-3の処理は,次のような過程で開始されます。

  1. A-1およびA-2の処理が完了します。
  2. A-1およびA-2に設定されているリンクの条件が判定されます。
    A-1およびA-2のリンクの条件が判定されると,それぞれリンクコネクションlink1およびlink2が活性化します。リンクコネクションは,条件の判定結果によって真または偽に活性化します。なお,条件が設定されていない場合,リンクコネクションは,リンク元のアクティビティの処理が完了すると真に活性化します。
  3. A-3に連結されているすべてのリンクコネクションが活性化すると,A-3の処理が開始されます。
    ただし,すべてのリンクコネクションが偽に活性化している場合,A-3の処理は開始されないで省略されます。A-3の処理が開始されるのは,リンクコネクションのうち,少なくとも一つのリンクコネクションが真に活性化している場合です。

並列処理終了アクティビティ以降のアクティビティの処理は,並列処理された複数のシーケンスがすべて完了したあとに実行されます。

<この項の構成>
(1) 並列処理アクティビティの定義
(2) シーケンス間リンクの定義
(3) 定義時の注意事項

(1) 並列処理アクティビティの定義

並列処理アクティビティの定義の手順を次に示します。

  1. 並列処理開始アクティビティをキャンバスに配置します。
    アクティビティを配置する方法については,「6.4.1 アクティビティを配置する」を参照してください。
  2. 並列処理開始アクティビティから枝分かれするシーケンスの各アクティビティを配置・定義します。
    アクティビティを配置する方法については,「6.4.1 アクティビティを配置する」を,アクティビティを定義する方法は,「6.6 アクティビティの定義」の各アクティビティの説明を参照してください。
  3. 並列処理終了アクティビティをキャンバスに配置します。
    アクティビティを配置する方法については,「6.4.1 アクティビティを配置する」を参照してください。
  4. 並列処理開始アクティビティから並列処理終了アクティビティまでの各アクティビティを連結します。
    アクティビティを連結する方法については,「6.4.2(2) 連結の設定方法」を参照してください。
  5. 次のどちらかの方法で[並列処理アクティビティ]ダイアログを表示させます。
    • キャンバスの並列処理開始アクティビティをダブルクリックする
    • キャンバスの並列処理開始アクティビティを選択して右クリックし,[設定]を選択する
    [並列処理アクティビティ]ダイアログが表示されます。
  6. [並列処理アクティビティ]ダイアログに必要な情報を入力します。
    [並列処理アクティビティ]ダイアログの表示・入力内容の詳細については,マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.23 並列処理アクティビティダイアログ」を参照してください。複数シーケンス間のリンクの設定方法の詳細については,「6.6.15(2) シーケンス間リンクの定義」を参照してください。
  7. [OK]ボタンをクリックします。

(2) シーケンス間リンクの定義

並列に処理する複数のシーケンス間でのリンクの定義手順について次に示します。

  1. 次のどちらかの方法で[並列処理アクティビティ]ダイアログを表示させます。
    • キャンバスの並列処理開始アクティビティをダブルクリックする
    • キャンバスの並列処理開始アクティビティを選択して右クリックし,[設定]を選択する
    [並列処理アクティビティ]ダイアログが表示されます。
  2. 並列処理内で設定するリンクの数だけ,リンク名を入力します。
  3. [OK]ボタンをクリックし,[並列処理アクティビティ]ダイアログを閉じます。
  4. リンクさせるアクティビティを連結します。
    アクティビティを配置する方法については,「6.4.1 アクティビティを配置する」を参照してください。
  5. 次のどちらかの方法で[リンク]ダイアログを表示させます。
    • 手順4.で設定した連結線をダブルクリックする
    • 手順4.で設定した連結線を選択して右クリックし,[設定]を選択する
    [リンク]ダイアログが表示されます。
  6. [リンク]ダイアログに必要な情報を入力します。
    [リンク]ダイアログの表示・入力内容の詳細については,マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.24 リンクダイアログ」を参照してください。
    リンクの条件を設定する場合,[遷移条件設定]ボタンをクリックします。表示される[条件設定]ダイアログで,リンクの条件を設定できます。リンクの条件はXPath式で入力します。[条件設定]ダイアログの詳細については,マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.25 条件設定ダイアログ(並列処理アクティビティ)」を参照してください。
  7. [OK]ボタンをクリックします。

 

注意
並列処理開始アクティビティまたは分岐処理開始アクティビティからリンクが定義された場合,処理の流れは次の図のようになります。

図6-15 並列処理開始アクティビティまたは分岐処理開始アクティビティからリンクが定義された場合の処理の流れ

[図データ]

(3) 定義時の注意事項

注※1
アクティビティを元とするコネクション,およびあるアクティビティのあるフォルト処理の開始点を元とするコネクションについては,「図6-16 コネクションの例」を参照してください。

注※2
並列処理するシーケンスの終端がフォルト送出アクティビティの場合を除きます。