商品手配サンプルプログラムの商品手配ビジネスプロセスでは,次のようなプロセスで処理します。
なお,商品手配ビジネスプロセスはユーザ定義受付を利用して呼び出すため,WSDL(ArrangementService.wsdl)を使用してユーザ定義受付を作成します。
商品手配サンプルプログラムのビジネスプロセスは,次の流れで定義します。
商品手配ビジネスプロセスを追加するときに設定する値を次の表に示します。
表5-7 商品手配ビジネスプロセスを追加するときに設定する値
項目名 | 設定する値 | 説明 |
---|---|---|
ビジネスプロセス名 | 商品手配 | ビジネスプロセスの名称を指定します。 |
ステータスの永続化 | yes | データベースに記録を残すかどうかを指定します。記録をとると,プロセスの進捗状況などを把握できます。このサンプルプログラムでは,データベースに記録を残すため,「yes」を選択します。 |
[BPELファイル]-[インポートする] | チェックを外します | 上流工程でツールを使って作成したBPELをインポートする場合は,チェックを入れます。インポートすると,ビジネスプロセスに必要なアクティビティが自動的に表示されます。このサンプルプログラムでは,インポートしないので,チェックを外します。 |
サービスID | ArrBP | ビジネスプロセスのIDを指定します。 |
商品手配ビジネスプロセスの追加手順を次に示します。
商品手配サンプルプログラムでは,サービス部品に合わせた受付を使用して,サービスリクエスタからの要求を受け付けます。そのため,ユーザ定義受付が必要になります。ユーザ定義受付を追加するときに設定する値を次の表に示します。
表5-8 ユーザ定義受付を追加するときに設定する値
項目名 | 設定する値 | 説明 |
---|---|---|
受付種別 | SOAP受付 | 受付種別を選択します。 |
受付名 | サービス受付 | ユーザ定義受付の名称を指定します。 |
WSDLファイル | ArrangementService.wsdl | 使用するWSDLファイル名を指定します。 |
ポート名 | Arrangement | ポート名を指定します。 |
商品手配のユーザ定義受付の追加手順を次に示します。
ビジネスプロセスでは,アクティビティを定義するときに変数を使用します。そのため,使用する変数をあらかじめ設定してから,アクティビティを定義します。商品手配ビジネスプロセスで使用する変数を次の表に示します。
表5-9 商品手配ビジネスプロセスで使用する変数
変数名 | 種別 | xsdファイル |
---|---|---|
入力データ | XML | 入力データ.xsd |
出力データ | XML | 出力データ.xsd |
在庫引当入力データ | XML | 在庫引当入力データ.xsd |
在庫引当出力データ | XML | 在庫引当出力データ.xsd |
配送手配入力データ | XML | 配送手配入力データ.xsd |
配送手配出力データ | XML | 配送手配出力データ.xsd |
商品手配ビジネスプロセスで使用する変数の設定手順を次に示します。
項目名 | 変数名 | ||||
---|---|---|---|---|---|
出力データ | 在庫引当 入力データ | 在庫引当 出力データ | 配送手配 入力データ | 配送手配 出力データ | |
サービス/受付 | 受付名 | サービス名 | サービス名 | サービス名 | サービス名 |
サービス/受付の名称 | サービス受付 | 在庫管理 | 在庫管理 | 配送受付 | 配送受付 |
オペレーション名 | arrangeItem | reserveItem | reserveItem | deliverItem | deliverItem |
電文種別 | 応答電文(ボディ) | 要求電文(ボディ) | 応答電文(ボディ) | 要求電文(ボディ) | 応答電文(ボディ) |
電文フォーマット | 出力データ | 在庫引当入力データ | 在庫引当出力データ | 配送手配入力データ | 配送手配出力データ |
商品手配サンプルプログラムのビジネスプロセスに必要なアクティビティを次の表に示します。
表5-10 商品手配サンプルプログラムのビジネスプロセスに必要なアクティビティ
設定する値 | 説明 |
---|---|
受付アクティビティ | サービスリクエスタからの応答を受け付けます。 |
データ変換アクティビティ | 入力時,出力時,在庫引当時,および配送手配時のデータを編集します。 |
サービス呼出アクティビティ | 在庫管理サービスまたは配送受付サービスを呼び出します。 |
分岐開始アクティビティ | 条件(在庫の有無)による処理をします。 |
応答アクティビティ | 処理結果をサービスリクエスタへ返します。 |
分岐終了アクティビティ | 条件(在庫の有無)による処理を終了します。 |
アクティビティの配置手順を次に示します。
キャンバスへ配置した各アクティビティの内容を定義します。
項目名 | 設定する値 | 説明 |
---|---|---|
アクティビティ名 | 受付 | アクティビティの名称を入力します。 |
オペレーション名 | arrangeItem | サービスリクエスタから在庫管理サービスを呼び出すときに利用するオペレーションの名称を入力します。 |
ボディ割当変数 | 入力データ | ビジネスプロセスの要求電文のボディに割り当てる変数をドロップダウンリストから選択します。 |
ヘッダ割当変数 | 設定なし | ビジネスプロセスの要求電文のヘッダに変数を割り当てる場合に設定します。このサンプルプログラムでは使用しないため,設定しません。 |
割当相関セット群 | 設定なし | 相関セットグループをアクティビティに割り当てる場合に設定します。このサンプルプログラムでは使用しないため,設定しません。 |
通信モデル | 同期 | オペレーションの通信モデルを指定します。このサンプルプログラムで使用する商品手配サービスは,Webサービスのため,「同期」を設定します。 |
インスタンス生成 | yes | 要求電文を受け付けたときに,プロセスを初期化するかどうかを選択します。このサンプルプログラムでは,初期化するため「yes」を設定します。 |
項目名 | 設定する値 | 説明 |
---|---|---|
アクティビティ名 | 在庫引当前処理 | アクティビティの名称を入力します。 |
変数(変換元変数) | 入力データ | データの変換元になる変数をドロップダウンリストから選択し,[追加]ボタンをクリックします。 |
変数(変換先変数) | 在庫引当入力データ | データの変換先になる変数をドロップダウンリストから選択します。 |
データ変換定義 | 在庫引当前処理 | 変数の変換に使うデータ変換定義ファイルの名称を入力します。 |
項目名 | 設定する値 | 説明 |
---|---|---|
アクティビティ名 | 在庫なし設定 | アクティビティの名称を入力します。 |
変数(変換元変数) | 在庫引当出力データ | データの変換元になる変数をドロップダウンリストから選択し,[追加]ボタンをクリックします。 |
変数(変換先変数) | 出力データ | データの変換先になる変数をドロップダウンリストから選択します。 |
データ変換定義 | 在庫なし設定 | 変数の変換に使うデータ変換定義ファイルの名称を入力します。 |
項目名 | 設定する値 | 説明 |
---|---|---|
アクティビティ名 | 配送手配前処理 | アクティビティの名称を入力します。 |
変数(変換元変数) | 在庫引当出力データ | データの変換元になる変数をドロップダウンリストから選択し,[追加]ボタンをクリックします。 |
変数(変換先変数) | 配送手配入力データ | データの変換先になる変数をドロップダウンリストから選択します。 |
データ変換定義 | 配送手配前処理 | 変数の変換に使うデータ変換定義ファイルの名称を入力します。 |
項目名 | 設定する値 | 説明 |
---|---|---|
アクティビティ名 | 配送番号設定 | アクティビティの名称を入力します。 |
変数(変換元変数) | 配送手配出力データ | データの変換元になる変数をドロップダウンリストから選択し,[追加]ボタンをクリックします。 |
変数(変換先変数) | 出力データ | データの変換先になる変数をドロップダウンリストから選択します。 |
データ変換定義 | 配送番号設定 | 変数の変換に使うデータ変換定義ファイルの名称を入力します。 |
項目名 | 設定する値 | 説明 |
---|---|---|
アクティビティ名 | 在庫引当 | アクティビティの名称を入力します。 |
サービス名 | 在庫管理 | 要求電文を送信して呼び出すサービス部品の名称をドロップダウンリストから選択します。 |
オペレーション名 | reserveItem | [サービス名]で指定したサービス部品(在庫管理)のオペレーションのうち,実際に呼び出すオペレーションの名称を指定します。 |
通信モデル | 同期 | [オペレーション名]で指定したオペレーションに設定されている通信モデルが表示されます。 |
ボディ割当変数(要求電文) | 在庫引当入力データ | 在庫管理サービスを呼び出す要求電文のボディに割り当てる変数をドロップダウンリストから選択します。 |
ヘッダ割当変数(要求電文) | 設定なし | 在庫管理サービスを呼び出す要求電文のヘッダに変数を割り当てる場合に設定します。このサンプルプログラムでは使用しないため,設定しません。 |
ボディ割当変数(応答電文) | 在庫引当出力データ | 同期オペレーションから受け取る応答電文のボディに割り当てる変数をドロップダウンリストから選択します。 |
ヘッダ割当変数(応答電文) | 設定なし | 同期オペレーションから受け取る応答電文のヘッダに変数を割り当てる場合に設定します。このサンプルプログラムでは使用しないため,設定しません。 |
割当相関セット群 | 設定なし | 相関セットグループをアクティビティに割り当てる場合に設定します。このサンプルプログラムでは使用しないため,設定しません。 |
項目名 | 設定する値 | 説明 |
---|---|---|
アクティビティ名 | 配送手配 | アクティビティの名称を入力します。 |
サービス名 | 配送受付 | 要求電文を送信して呼び出すサービス部品の名称をドロップダウンリストから選択します。 |
オペレーション名 | deliverItem | [サービス名]で指定したサービス部品(配送手配)のオペレーションのうち,実際に呼び出すオペレーションの名称を指定します。 |
通信モデル | 同期 | [オペレーション名]で指定したオペレーションに設定されている通信モデルが表示されます。 |
ボディ割当変数(要求電文) | 配送手配入力データ | 配送手配サービスを呼び出す要求電文のボディに割り当てる変数をドロップダウンリストから選択します。 |
ヘッダ割当変数(要求電文) | 設定なし | 配送手配サービスを呼び出す要求電文のヘッダに変数を割り当てる場合に設定します。このサンプルプログラムでは使用しないため,設定しません。 |
ボディ割当変数(応答電文) | 配送手配出力データ | 同期オペレーションから受け取る応答電文のボディに割り当てる変数をドロップダウンリストから選択します。 |
ヘッダ割当変数(応答電文) | 設定なし | 同期オペレーションから受け取る応答電文のヘッダに変数を割り当てる場合に設定します。このサンプルプログラムでは使用しないため,設定しません。 |
割当相関セット群 | 設定なし | 相関セットグループをアクティビティに割り当てる場合に設定します。このサンプルプログラムでは使用しないため,設定しません。 |
項目名 | 設定する値 | 説明 |
---|---|---|
アクティビティ名 | 応答_在庫なしエラー | アクティビティの名称を入力します。 |
オペレーション名 | arrangeItem | 対応する受付アクティビティに指定したオペレーション名を入力します。 |
ボディ割当変数 | 出力データ | ビジネスプロセスの応答電文のボディに割り当てる変数をドロップダウンリストから選択します。 |
ヘッダ割当変数 | 設定なし | ビジネスプロセスの応答電文のヘッダに変数を割り当てる場合に設定します。このサンプルプログラムでは使用しないため,設定しません。 |
割当相関セット群 | 設定なし | 相関セットグループをアクティビティに割り当てる場合に入力します。このサンプルプログラムでは使用しないため,設定しません。 |
フォルト名 | 設定なし | フォルト処理として応答アクティビティを定義して,サービスリクエスタにフォルトが発生したことを示す応答電文を送信する場合のフォルトの名称を入力します。このサンプルプログラムではフォルト処理を使用しないため,設定しません。 |
項目名 | 設定する値 | 説明 |
---|---|---|
アクティビティ名 | 応答_手配成功 | アクティビティの名称を入力します。 |
オペレーション名 | arrangeItem | 対応する受付アクティビティに指定したオペレーション名を入力します。 |
ボディ割当変数 | 出力データ | ビジネスプロセスの応答電文のボディに割り当てる変数をドロップダウンリストから選択します。 |
ヘッダ割当変数 | 設定なし | ビジネスプロセスの応答電文のヘッダに変数を割り当てる場合に設定します。このサンプルプログラムでは使用しないため,設定しません。 |
割当相関セット群 | 設定なし | 相関セットグループをアクティビティに割り当てる場合に入力します。このサンプルプログラムでは使用しないため,設定しません。 |
フォルト名 | 設定なし | フォルト処理として応答アクティビティを定義して,サービスリクエスタにフォルトが発生したことを示す応答電文を送信する場合のフォルトの名称を入力します。このサンプルプログラムではフォルト処理を使用しないため,設定しません。 |
項目名 | 設定する値 | 説明 |
---|---|---|
条件名 | 在庫なし | 在庫引当チェックの結果,在庫がない場合の条件を指定します。 |
変数 | 在庫引当出力データ | 条件式で使用する変数をドロップダウンリストから選択します。 |
条件式 | csc:getVariableData("在庫引当出力データ", "/*[local-name()='reserveItemResponse' and namespace-uri()='http://sample/InventoryManagementService']/*[local-name()='ReservationNumber' and namespace-uri()='http://sample/InventoryManagementService']")="*" | 在庫がない場合の条件式をXPath式で指定します。 |