Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 基本開発編
相関セットは,サービスリクエスタから送信された要求電文を一意に識別するために利用する文字列です。
ビジネスプロセスは,受付アクティビティダイアログの[インスタンス生成]に[yes]を指定した受付アクティビティへの要求ごとに,プロセスインスタンスを生成します。
サービスリクエスタから要求電文を受け取れるプロセスインスタンスがHCSCサーバ上に複数ある場合,HCSCサーバは要求電文に含まれる相関セットの値を利用してプロセスインスタンスを特定します。
例えば,あるビジネスプロセスに,サービスリクエスタからの要求を受け付ける受付アクティビティが2つ定義されているとします。1つ目の受付アクティビティへ要求を行い,2つ目の受付アクティビティでビジネスプロセスが待ち受け状態になっている場合,1つ目の受付アクティビティへの要求電文に含まれる相関セットの値と同じ値を2つ目の受付アクティビティへの要求電文に含めます。相関セットに同じ値を指定することで,2つの要求が同じプロセスインスタンスへのリクエストであると特定できます。これによって,2つ目の受付アクティビティ以降の処理を継続できます。
相関セットによるプロセスインスタンスの識別の例を次の図に示します。
図5-8 相関セットによるプロセスインスタンスの識別の例
複数の受付アクティビティがあるビジネスプロセスを実現するには,要求電文に含まれる値のうち,どの値を相関セットに使用するかをビジネスプロセスに定義する必要があります。ビジネスプロセスおよびサービスリクエスタを設計するときに,プロセスインスタンスを一意に特定するキーとなる値をサービスリクエスタからの要求電文に設定してください。
相関セットは,要求電文に含まれる1つの部分または複数の部分の連結によって構成することができます。
ビジネスプロセスで相関セットを使用すると,相関セットの値をキーとして,プロセスインスタンスの実行履歴を検索できます。実行履歴を検索することで,特定のリクエストの実行状態を確認できます。プロセスインスタンスの実行履歴の詳細については,マニュアル「サービスプラットフォーム システム構築・運用ガイド」の「6.1 プロセスインスタンスの実行履歴の管理」を参照してください。
ビジネスプロセスでは,受付アクティビティ,応答アクティビティおよびサービス呼出アクティビティに相関セットを設定できます。また,1つの電文には複数の相関セットを設定できます。
アクティビティごとに,相関セットの設定の要否,および相関セットの役割が異なります。
受付アクティビティおよび応答アクティビティでは,インスタンスの生成の設定,割り当てた相関セットを初期化するかどうかの設定によって,相関セットの指定の要否および相関セットの内容が異なります。
インスタンスの生成の設定は,受付アクティビティダイアログで設定できます。また,相関セットを初期化するかどうかの設定は,割当相関セット群ダイアログで設定できます。
受付アクティビティダイアログについては,マニュアル「サービスプラットフォーム リファレンス」の「1.4.7 受付アクティビティダイアログ」を参照してください。割当相関セット群ダイアログについては,マニュアル「サービスプラットフォーム リファレンス」の「1.4.3 割当相関セット群ダイアログ」を参照してください。
表5-5 相関セットの設定の要否と内容(受付・応答)
アクティビティ | インスタンスの生成 | 初期化の設定 | 設定の要否 | 最大設定数 | 設定した相関セットの内容 |
---|---|---|---|---|---|
受付 | yes | yes | 任意 | 1 | プロセスインスタンスを生成するとき,プロセスインスタンスを識別するための相関セットが,変数として定義されている受信メッセージから生成されます。 |
no | 設定不可 | − | − | ||
no | yes | 任意 | 1 | 生成済みのプロセスインスタンスを検索したあと,検索されたプロセスインスタンスに対する新たな相関セットが,変数として定義されている受信メッセージから生成されます。 | |
no | 必須 | 1 | 指定した相関セットは,生成済みのプロセスインスタンスを検索するために,変数として定義されている受信メッセージ内の相関セットとして利用されます。 | ||
応答 | − | yes | 任意 | 1 | サービスリクエスタに応答を返すとき,変数として定義されている応答メッセージから新たな相関セットが生成されます。 |
− | no | 任意 | 1 | サービスリクエスタに応答を返すとき,変数として定義されている応答メッセージ内の相関セットの値と,プロセスインスタンスの相関セットの値とが一致しているかどうかがチェックされます。 |
サービス呼出アクティビティでは,割り当てた相関セットのパターンの設定,および相関セットを初期化するかどうかの設定によって,相関セットの指定の要否および相関セットの内容が異なります。
割り当てた相関セットのパターンの設定,および相関セットを初期化するかどうかの設定は,割当相関セット群ダイアログで設定できます。
割当相関セット群ダイアログの詳細については,マニュアル「サービスプラットフォーム リファレンス」の「1.4.3 割当相関セット群ダイアログ」を参照してください。
表5-6 相関セットを割り当てられるアクティビティ(サービス呼出)
アクティビティ | パターンの設定 | 初期化の設定 | 設定の要否 | 最大設定数 | 設定した相関セットの内容 |
---|---|---|---|---|---|
サービス呼出 | out | yes | 任意 | 1 | サービス部品にメッセージを送信するとき,変数として定義されている送信メッセージから新たな相関セットが生成されます。 |
no | 任意 | 1 | サービス部品にメッセージを送信するとき,変数として定義されている送信メッセージ内の相関セットの値と,プロセスインスタンスの相関セットの値とが一致しているかどうかがチェックされます。 | ||
in | yes | 任意 | 1 | サービス部品から応答を受けたとき,変数として定義されている応答メッセージから新たな相関セットが生成されます。 | |
no | 任意 | 1 | サービス部品から応答を受けたとき,変数として定義されている応答メッセージ内の相関セットの値と,プロセスインスタンスの相関セットの値とが一致しているかどうかがチェックされます。 | ||
out-in | yes | 任意 | 1 |
|
|
no | 任意 | 1 |
|
ビジネスプロセス内またはスコープ内のアクティビティで使用する相関セットを,変数と同様に追加したり,編集したりできます。詳細は,「5.5.1(5)(a) スコープアクティビティを使用している場合の変数の使用」を参照してください。
相関セットの定義情報は必要に応じて変更または削除できます。
相関セットの定義で使用されている変数の定義情報を変更する場合の注意事項については,「5.5.1(5)(d) 変数の定義情報の変更」を参照してください。
ビジネスプロセスをバージョンアップしたあとに相関セットを変更する場合は注意が必要です。詳細は,「5.9.4(3) ビジネスプロセスのバージョンアップ時の注意事項」を参照してください。
ビジネスプロセスのグローバル変数で相関セットが宣言されている場合,該当するプロセスインスタンスの処理が完了するまでの間が有効範囲となります。
また,スコープ内のアクティビティで使用する相関セットを宣言している場合,該当するスコープ内の処理が完了するまでの間が有効範囲となります。
処理が完了した時点で相関セットは無効となります。
相関セットを定義するには,あらかじめ変数を定義し,定義した変数の中で相関セットとして利用する部分の部分指定を定義しておきます。新規に相関セットを定義する手順を次に示します。なお,相関セットは,繰り返しアクティビティ内のキャンバスでは定義できません。
「表5-6 相関セットを割り当てられるアクティビティ(サービス呼出)」に示すアクティビティから,相関セットを設定する手順を次に示します。
相関セットを利用するビジネスプロセスの定義について,例を用いて説明します。
次の図に示すように,申請とその結果を非同期で確認する申請結果確認のリクエストを受け付けるビジネスプロセスを例として利用します。
図5-9 定義するビジネスプロセスの例
上記の図に示したビジネスプロセスを定義する場合の変数,相関セット,および受付アクティビティの定義内容を次に示します。
表5-7 申請の要求電文に対応する変数の定義内容(例)
[変数・相関セット一覧]ダイアログ(変数情報の表示)での設定項目 | 設定する値 | |
---|---|---|
変数名 | 申請メッセージ | |
種別 | XML | |
電文フォーマット | 申請メッセージ.xsd | |
部分指定 | 部分名 | 申請ID |
指定式 | /req1/id | |
型 | string |
表5-8 申請結果確認の要求電文に対応する変数の定義内容(例)
[変数・相関セット一覧]ダイアログ(変数情報の表示)での設定項目 | 設定する値 | |
---|---|---|
変数名 | 申請確認メッセージ | |
種別 | XML | |
電文フォーマット | 申請確認メッセージ.xsd | |
部分指定 | 部分名 | 申請ID |
指定式 | /req2/id | |
型 | string |
表5-9 相関セットの定義内容(例)
[変数・相関セット一覧]ダイアログ(相関セット情報の表示)での設定項目 | 設定する値 | |
---|---|---|
相関セット名 | 申請相関ID | |
取得部 | 利用変数 | 申請メッセージ※ |
部分名 | 申請ID |
表5-10 申請のリクエストを受け付ける受付アクティビティの定義内容(例)
[受付アクティビティ]ダイアログでの設定項目 | 設定する値 | |
---|---|---|
アクティビティ名 | 申請受付 | |
オペレーション名 | request | |
割当変数 | 申請メッセージ | |
割当相関セット群 | 相関セット名 | 申請相関ID |
初期化 | yes | |
通信モデル | 非同期 | |
インスタンス生成 | yes |
表5-11 申請結果確認のリクエストを受け付ける受付アクティビティの定義内容(例)
[受付アクティビティ]ダイアログでの設定項目 | 設定する値 | |
---|---|---|
アクティビティ名 | 確認受付 | |
オペレーション名 | confirm | |
割当変数 | 申請確認メッセージ | |
割当相関セット群 | 相関セット名 | 申請相関ID |
初期化 | no | |
通信モデル | 同期 | |
インスタンス生成 | no |
All Rights Reserved. Copyright (C) 2012, 2019, Hitachi, Ltd.