Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 基本開発編


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

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

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

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

図5‒23 並列処理アクティビティを利用した処理の並列実行

[図データ]

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

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

この場合,連結先の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つのリンクコネクションが真に活性化している場合です。

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

〈この項の構成〉

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

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

  1. 並列処理開始アクティビティをキャンバスに配置します。

    アクティビティを配置する方法については,「5.4.1 アクティビティを配置する」を参照してください。

  2. 並列処理開始アクティビティから枝分かれするシーケンスの各アクティビティを配置・定義します。

    アクティビティを配置する方法については,「5.4.1 アクティビティを配置する」を,アクティビティを定義する方法は,「5.6 アクティビティの定義」の各アクティビティの説明を参照してください。

  3. 並列処理終了アクティビティをキャンバスに配置します。

    アクティビティを配置する方法については,「5.4.1 アクティビティを配置する」を参照してください。

  4. 並列処理開始アクティビティから並列処理終了アクティビティまでの各アクティビティを連結します。

    アクティビティを連結する方法については,「5.4.2(2) 連結の設定方法」を参照してください。

  5. 次のどちらかの方法で[並列処理アクティビティ]ダイアログを表示させます。

    • キャンバスの並列処理開始アクティビティをダブルクリックする

    • キャンバスの並列処理開始アクティビティを選択して右クリックし,[設定]を選択する

    [並列処理アクティビティ]ダイアログが表示されます。

  6. [並列処理アクティビティ]ダイアログに必要な情報を入力します。

    [並列処理アクティビティ]ダイアログの表示・入力内容の詳細については,マニュアル「サービスプラットフォーム リファレンス」の「1.4.25 並列処理アクティビティダイアログ」を参照してください。複数シーケンス間のリンクの設定方法の詳細については,「5.6.16(2) シーケンス間リンクの定義」を参照してください。

  7. [OK]ボタンをクリックします。

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

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

  1. 次のどちらかの方法で[並列処理アクティビティ]ダイアログを表示させます。

    • キャンバスの並列処理開始アクティビティをダブルクリックする

    • キャンバスの並列処理開始アクティビティを選択して右クリックし,[設定]を選択する

    [並列処理アクティビティ]ダイアログが表示されます。

  2. 並列処理内で設定するリンクの数だけ,リンク名を入力します。

  3. [OK]ボタンをクリックし,[並列処理アクティビティ]ダイアログを閉じます。

  4. リンクさせるアクティビティを連結します。

    アクティビティを配置する方法については,「5.4.1 アクティビティを配置する」を参照してください。

  5. 次のどちらかの方法で[リンク]ダイアログを表示させます。

    • 手順4.で設定した連結線をダブルクリックする

    • 手順4.で設定した連結線を選択して右クリックし,[設定]を選択する

    [リンク]ダイアログが表示されます。

  6. [リンク]ダイアログに必要な情報を入力します。

    [リンク]ダイアログの表示・入力内容の詳細については,マニュアル「サービスプラットフォーム リファレンス」の「1.4.26 リンクダイアログ」を参照してください。

    リンクの条件を設定する場合,[遷移条件設定]ボタンをクリックします。表示される[条件設定]ダイアログで,リンクの条件を設定できます。リンクの条件はXPath式で入力します。[条件設定]ダイアログの詳細については,マニュアル「サービスプラットフォーム リファレンス」の「1.4.27 条件設定ダイアログ(並列処理アクティビティ)」を参照してください。

  7. [OK]ボタンをクリックします。

注意事項

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

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

[図データ]

(3) 定義時の注意事項

注※1

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

注※2

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

(4) リンクの条件の判定で例外が発生した場合の処理

例外が発生した場合の処理は,HCSCサーバランタイム定義ファイルのsyserr-to-fault-convert-all-activityプロパティの設定によって次のように異なります。

syserr-to-fault-convert-all-activityプロパティの指定がONのとき

メッセージを出力したあと,フォルト電文に設定する項目を含むメッセージを出力し,フォルトを送出します。

送出するフォルトについては,マニュアル「サービスプラットフォーム 解説」の「4.7.1 システム例外をフォルトに変換する汎用フォルトの概要」を参照してください。

syserr-to-fault-convert-all-activityプロパティの指定がOFFのとき

システム例外をthrowします。

syserr-to-fault-convert-all-activityプロパティの詳細については,マニュアル「サービスプラットフォーム リファレンス」の「6.5.6 HCSCサーバランタイム定義ファイル」を参照してください。