5.2.4 ProductStock_Normalビジネスプロセスの定義
商品手配システム(基本編)の処理の流れを次の図に示します。
|
|
この処理を商品手配システムのProductStock_Normalビジネスプロセスで実現すると,次のような処理になります。
|
|
ProductStock_Normalビジネスプロセスは次の処理を実現します。
-
ProductStock_Normalビジネスプロセスは,サービスリクエスタから商品名と個数の情報を受信します。
-
InventoryManagementサービスアダプタを介して在庫管理サービスを呼び出し,引当番号を取得します。
在庫がない場合は「*」を取得します。
-
在庫可否を確認します。
-
在庫がない場合は,在庫なしレスポンスをサービスリクエスタに返却します。
-
在庫がある場合は,DeliveryReceiptサービスアダプタを介して配送受付サービスを呼び出し,配送番号を取得します。
-
サービスリクエスタに,取得した配送番号を返します。
商品手配システムのリクエストにはHTTPリクエストを使用します。そのため,ユーザ定義受付(HTTP受付)をビジネスプロセスに関連づけて定義して,HTTPプロトコルでリクエストを受付できるようにします。
商品手配システムのビジネスプロセスは,次の流れで定義します。
-
新規ビジネスプロセスを追加します。
追加方法については,「(1) ビジネスプロセスの追加」を参照してください。
-
ユーザ定義受付を追加します。
追加方法については,「(2) ユーザ定義受付の追加」を参照してください。
-
ユーザ定義受付の要求電文・応答電文フォーマットを作成します。
作成方法については,「(3) 電文フォーマットの作成」を参照してください。
-
変数を設定します。
設定方法については,「(4) 変数の設定」を参照してください。
-
アクティビティを配置します。
配置方法については,「(5) アクティビティの配置」を参照してください。
-
アクティビティを定義します。
定義方法については,「(6) アクティビティの定義」を参照してください。
-
ビジネスプロセスの定義を終了します。
(1) ビジネスプロセスの追加
ProductStock_Normalビジネスプロセスを追加するときに設定する値を次の表に示します。
|
項目名 |
設定する値 |
説明 |
|---|---|---|
|
ビジネスプロセス名 |
ProductStock_Normal |
ビジネスプロセスの名称を指定します。 |
|
ステータスの永続化 |
no |
データベースに記録を残すかどうかを指定します。記録を残すと,プロセスの進捗状況などを把握できます。この商品手配システムでは,データベースに記録を残さないため,「no」を選択します。 |
|
BPELファイル |
[インポートする]のチェックを外す |
上流工程でツールを使って作成したBPELをインポートする場合は,チェックを入れます。インポートすると,ビジネスプロセスに必要なアクティビティが自動的に表示されます。この商品手配システムでは,インポートしないので,チェックを外します。 |
|
サービスID |
ArrBPNor |
ビジネスプロセスのIDを指定します。 |
|
スコープアクティビティのデフォルトハンドラ |
OFF |
スコープアクティビティのデフォルトハンドラの設定を「ON」にすると,補償処理が暗黙的に定義されるようになります。この商品手配システムでは,補償処理を定義しないので,「OFF」を選択します。 |
ProductStock_Normalビジネスプロセスの追加手順を次に示します。
-
ツリービューの[サービス定義一覧]を選択し,右クリックして,[ビジネスプロセス追加]を選択します。
ビジネスプロセス定義を追加するためのダイアログが表示されます。
-
[ビジネスプロセス名]に「ProductStock_Normal」を入力し,[ステータスの永続化]で「no」を選択します。[BPELファイル]の[インポートする]はチェックを外したままにしてください。
-
[終了]ボタンをクリックします。
ビジネスプロセス「ProductStock_Normal」が作成され,ビジネスプロセス定義画面が表示されます。
-
ツリービューで「ProductStock_Normal」を選択します。
プロパティビューにProductStock_Normalのプロパティ一覧が表示されます。
-
プロパティビューで,サービスIDの値のセルをクリックします。
入力できる状態になります。
-
「ArrBPNor」に変更し,[Enter]キーを押します。
-
変更してよいかどうかを確認するメッセージが表示されるので,[OK]ボタンをクリックします。
(2) ユーザ定義受付の追加
ユーザ定義受付では,サービスリクエスタとのインタフェースをあらかじめ決める必要があります。サービスリクエスタとHCSCコンポーネント間はRESTで通信するため,ユーザ定義受付はHTTP受付を設定します。ユーザ定義受付を追加するときに設定する値を次の表に示します。
|
属性名 |
属性値 |
|---|---|
|
受付種別 |
HTTP受付 |
|
受付名 |
ServiceReceipt |
|
受付ID |
rcp1 |
|
オペレーション |
arrangeItem |
|
デフォルトオペレーション名 |
arrangeItem |
|
通信モデル |
同期(初期値) |
ProductStock_Normalのユーザ定義受付の追加手順を次に示します。
-
ツリービューのサービス定義一覧からビジネスプロセス名[ProductStock_Normal]を選択し,右クリックして,[ユーザ定義受付(呼出先固定)追加]を選択します。
受付種別を選択するためのダイアログが表示されます。
-
[受付種別]のドロップダウンリストから,「HTTP受付」を選択します。
-
[次へ]ボタンをクリックします。
HTTP受付を追加するためのダイアログが表示されます。
-
受付名に「ServiceReceipt」を入力します。
-
[終了]ボタンをクリックします。
HTTP受付がビジネスプロセスに追加され,ユーザ定義受付定義画面が表示されます。
-
ユーザ定義受付定義(基本)画面で次のように設定します。
-
「受付ID」に「rcp1」(初期値)を設定
-
「オペレーション」の「追加」ボタンをクリックし,オペレーション名に「arrangeItem」を設定して,[OK]ボタンをクリック
-
「デフォルトオペレーション名」に「arrangeItem」(初期値)を設定
-
「通信モデル」に「同期」(初期値)を設定
設定後のユーザ定義受付(基本)タブの例を次に示します。
オペレーション情報の通信モデルは「同期」から変更しないでください。
-
-
[ユーザ定義受付(詳細)]タブでユーザ定義受付定義(詳細)画面に切り替えて,「独自定義ファイル」の「cscurecphttp.properties」を選択します。
「cscurecphttp.properties」はHTTP受付定義ファイルです。
-
[編集]ボタンをクリックしてHTTP受付定義ファイルを開き,次の内容を追加します。
追加するパラメタ
設定値
説明
httprecp.switchover.pass-through.mode
true
パススルーモードを設定します。
httprecp.pass-through.parameter-use
false
HTTPリクエストボディを要求電文として直接ビジネスプロセスに送信します。
httprecp.request.switchover.json-transfer.mode
true
リクエスト処理時にJSON-XML変換を使用します。
httprecp.response.switchover.json-transfer.mode
true
レスポンス処理時にJSON-XML変換を使用します。
記述例を次に示します。
httprecp.switchover.pass-through.mode=true httprecp.pass-through.parameter-use=false httprecp.request.switchover.json-transfer.mode=true httprecp.response.switchover.json-transfer.mode=true
-
メニューから[ファイル]−[すべて保管]を選択します。
(3) 電文フォーマットの作成
HTTP受付に設定する要求電文と応答電文の電文フォーマット(XMLスキーマ)は,使用するJSONファイルからcscjson2xsdコマンドを実行して作成します。
- 注意
-
ここで作成するJSONファイルは,すべて文字コードUTF-8で作成してください。
(a) 要求電文
要求電文のXMLスキーマの作成について説明します。ここで作成したXMLスキーマ「input_Arr.xsd」は,HTTP受付の要求電文に設定します。
-
コマンドで使用するJSONファイルの作成
テキストエディタを起動し,次の内容のJSONファイルを作成します。このファイルの内容は,サービスリクエスタからServiceReceipt受付に送られる電文の一例です。
{"itemName":"PC", "quantity":1}ここでは,ファイル名をinput_Arr.jsonとし,このJSONファイルを任意の場所に格納します。
-
cscjson2xsdコマンドの実行例
この操作は,管理者または管理者特権で実行してください。
この実行例では,入力するJSONファイルの格納場所を「C:\Users\work」,入力するJSONファイルの名称を「input_Arr.json」,出力するXMLスキーマの名称を「input_Arr.xsd」としています。
C:\Users\work>"%COSMINEXUS_HOME%\CSCTE\bin\cscjson2xsd.bat" -in input_Arr.json -out input_Arr.xsd KECT93001-I Execution of the command will now start. (command = cscjson2xsd) KECT93002-I Execution of the command ended normally. (command = cscjson2xsd)
-
作成されたXMLスキーマ(input_Arr.xsd)
コマンド実行後,次の内容のXMLスキーマ「input_Arr.xsd」が作成されます。
実際に作成されるXMLスキーマは,次に示す内容と異なる場合がありますが,スキーマとしての定義内容は同じであるため,問題ありません。
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="csc-object"> <xs:complexType> <xs:sequence> <xs:element ref="itemName"/> <xs:element ref="quantity"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="itemName" type="xs:NCName"/> <xs:element name="quantity" type="xs:integer"/> </xs:schema>
ここで作成したJSONファイル,およびXMLスキーマのサンプルは次のディレクトリに格納されています。
<Service Architectのインストールディレクトリ>\CSCTE\Samples\SOAP1.1_1.2mode\ProductStock_REST\Schema\ServiceReceipt\request
(b) 応答電文
応答電文のXMLスキーマの作成について説明します。ここで作成したXMLスキーマ「output_ArrNor.xsd」は,HTTP受付の応答電文に設定します。
-
コマンドで使用するJSONファイルの作成
テキストエディタを起動し,次の内容のJSONファイルを作成します。このファイルの内容は,サービスリクエスタがServiceReceipt受付から受け取る電文の一例です。
{"deliveryNumber": "D00000001", "itemName": "PC", "message": "Product is available for arrangement.", "quantity":"1"}ここでは,ファイル名をoutput_ArrNor.jsonとし,このJSONファイルを任意の場所に格納します。
-
cscjson2xsdコマンドの実行例
この操作は,管理者または管理者特権で実行してください。
この実行例では,入力するJSONファイルの格納場所を「C:\Users\work」,入力するJSONファイルの名称を「output_ArrNor.json」,出力するXMLスキーマの名称を「output_ArrNor.xsd」としています。
C:\Users\work>"%COSMINEXUS_HOME%\CSCTE\bin\cscjson2xsd.bat" -in output_ArrNor.json -out output_ArrNor.xsd KECT93001-I Execution of the command will now start. (command = cscjson2xsd) KECT93002-I Execution of the command ended normally. (command = cscjson2xsd)
-
作成されたXMLスキーマ(output_ArrNor.xsd)
コマンド実行後,次の内容のXMLスキーマ「output_ArrNor.xsd」が作成されます。
実際に作成されるXMLスキーマは,次に示す内容と異なる場合がありますが,スキーマとしての定義内容は同じであるため,問題ありません。
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="csc-object"> <xs:complexType> <xs:sequence> <xs:element ref="deliveryNumber"/> <xs:element ref="itemName"/> <xs:element ref="message"/> <xs:element ref="quantity"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="deliveryNumber" type="xs:NCName"/> <xs:element name="itemName" type="xs:NCName"/> <xs:element name="message" type="xs:string"/> <xs:element name="quantity" type="xs:integer"/> </xs:schema>
ここで作成したJSONファイル,およびXMLスキーマのサンプルは次のディレクトリに格納されています。
<Service Architectのインストールディレクトリ>\CSCTE\Samples\SOAP1.1_1.2mode\ProductStock_REST\Schema\ServiceReceipt\response\ProductStock_Normal
(c) 電文フォーマットの指定
作成したXMLスキーマをServiceReceipt受付に設定します。
-
[ユーザ定義受付(基本)]タブでユーザ定義受付定義(基本)画面に切り替えます。
-
[要求電文]−[受付]−[電文フォーマット]の[参照]ボタンをクリックして,XMLスキーマ「input_Arr.xsd」を指定します。
-
[応答電文]−[受付]−[電文フォーマット]の[参照]ボタンをクリックして,XMLスキーマ「output_ArrNor.xsd」を指定します。
-
メニューから[ファイル]−[保管]を選択します。
設定後のユーザ定義受付(基本)タブの例を次に示します。
(4) 変数の設定
ビジネスプロセスでは,アクティビティを定義するときに変数を使用します。そのため,使用する変数をあらかじめ定義しておく必要があります。ProductStock_Normalビジネスプロセスで使用する変数を次の表に示します。
|
変数名 |
種別 |
説明 |
|---|---|---|
|
InputData |
XML |
受付アクティビティで受信するビジネスプロセスの要求電文のボディとして使用します。 「(3) 電文フォーマットの作成」で作成した要求電文フォーマットを取り込み,定義します。 |
|
OutputData |
XML |
応答アクティビティで送信するビジネスプロセスの応答電文のボディとして使用します。 「(3) 電文フォーマットの作成」で作成した応答電文フォーマットを取り込み,定義します。 |
|
InventoryAllocationInputData |
XML |
サービス呼出アクティビティで在庫管理サービスを呼び出す際の要求電文のボディとして使用します。 「5.2.2 InventoryManagementサービスアダプタの定義」で作成した要求電文フォーマットを取り込み,定義します。 |
|
InventoryAllocationOutputData |
XML |
サービス呼出アクティビティで在庫管理サービスを呼び出す際の応答電文のボディとして使用します。 「5.2.2 InventoryManagementサービスアダプタの定義」で作成した応答電文フォーマットを取り込み,定義します。 |
|
DeliveryArrangementInputData |
XML |
サービス呼出アクティビティで配送受付サービスを呼び出す際の要求電文のボディとして使用します。 「5.2.3 DeliveryReceiptサービスアダプタの定義」で作成した要求電文フォーマットを取り込み,定義します。 |
|
DeliveryArrangementOutputData |
XML |
サービス呼出アクティビティで配送受付サービスを呼び出す際の応答電文のボディとして使用します。 「5.2.3 DeliveryReceiptサービスアダプタの定義」で作成した応答電文フォーマットを取り込み,定義します。 |
ProductStock_Normalビジネスプロセスで使用する変数の設定手順を次に示します。
-
ツリービューの[サービス定義一覧]からProductStock_Normalビジネスプロセスをダブルクリックします。
ビジネスプロセス定義画面が表示されます。
-
ビジネスプロセス定義画面のキャンバス上の[変数・相関セット]アイコンをダブルクリックします。
[変数・相関セット一覧]ダイアログが表示されます。
-
[変数一覧]を選択します。変数名に「InputData」を入力し,種別は,ドロップダウンリストから「XML」を選択します。
-
[取込]ボタンをクリックします。
[電文フォーマットの取込]ダイアログが表示されます。
-
[受付名]を選択して,ドロップダウンリストから「ServiceReceipt」を選択します。
-
[オペレーション名]はドロップダウンリストから「arrangeItem」を,[電文種別]はドロップダウンリストから「要求電文(ボディ)」を選択します。[電文フォーマット]に「InputData」を入力します。
-
[OK]ボタンをクリックします。
[電文フォーマットの取込]ダイアログが閉じます。
-
[変数・相関セット一覧]ダイアログの[追加]ボタンをクリックします。
変数一覧に変数「InputData」が追加されます。
-
「InputData」以外の変数も,手順2.〜7.と同様の手順で設定します。
[変数・相関セット一覧]ダイアログで設定する種別はすべて[XML]です。[電文フォーマットの取込]ダイアログでの「InputData」以外の設定値は次のとおりです。
変数名
項目名
サービス/受付
サービス/受付の名称
オペレーション名
電文種別
電文フォーマット
OutputData
受付名
ServiceReceipt
arrangeItem
応答電文(ボディ)
OutputData
InventoryAllocationInputData
サービス名
InventoryManagement
reserveItem
要求電文(ボディ)
InventoryAllocationInputData
InventoryAllocationOutputData
サービス名
InventoryManagement
reserveItem
応答電文(ボディ)
InventoryAllocationOutputData
DeliveryArrangementInputData
サービス名
DeliveryReceipt
deliverItem
要求電文(ボディ)
DeliveryArrangementInputData
DeliveryArrangementOutputData
サービス名
DeliveryReceipt
deliverItem
応答電文(ボディ)
DeliveryArrangementOutputData
-
[変数・相関セット一覧]ダイアログの[OK]ボタンをクリックします。
これで変数が設定できました。
(5) アクティビティの配置
ProductStock_Normalビジネスプロセスに必要なアクティビティを次の表に示します。
|
アクティビティ名 |
アクティビティ種別 |
説明 |
|---|---|---|
|
受付 |
受付アクティビティ |
サービスリクエスタからの応答を受け付けます。 |
|
在庫引当前処理 |
データ変換アクティビティ |
在庫引当時のデータを編集します。 |
|
在庫引当 |
サービス呼出アクティビティ |
在庫管理サービスを呼び出します。 |
|
在庫引当結果チェック |
分岐開始アクティビティ |
条件(在庫の有無)による処理をします。 |
|
在庫なし設定 |
データ変換アクティビティ |
在庫なしレスポンスを返却できるようにデータを編集します。 |
|
応答_在庫なしエラー |
応答アクティビティ |
処理結果をサービスリクエスタへ返します。 |
|
配送手配前処理 |
データ変換アクティビティ |
配送手配時のデータを編集します。 |
|
配送手配 |
サービス呼出アクティビティ |
配送受付サービスを呼び出します。 |
|
配送番号設定 |
データ変換アクティビティ |
在庫ありレスポンスを返却できるようにデータを編集します。 |
|
応答_手配成功 |
応答アクティビティ |
処理結果をサービスリクエスタへ返します。 |
|
在庫引当結果チェック_終了 |
分岐終了アクティビティ |
条件(在庫の有無)による処理を終了します。 |
アクティビティの配置手順を次に示します。
-
パレットから[受付]をドラッグし,開始アクティビティの近くにドロップしてください。
開始アクティビティから受付アクティビティに連結されます。
-
手順1.と同様に,その他のアクティビティを配置・連結します。
次の図のフローになるよう,アクティビティは上記の表の記載順どおりに配置してください。順番にパレットから連結元のアクティビティの近くにドロップしてください。
- ポイント
-
-
配置後に,分岐終了アクティビティを終了アクティビティの近くに移動することで,分岐終了アクティビティから終了アクティビティに連結できます。
-
アクティビティ配置時に連結できなかった場合は,次の手順で連結してください。
-
アクティビティを連結するために,パレットの[コネクション]をクリックします。
-
連結元である開始アクティビティをクリックします。
-
連結先である受付アクティビティをクリックします。
-
受付アクティビティから終了アクティビティまでを手順1.〜手順3.と同様の手順で1つずつ連結します。
-
(6) アクティビティの定義
キャンバスへ配置した各アクティビティの内容を定義します。
(a) 受付アクティビティ(アクティビティ名:受付)
-
キャンバスの受付アクティビティ(受付1)をダブルクリックします。
[受付アクティビティ]ダイアログが表示されます。
-
次の内容を入力します。
項目名
設定する値
説明
アクティビティ名
受付
アクティビティの名称を入力します。
オペレーション名
arrangeItem
サービスリクエスタからHCSCコンポーネントを呼び出すときに利用するオペレーション(ServiceReceipt受付)の名称を入力します。
ボディ割当変数
InputData
ビジネスプロセスの要求電文のボディに割り当てる変数をドロップダウンリストから選択します。
ヘッダ割当変数
設定なし
ビジネスプロセスの要求電文のヘッダに変数を割り当てる場合に設定します。この商品手配システムでは使用しないため,設定しません。
割当相関セット群
設定なし
相関セットグループをアクティビティに割り当てる場合に設定します。この商品手配システムでは使用しないため,設定しません。
通信モデル
同期
オペレーションの通信モデルを指定します。ProductStock_Normalは,各サービス部品の呼び出し結果から応答電文フォーマットを作成するため,「同期」を設定します。
インスタンス生成
yes
要求電文を受け付けたときに,プロセスを初期化するかどうかを選択します。この商品手配システムでは,初期化するため「yes」を設定します。
-
[OK]ボタンをクリックします。
(b) データ変換アクティビティ(アクティビティ名:在庫引当前処理)
-
キャンバスのデータ変換アクティビティ(データ変換1)をダブルクリックします。
[データ変換アクティビティ]ダイアログが表示されます。
-
次の内容を入力します。
項目名
設定する値
説明
アクティビティ名
在庫引当前処理
アクティビティの名称を入力します。
変数(変換元変数)
InputData
データの変換元になる変数をドロップダウンリストから選択し,[追加]ボタンをクリックします。
変数(変換先変数)
InventoryAllocationInputData
データの変換先になる変数をドロップダウンリストから選択します。
-
[OK]ボタンをクリックします。
-
キャンバスのデータ変換アクティビティを右クリックして,[マッピング定義起動]を選択します。
[ルート要素選択]ダイアログが表示されます。
-
変換元のスキーマ論理名「InputData」のルート要素をクリックして,ドロップダウンリストから「csc-object」を選択します。
-
変換先のスキーマ論理名「InventoryAllocationInputData」のルート要素をクリックして,ドロップダウンリストから「csc-object」を選択します。
-
[OK]ボタンをクリックします。
データ変換定義画面が表示されます。
-
データ変換定義画面のパレットから[マッピング]を選択します。
-
マッピング元となる変換元ノードのノードアダプタをクリックします。
-
マッピング先となる変換先ノードのノードアダプタをクリックします。
マッピング線が設定されます。マッピング元のノードアダプタとマッピング先のノードアダプタとの対応は次のとおりです。
- 注
-
作成したXMLスキーマによって変換先スキーマの要素の出現順が一部異なるため,マッピング線の見え方が異なる場合があります。
(c) サービス呼出アクティビティ(アクティビティ名:在庫引当)
-
キャンバスのサービス呼出アクティビティ(サービス呼出1)をダブルクリックします。
[サービス呼出アクティビティ]ダイアログが表示されます。
-
次の内容を入力します。
項目名
設定する値
説明
アクティビティ名
在庫引当
アクティビティの名称を入力します。
サービス名
InventoryManagement
サービス部品呼び出し時に使用するサービスアダプタの名称をドロップダウンリストから選択します。
オペレーション名
reserveItem
[サービス名]で指定したサービスアダプタのオペレーションのうち,実際に呼び出すオペレーションの名称を指定します。
通信モデル
同期
[オペレーション名]で指定したオペレーションに設定されている通信モデルが表示されます。
ボディ割当変数(要求電文)
InventoryAllocationInputData
在庫管理サービスを呼び出す要求電文のボディに割り当てる変数をドロップダウンリストから選択します。
ヘッダ割当変数(要求電文)
設定なし
在庫管理サービスを呼び出す要求電文のヘッダに変数を割り当てる場合に設定します。この商品手配システムでは使用しないため,設定しません。
ボディ割当変数(応答電文)
InventoryAllocationOutputData
在庫管理サービスから受け取る応答電文のボディに割り当てる変数をドロップダウンリストから選択します。
ヘッダ割当変数(応答電文)
設定なし
在庫管理サービスから受け取る応答電文のヘッダに変数を割り当てる場合に設定します。この商品手配システムでは使用しないため,設定しません。
割当相関セット群
設定なし
相関セットグループをアクティビティに割り当てる場合に設定します。この商品手配システムでは使用しないため,設定しません。
-
[OK]ボタンをクリックします。
(d) データ変換アクティビティ(アクティビティ名:在庫なし設定)
-
キャンバスのデータ変換アクティビティ(データ変換2)をダブルクリックします。
[データ変換アクティビティ]ダイアログが表示されます。
-
次の内容を入力します。
項目名
設定する値
説明
アクティビティ名
在庫なし設定
アクティビティの名称を入力します。
変数(変換元変数)
InputData
データの変換元になる変数をドロップダウンリストから選択し,[追加]ボタンをクリックします。
変数(変換先変数)
OutputData
データの変換先になる変数をドロップダウンリストから選択します。
-
[OK]ボタンをクリックします。
-
キャンバスのデータ変換アクティビティを右クリックして,[マッピング定義起動]を選択します。
[ルート要素選択]ダイアログが表示されます。
-
変換元のスキーマ論理名「InputData」のルート要素をクリックして,ドロップダウンリストから「csc-object」を選択します。
-
変換先のスキーマ論理名「OutputData」のルート要素をクリックして,ドロップダウンリストから「csc-object」を選択します。
-
[OK]ボタンをクリックします。
データ変換定義画面が表示されます。
-
データ変換定義画面のパレットから[マッピング]を選択します。
-
マッピング元となる変換元ノードのノードアダプタをクリックします。
-
マッピング先となる変換先ノードのノードアダプタをクリックします。
マッピング線が設定されます。マッピング元のノードアダプタとマッピング先のノードアダプタとの対応は次のとおりです。
- 注
-
作成したXMLスキーマによって変換先スキーマの要素の出現順が一部異なるため,マッピング線の見え方が異なる場合があります。
-
データ変換定義画面のパレット[その他]から定数ファンクション(const)を選択します。
-
マッピングビューアで適当な場所をクリックして定数ファンクションを配置します。
-
定数ファンクションをダブルクリックします。
[定数]ダイアログが表示されます。
-
[定数]ダイアログで次の値を指定します。
属性名
属性値
ファンクション名
NoStock_Message
文字列
No stock is available.
-
[OK]ボタンをクリックして[定数]ダイアログを閉じます。
-
手順11.〜手順15.と同様の手順で,もう一つ定数ファンクション(const)を作成します。[定数]ダイアログでは次の値を指定します。
属性名
属性値
ファンクション名
No_deliveryNumber
文字列
(何も入力しない)
-
[OK]ボタンをクリックします。
-
次の図のようになるようにマッピング線を設定します。
(e) 応答アクティビティ(アクティビティ名:応答_在庫なしエラー)
-
キャンバスの応答アクティビティ(応答1)をダブルクリックします。
[応答アクティビティ]ダイアログが表示されます。
-
次の内容を入力します。
項目名
設定する値
説明
アクティビティ名
応答_在庫なしエラー
アクティビティの名称を入力します。
オペレーション名
arrangeItem
対応する受付アクティビティに指定したオペレーション名を入力します。
ボディ割当変数
OutputData
ビジネスプロセスの応答電文のボディに割り当てる変数をドロップダウンリストから選択します。
ヘッダ割当変数
設定なし
ビジネスプロセスの応答電文のヘッダに変数を割り当てる場合に設定します。この商品手配システムでは使用しないため,設定しません。
割当相関セット群
設定なし
相関セットグループをアクティビティに割り当てる場合に入力します。この商品手配システムでは使用しないため,設定しません。
フォルト名
設定なし
フォルト処理として応答アクティビティを定義して,サービスリクエスタにフォルトが発生したことを示す応答電文を送信する場合のフォルトの名称を入力します。この商品手配システムではフォルト処理を使用しないため,設定しません。
-
[OK]ボタンをクリックします。
(f) データ変換アクティビティ(アクティビティ名:配送手配前処理)
-
キャンバスのデータ変換アクティビティ(データ変換3)をダブルクリックします。
[データ変換アクティビティ]ダイアログが表示されます。
-
次の内容を入力します。
項目名
設定する値
説明
アクティビティ名
配送手配前処理
アクティビティの名称を入力します。
変数(変換元変数)
InventoryAllocationOutputData
データの変換元になる変数をドロップダウンリストから選択し,[追加]ボタンをクリックします。
変数(変換先変数)
DeliveryArrangementInputData
データの変換先になる変数をドロップダウンリストから選択します。
-
[OK]ボタンをクリックします。
-
キャンバスのデータ変換アクティビティを右クリックして,[マッピング定義起動]を選択します。
[ルート要素選択]ダイアログが表示されます。
-
変換元のスキーマ論理名「InventoryAllocationOutputData」のルート要素をクリックして,ドロップダウンリストから「csc-object」を選択します。
-
変換先のスキーマ論理名「DeliveryArrangementInputData」のルート要素をクリックして,ドロップダウンリストから「csc-object」を選択します。
-
[OK]ボタンをクリックします。
データ変換定義画面が表示されます。
-
データ変換定義画面のパレットから[マッピング]を選択します。
-
マッピング元となる変換元ノードのノードアダプタをクリックします。
-
マッピング先となる変換先ノードのノードアダプタをクリックします。
マッピング線が設定されます。マッピング元のノードアダプタとマッピング先のノードアダプタとの対応は次のとおりです。
- 注
-
作成したXMLスキーマによって変換先スキーマの要素の出現順が一部異なるため,マッピング線の見え方が異なる場合があります。
(g) サービス呼出アクティビティ(アクティビティ名:配送手配)
-
キャンバスのサービス呼出アクティビティ(サービス呼出2)をダブルクリックします。
[サービス呼出アクティビティ]ダイアログが表示されます。
-
次の内容を入力します。
項目名
設定する値
説明
アクティビティ名
配送手配
アクティビティの名称を入力します。
サービス名
DeliveryReceipt
サービス部品呼び出し時に使用するサービスアダプタの名称をドロップダウンリストから選択します。
オペレーション名
deliverItem
[サービス名]で指定したサービスアダプタのオペレーションのうち,実際に呼び出すオペレーションの名称を指定します。
通信モデル
同期
[オペレーション名]で指定したオペレーションに設定されている通信モデルが表示されます。
ボディ割当変数(要求電文)
DeliveryArrangementInputData
配送手配サービスを呼び出す要求電文のボディに割り当てる変数をドロップダウンリストから選択します。
ヘッダ割当変数(要求電文)
設定なし
配送手配サービスを呼び出す要求電文のヘッダに変数を割り当てる場合に設定します。この商品手配システムでは使用しないため,設定しません。
ボディ割当変数(応答電文)
DeliveryArrangementOutputData
配送手配サービスから受け取る応答電文のボディに割り当てる変数をドロップダウンリストから選択します。
ヘッダ割当変数(応答電文)
設定なし
配送手配サービスから受け取る応答電文のヘッダに変数を割り当てる場合に設定します。この商品手配システムでは使用しないため,設定しません。
割当相関セット群
設定なし
相関セットグループをアクティビティに割り当てる場合に設定します。この商品手配システムでは使用しないため,設定しません。
-
[OK]ボタンをクリックします。
(h) データ変換アクティビティ(アクティビティ名:配送番号設定)
-
キャンバスのデータ変換アクティビティ(データ変換4)をダブルクリックします。
[データ変換アクティビティ]ダイアログが表示されます。
-
次の内容を入力します。
項目名
設定する値
説明
アクティビティ名
配送番号設定
アクティビティの名称を入力します。
変数(変換元変数)※
InputData
DeliveryArrangementOutputData
データの変換元になる変数をドロップダウンリストから選択し,[追加]ボタンをクリックします。
変数(変換先変数)
OutputData
データの変換先になる変数をドロップダウンリストから選択します。
注※ 変換元変数は2つ設定が必要です。
-
[OK]ボタンをクリックします。
-
キャンバスのデータ変換アクティビティを右クリックして,[マッピング定義起動]を選択します。
[ルート要素選択]ダイアログが表示されます。
-
変換元のスキーマ論理名「InputData」のルート要素をクリックして,ドロップダウンリストから「csc-object」を選択します。
-
変換元のスキーマ論理名「DeliveryArrangementOutputData」のルート要素をクリックして,ドロップダウンリストから「csc-object」を選択します。
-
変換先のスキーマ論理名「OutputData」のルート要素をクリックして,ドロップダウンリストから「csc-object」を選択します。
-
[OK]ボタンをクリックします。
データ変換定義画面が表示されます。
-
データ変換定義画面のパレットから[マッピング]を選択します。
-
マッピング元となる変換元ノードのノードアダプタをクリックします。
-
マッピング先となる変換先ノードのノードアダプタをクリックします。
マッピング線が設定されます。マッピング元のノードアダプタとマッピング先のノードアダプタとの対応は次のとおりです。
- 注
-
作成したXMLスキーマによって変換先スキーマの要素の出現順が一部異なるため,マッピング線の見え方が異なる場合があります。
-
データ変換定義画面のパレット[その他]から定数ファンクション(const)を選択します。
-
マッピングビューアで適当な場所をクリックして定数ファンクションを配置します。
-
定数ファンクションをダブルクリックします。
[定数]ダイアログが表示されます。
-
[定数]ダイアログで次の値を指定します。
属性名
属性値
ファンクション名
Success_Message
文字列
Product is available for arrangement.
-
[OK]ボタンをクリックします。
-
次の図のようになるようにマッピング線を設定します。
(i) 応答アクティビティ(アクティビティ名:応答_手配成功)
-
キャンバスの応答アクティビティ(応答2)をダブルクリックします。
[応答アクティビティ]ダイアログが表示されます。
-
次の内容を入力します。
項目名
設定する値
説明
アクティビティ名
応答_手配成功
アクティビティの名称を入力します。
オペレーション名
arrangeItem
対応する受付アクティビティに指定したオペレーション名を入力します。
ボディ割当変数
OutputData
ビジネスプロセスの応答電文のボディに割り当てる変数をドロップダウンリストから選択します。
ヘッダ割当変数
設定なし
ビジネスプロセスの応答電文のヘッダに変数を割り当てる場合に設定します。この商品手配システムでは使用しないため,設定しません。
割当相関セット群
設定なし
相関セットグループをアクティビティに割り当てる場合に入力します。この商品手配システムでは使用しないため,設定しません。
フォルト名
設定なし
フォルト処理として応答アクティビティを定義して,サービスリクエスタにフォルトが発生したことを示す応答電文を送信する場合のフォルトの名称を入力します。この商品手配システムではフォルト処理を使用しないため,設定しません。
-
[OK]ボタンをクリックします。
(j) 分岐開始アクティビティ(アクティビティ名:在庫引当結果チェック)
-
キャンバスの分岐開始アクティビティ(分岐開始1)をダブルクリックします。
[分岐アクティビティ]ダイアログが表示されます。
-
アクティビティ名に「在庫引当結果チェック」を入力します。
-
[遷移先]が[在庫なし設定]の行をクリックし,[上へ]ボタンをクリックして,いちばん上の行に移動します。
-
いちばん上の行を選択し,[条件設定]ボタンをクリックします。
[条件設定]ダイアログが表示されます。
-
次の内容を入力します。
項目名
設定する値
説明
条件名
No Stock
在庫がない場合の条件の名称を指定します。
変数の表示
なし
このドロップダウンリストは,条件に変数を利用した式を設定する場合に一時的に使用するものです。ここでは何も設定しません。
式※
csc:getVariableData("InventoryAllocationOutputData", "/csc-object/reservationNumber")="*"
在庫がない場合の条件式をXPath式で指定します。
- 注※
-
「式」の「設定する値」はテキストボックスの幅で折り返して表示されます。
-
[OK]ボタンをクリックします。
[分岐アクティビティ]ダイアログに戻ります。
-
[遷移先]が[配送手配前処理]の[優先順位]をクリックし,ドロップダウンリストから「Default」を選択します。
「Default」を選択すると,条件の設定は不要になります。
-
[OK]ボタンをクリックします。