Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム ファーストステップガイド


5.5.6 ProductStock_FaultHandlingビジネスプロセスの定義

商品手配システム(フォルトハンドリング編)の処理の流れを次の図に示します。

図5‒10 商品手配システム(フォルトハンドリング編)の処理の流れ

[図データ]

上記の処理をProductStock_FaultHandlingビジネスプロセスで実現すると,次の図のような処理になります。

図5‒11 ProductStock_FaultHandlingビジネスプロセスの処理

[図データ]

ProductStock_FaultHandlingビジネスプロセスは次の処理を実現します。

  1. ProductStock_FaultHandlingビジネスプロセスは,サービスリクエスタから商品名と個数の情報を受信します。

  2. 入力値検証を実施します。

  3. 入力値検証で例外が発生した場合は,「5.5.2(1) サービスリクエスタからのJSON電文の内容が不正である例外(入力値検証例外)」で示す例外のレスポンスをサービスリクエスタに返却します。

  4. InventoryManagementサービスアダプタを介して在庫管理サービスを呼び出します。

  5. 在庫管理サービスとの通信時に例外が発生した場合は,「5.5.2(2) InventoryManagementアダプタと在庫管理サービスの間の通信が失敗した例外(在庫引当例外)」で示す例外のレスポンスをサービスリクエスタに返却します。

  6. 在庫可否を確認します。

  7. 在庫がない場合は,在庫なしレスポンスをサービスリクエスタに返却します。

  8. 在庫がある場合は,DeliveryReceiptサービスアダプタを介して配送受付サービスを呼び出し,配送番号を取得します。

  9. 配送受付サービスとの通信時に例外が発生した場合は,「5.5.2(3) DeliveryReceiptアダプタと配送受付サービスの間の通信が失敗した例外(配送手配例外)」で示す例外のレスポンスをサービスリクエスタに返却します。

  10. サービスリクエスタに取得した配送番号を返却します。

また,商品手配システム(基本編)と同様にリクエストはHTTPリクエストとし,ユーザ定義受付(HTTP受付)をビジネスプロセスに関連づけて定義します。

商品手配システム(フォルトハンドリング編)のビジネスプロセスは,次の流れで定義します。

  1. ProductStock_Normalを複製し,ProductStock_FaultHandlingを作成します。

    修正方法については,「(1) ビジネスプロセスの複製」を参照してください。

  2. ユーザ定義受付を修正します。

    修正方法については,「(2) ユーザ定義受付の確認」を参照してください。

  3. ユーザ定義受付の要求電文・応答電文フォーマットを作成します。

    作成方法については,「(3) 電文フォーマットの作成」を参照してください。

  4. 変数を追加・修正します。

    修正方法については,「(4) 変数の設定」を参照してください。

  5. 追加する処理に応じてアクティビティを配置・定義します。

    配置方法については,「(5) アクティビティの配置」を参照してください。

    定義方法については,「(6) アクティビティの定義」を参照してください。

  6. アクティビティを修正します。

    変数を修正したため,次のアクティビティも修正します。

    アクティビティ名:在庫なし設定

    配置と定義については,「(6)(n) データ変換アクティビティ(アクティビティ名:在庫なし設定)」を参照してください。

    アクティビティ名:配送番号設定

    配置と定義については,「(6)(v) データ変換アクティビティ(アクティビティ名:配送番号設定)」を参照してください。

  7. フォルト処理を定義します。

    定義方法については,「(7) フォルト処理の定義」を参照してください。

  8. ビジネスプロセスの定義を終了します。

〈この項の構成〉

(1) ビジネスプロセスの複製

ProductStock_Normalビジネスプロセスを複製し,ProductStock_FaultHandlingビジネスプロセスを追加するときに設定する値を次の表に示します。

表5‒8 ProductStock_FaultHandlingビジネスプロセスを追加するときに設定する値

項目名

設定する値

説明

ビジネスプロセス名

ProductStock_FaultHandling

ビジネスプロセスの名称を指定します。

ステータスの永続化

no

データベースに記録を残すかどうかを指定します。記録を残すと,プロセスの進捗状況などを把握できます。この商品手配システムでは,データベースに記録を残さないため,「no」を選択します。

サービスID

ArrBPFau

ビジネスプロセスのIDを指定します。

スコープアクティビティのデフォルトハンドラ

OFF

スコープアクティビティのデフォルトハンドラの設定を「ON」にすると,補償処理が暗黙的に定義されるようになります。この商品手配システムでは,補償処理を定義しないので,「OFF」を選択します。

ProductStock_FaultHandlingビジネスプロセスの追加手順を次に示します。

  1. ツリービューの[サービス定義一覧]で,ProductStock_Normalビジネスプロセスを選択して右クリックします。

    サービス一覧のポップアップメニューが表示されます。

  2. ポップアップメニューから[複製]を選択します。

    複製が完了したメッセージが表示されます。

  3. ツリービューで「Copy1_ProductStock_Normal」を選択します。

    プロパティビューにCopy1_ProductStock_Normalのプロパティ一覧が表示されます。

  4. プロパティビューで,ビジネスプロセス名の値のセルをクリックします。

    入力できる状態になります。

  5. 「ProductStock_FaultHandling」に変更し,[Enter]キーを押します。

  6. 変更してよいかどうかを確認するメッセージが表示されるので,[OK]ボタンをクリックします。

  7. 同様にして,サービスIDの値を「ArrBPFau」に変更します。

    [図データ]

(2) ユーザ定義受付の確認

「(1) ビジネスプロセスの複製」では,ProductStock_Normalビジネスプロセスを複製してProductStock_FaultHandlingビジネスプロセスを作成しました。ビジネスプロセスを複製すると,そのビジネスプロセスに含まれるユーザ定義受付も複製されます。そのため,ProductStock_FaultHandlingビジネスプロセスには,ProductStock_Normalビジネスプロセスに含まれていたユーザ定義受付(ServiceReceipt)と同じ内容の受付が含まれています。

[図データ]

商品手配システム(フォルトハンドリング編)では,ProductStock_FaultHandlingビジネスプロセスに含まれるユーザ定義受付(ServiceReceipt)を一部変更して開発します。変更個所は,応答電文の電文フォーマットだけです。応答電文の電文フォーマット以外の項目は,既存の設定をそのまま利用します。

ここでは,応答電文の電文フォーマットを除き,設定されている値が正しいかどうかを確認します。手順を次に示します。

  1. ツリービューの[サービス定義一覧]から,ProductStock_FaultHandlingビジネスプロセス配下の「ServiceReceipt」をダブルクリックします。

    ユーザ定義受付定義(基本)画面が表示されます。

  2. 次の値が設定されていることを確認します。

    属性名

    属性値

    受付種別

    HTTP受付

    受付名

    ServiceReceipt

    受付ID

    rcp2

    オペレーション

    arrangeItem

    デフォルトオペレーション名

    arrangeItem

    通信モデル

    同期(初期値)

    [要求電文]−[受付]−[電文フォーマット]

    input_Arr.xsd

    [図データ]

  3. [ユーザ定義受付(詳細)]タブでユーザ定義受付定義(詳細)画面に切り替えて,[独自定義ファイル]の「cscurecphttp.properties」を選択します。

  4. [編集]ボタンをクリックして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) 電文フォーマットの作成

ServiceReceipt受付の応答電文の電文フォーマットを作成し,受付に反映させます。

作成する電文フォーマット(XMLスキーマ)は,使用するJSONファイルからcscjson2xsdコマンドを実行して作成します。

注意

ここで作成するJSONファイルは,すべて文字コードUTF-8で作成してください。

(a) 応答電文

応答電文のXMLスキーマの作成について説明します。ここで作成したXMLスキーマ「output_ArrFau.xsd」は,HTTP受付の応答電文に設定します。

  • cscjson2xsdコマンドで使用するJSONファイル

    4つのJSONファイルを使用します。テキストエディタを起動し,次の4つのJSONファイルをそれぞれ作成します。

    ■output_ArrNor.json(在庫ありレスポンス)

    JSONファイルの内容を次に示します。この内容は,「5.2.4(3)(b) 応答電文」で作成したJSONファイルの内容と同じです。

    {"deliveryNumber": "D00000001", "itemName": "PC", "message": "Product is available for arrangement.", "quantity": 1}

    ■output_JavaExc.json(入力値検証例外)

    JSONファイルの内容を次に示します。この内容は,「5.5.2(1)サービスリクエスタからのJSON電文の内容が不正である例外(入力値検証例外)」で作成したレスポンス(ボディ)の内容と同じです。

    {"exception-activity": "入力値検証", "exception-message": "quantityを整数で入力してください"}

    ■output_InventoryExc.json(在庫引当例外)

    JSONファイルの内容を次に示します。この内容は,「5.5.2(2) InventoryManagementアダプタと在庫管理サービスの間の通信が失敗した例外(在庫引当例外)」で作成したレスポンス(ボディ)の内容と同じです。

    {"exception-activity":"在庫引当","exception-message":"jp.co.Hitachi.soft.csc.msg.adapter.protocol.CSCMsgCustomAccessException: A service call was interrupted because a custom service access error was detected. (adapter name = InvAdp, HCSCCommonID = CSC_HCSC_2024-06-25_17:27:38.029_6, ServiceRequestID = MSG_HCSC_SyncBP_2024-06-25_17:27:38.045_14, error message = An HTTP adapter error occurred. (adapter name = InvAdp, operation name = reserveItem, exception information = jp.co.Hitachi.soft.csc.cstmadp.http.rt.exception.CSAHTAException: KDEC81054-E An error status code was received from the service. (adapter name = InvAdp, operation name = reserveItem, status code = 404)), code = KDEC81499-E) ErrorCode=KDEC03005-E"}

    ■output_DeliveryExc.json(配送手配例外)

    JSONファイルの内容を次に示します。この内容は,「5.5.2(3) DeliveryReceiptアダプタと配送受付サービスの間の通信が失敗した例外(配送手配例外)」で作成したレスポンス(ボディ)の内容と同じです。

    {"exception-activity":"配送手配","exception-message":"jp.co.Hitachi.soft.csc.msg.adapter.protocol.CSCMsgCustomAccessException: A service call was interrupted because a custom service access error was detected. (adapter name = DelAdp, HCSCCommonID = CSC_HCSC_2024-06-25_17:33:39.366_8, ServiceRequestID = MSG_HCSC_SyncBP_2024-06-25_17:33:39.625_18, error message = An HTTP adapter error occurred. (adapter name = DelAdp, operation name = deliverItem, exception information = jp.co.Hitachi.soft.csc.cstmadp.http.rt.exception.CSAHTAException: KDEC81054-E An error status code was received from the service. (adapter name = DelAdp, operation name = deliverItem, status code = 404)), code = KDEC81499-E) ErrorCode=KDEC03005-E"}
  • 作成したJSONファイルのフォルダ構成

    ここでは,作成したJSONファイルを次のフォルダに格納するものとします。

    C:\Users\work\response_FaultHandling
    └─output_ArrNor.json
      output_DeliveryExc.json
      output_InventoryExc.json
      output_JavaExc.json
  • cscjson2xsdコマンドの実行例

    この操作は,管理者または管理者特権で実行してください。

    この実行例では,出力するXMLスキーマとして「output_ArrFau.xsd」を指定しています。

    C:\Users\work\response_FaultHandling>"%COSMINEXUS_HOME%\CSCTE\bin\cscjson2xsd.bat" -in ./ -out output_ArrFau.xsd
    KECT93001-I Execution of the command will now start. (command = cscjson2xsd)
    KECT93002-I Execution of the command ended normally. (command = cscjson2xsd)
  • 作成されたXMLスキーマ(output_ArrFau.xsd)

    コマンド実行後,次の内容のXMLスキーマ「output_ArrFau.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:choice>
            <xs:sequence>
              <xs:element ref="exception-activity"/>
              <xs:element ref="exception-message"/>
            </xs:sequence>
            <xs:sequence>
              <xs:element ref="deliveryNumber"/>
              <xs:element ref="itemName"/>
              <xs:element ref="message"/>
              <xs:element ref="quantity"/>
            </xs:sequence>
          </xs:choice>
        </xs:complexType>
      </xs:element>
      <xs:element name="exception-activity" type="xs:NCName"/>
      <xs:element name="exception-message" type="xs:string"/>
      <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_FaultHandling

(b) 電文フォーマットの指定

作成したXMLスキーマをServiceReceipt受付に設定します。手順を次に示します。

  1. [ユーザ定義受付(基本)]タブでユーザ定義受付定義(基本)画面に切り替えます。

  2. [応答電文]−[受付]−[電文フォーマット]の[参照]ボタンをクリックして,XMLスキーマ「output_ArrFau.xsd」を指定します。

    [図データ]

  3. メニューから[ファイル]−[保管]を選択します。

これでServiceReceipt受付の作成が完了しました。

(4) 変数の設定

ビジネスプロセスでは,アクティビティを定義するときに変数を使用します。そのため,使用する変数をあらかじめ定義しておく必要があります。ProductStock_FaultHandlingビジネスプロセスで使用する変数を次の表に示します。

表5‒9 ProductStock_FaultHandlingビジネスプロセスで使用する変数

変数名

種別

説明

InputData

XML

受付アクティビティで受信するビジネスプロセスの要求電文のボディとして使用します。

ServiceReceipt受付の要求電文フォーマットを取り込み,定義します。

OutputData

XML

応答アクティビティで送信するビジネスプロセスの応答電文のボディとして使用します。

(3) 電文フォーマットの作成」で作成したServiceReceipt受付の応答電文フォーマットを取り込み,定義します。

InventoryAllocationInputData

XML

サービス呼出アクティビティで在庫管理サービスを呼び出す際の要求電文のボディとして使用します。

InventoryManagementサービスアダプタの要求電文フォーマットを取り込み,定義します。

InventoryAllocationOutputData

XML

サービス呼出アクティビティで在庫管理サービスを呼び出す際の応答電文のボディとして使用します。

InventoryManagementサービスアダプタの応答電文フォーマットを取り込み,定義します。

DeliveryArrangementInputData

XML

サービス呼出アクティビティで配送受付サービスを呼び出す際の要求電文のボディとして使用します。

DeliveryReceiptサービスアダプタの要求電文フォーマットを取り込み,定義します。

DeliveryArrangementOutputData

XML

サービス呼出アクティビティで配送受付サービスを呼び出す際の応答電文のボディとして使用します。

DeliveryReceiptサービスアダプタの応答電文フォーマットを取り込み,定義します。

FaultHeader

XML

例外発生時に返却する応答電文のヘッダとして使用します。

Service Architectで用意されているHTTPアダプタ応答電文用スキーマファイルを取り込み,定義します。

FaultJava

XML

Java呼出アクティビティで例外が発生した際のフォルト電文のボディとして使用します。

Service Architectで用意されているJava呼出アクティビティのフォルト処理用スキーマファイルを取り込み,定義します。

FaultInvoke

XML

サービス呼出アクティビティで例外が発生した際のフォルト電文のボディとして使用します。

Service Architectで用意されている,サービスアダプタで発生した例外をフォルト電文に変換する設定にした場合に使用するスキーマファイルを取り込み,定義します。

これらの変数は,次の変数を除いてProductStock_Normalビジネスプロセスで設定済みです。

ここでは,これら4つの変数を設定します。設定手順を次に示します。

  1. ツリービューの[サービス定義一覧]からProductStock_FaultHandlingビジネスプロセスをダブルクリックします。

    ビジネスプロセス定義画面が表示されます。

  2. ビジネスプロセス定義画面のキャンバス上の[変数・相関セット]アイコンをダブルクリックします。

    [変数・相関セット一覧]ダイアログが表示されます。

  3. [変数一覧]を選択します。変数名に「FaultHeader」を入力し,種別は,ドロップダウンリストから「XML」を選択します。

  4. [参照]ボタンをクリックして次のファイルを取り込みます。

    <Service Architectのインストールディレクトリ>\CSC\custom-reception\http\schema\urecp_http_header_response.xsd

  5. [変数・相関セット一覧]ダイアログの[追加]ボタンをクリックします。

    変数一覧に変数「FaultHeader」が追加されます。

  6. 「FaultJava」,「FaultInvoke」も,手順2.〜4.と同様の手順で設定します。

    [変数・相関セット一覧]ダイアログで設定する種別はすべて[XML]です。それぞれの変数で取り込むファイルを次に示します。

    FaultJava

    <Service Architectのインストールディレクトリ>\CSC\schema\fault\cscinvokejavafault.xsd

    FaultInvoke

    <Service Architectのインストールディレクトリ>\CSC\system\msg\cscfault.xsd

  7. 「OutputData」を更新するため,[変数一覧]から変数名「OutputData」を選択します。

  8. [取込]ボタンをクリックします。

    [電文フォーマットの取込]ダイアログが表示されます。

  9. [受付名]を選択して,ドロップダウンリストから「ServiceReceipt」を選択します。

  10. [オペレーション名]はドロップダウンリストから「arrangeItem」を,[電文種別]はドロップダウンリストから「応答電文(ボディ)」を選択します。[電文フォーマット]に「OutputData」を入力します。

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

    [電文フォーマットの取込]ダイアログが閉じます。

  12. [変数・相関セット一覧]ダイアログの[更新]ボタンをクリックします。

    変数「OutputData」が更新されます。

  13. [変数・相関セット一覧]ダイアログの[OK]ボタンをクリックします。

    これで変数が設定できました。

    [図データ]

(5) アクティビティの配置

(a) ProductStock_FaultHandlingビジネスプロセスに必要なアクティビティ

ProductStock_FaultHandlingビジネスプロセスに必要なアクティビティを次の表に示します。

表5‒10 ProductStock_FaultHandlingビジネスプロセスに必要なアクティビティ

アクティビティ名

アクティビティ種別

説明

受付

受付アクティビティ

サービスリクエスタからの応答を受け付けます。

在庫引当前処理

データ変換アクティビティ

在庫引当時のデータを編集します。

入力値検証

Java呼出アクティビティ

入力値を検証します。

入力値検証例外の応答ボディ処理

データ変換アクティビティ

入力値検証例外用レスポンスのボディのデータを編集します。

入力値検証例外の応答ヘッダ処理

データ変換アクティビティ

入力値検証例外用レスポンスのヘッダのデータを編集します。

応答_入力値検証例外

応答アクティビティ

処理結果をサービスリクエスタへ返します。

途中終了_入力値検証例外

途中終了アクティビティ

入力値検証で例外が発生した場合,途中終了します。

在庫引当

サービス呼出アクティビティ

在庫管理サービスを呼び出します。

在庫引当例外の応答ボディ処理

データ変換アクティビティ

在庫引当例外用レスポンスのボディのデータを編集します。

在庫引当例外の応答ヘッダ処理

データ変換アクティビティ

在庫引当例外用レスポンスのヘッダのデータを編集します。

応答_在庫引当例外

応答アクティビティ

処理結果をサービスリクエスタへ返します。

途中終了_在庫引当例外

途中終了アクティビティ

在庫引当で例外が発生した場合,途中終了します。

在庫引当結果チェック

分岐開始アクティビティ

条件(在庫の有無)による処理をします。

在庫なし設定

データ変換アクティビティ

在庫なしレスポンスを返却できるようにデータを編集します。

応答_在庫なしエラー

応答アクティビティ

処理結果をサービスリクエスタへ返します。

配送手配前処理

データ変換アクティビティ

配送手配時のデータを編集します。

配送手配

サービス呼出アクティビティ

配送受付サービスを呼び出します。

配送手配例外の応答ボディ処理

データ変換アクティビティ

配送手配例外用レスポンスのボディのデータを編集します。

配送手配例外の応答ヘッダ処理

データ変換アクティビティ

配送手配例外用レスポンスのヘッダのデータを編集します。

応答_配送手配例外

応答アクティビティ

処理結果をサービスリクエスタへ返します。

途中終了_配送手配例外

途中終了アクティビティ

配送手配で例外が発生した場合,途中終了します。

配送番号設定

データ変換アクティビティ

在庫ありレスポンスを返却できるようにデータを編集します

応答_手配成功

応答アクティビティ

処理結果をサービスリクエスタへ返します。

在庫引当結果チェック_終了

分岐終了アクティビティ

条件(在庫の有無)による処理を終了します。

(b) アクティビティの配置方法

次の図のフローになるよう,アクティビティを配置します。アクティビティは表5-10に記載している順番どおりに,パレットから連結元のアクティビティの近くにドロップしてください。

なお,次に示すアクティビティは[パレット]−[コネクション]−[フォルト]を選択して,連結元アクティビティから連結先アクティビティを連結してください。

連結元アクティビティ

連結先アクティビティ

入力値検証(Java呼出1)

入力値検証例外の応答ボディ処理(データ変換1)

在庫引当

在庫引当例外の応答ボディ処理(データ変換3)

配送手配

配送手配例外の応答ボディ処理(データ変換5)

[図データ]

ポイント
  • 配置後に,分岐終了アクティビティを終了アクティビティの近くに移動することで,分岐終了アクティビティから終了アクティビティに連結できます。

  • アクティビティ配置時に連結できなかった場合は,次の手順で連結してください。

  1. アクティビティを連結するために,パレットの[コネクション]をクリックします。

  2. 連結元である開始アクティビティをクリックします。

  3. 連結先である受付アクティビティをクリックします。

  4. 受付アクティビティから終了アクティビティまでを手順1.〜手順3.と同様の手順で1つずつ連結します。

(6) アクティビティの定義

キャンバスへ配置した各アクティビティの内容を定義します。

ProductStock_Nomalビジネスプロセスで定義済のアクティビティは定義内容が引き継がれています。ここでは,主にProductStock_FaultHandlingビジネスプロセスで新しく追加するアクティビティの定義について説明します。

(a) 受付アクティビティ(アクティビティ名:受付)

ProductStock_Nomalビジネスプロセスで定義済のアクティビティです。次のように定義されていることを確認します。

項目名

設定値

アクティビティ名

受付

オペレーション名

arrangeItem

ボディ割当変数

InputData

ヘッダ割当変数

設定なし

割当相関セット群

設定なし

通信モデル

同期

インスタンス生成

yes

各設定項目の詳細については,「5.2.4(6)(a) 受付アクティビティ(アクティビティ名:受付)」を参照してください。

(b) データ変換アクティビティ(アクティビティ名:在庫引当前処理)

ProductStock_Nomalビジネスプロセスで定義済のアクティビティです。次のように定義されていることを確認します。

項目名

設定値

アクティビティ名

在庫引当前処理

変数(変換元変数)

InputData

変数(変換先変数)

InventoryAllocationInputData

また,データ変換のマッピング定義を確認します。

各設定項目の詳細については,「5.2.4(6)(b) データ変換アクティビティ(アクティビティ名:在庫引当前処理)」を参照してください。

(c) Java呼出アクティビティ(アクティビティ名:入力値検証)

ProductStock_FaultHandlingビジネスプロセスで新しく追加したアクティビティです。次の手順で定義します。

  1. キャンバスのJava呼出アクティビティ(Java呼出1)をダブルクリックします。

    [Java呼出アクティビティ]ダイアログが表示されます。

  2. 次の内容を入力します。

    [図データ]

    項目名

    設定する値

    説明

    アクティビティ名

    入力値検証

    アクティビティの名称を入力します。

    Javaクラス名

    Validation

    Javaクラス名を入力します。

    引数用割当変数

    添字:0

    種別:XML

    変数名:InventoryAllocationInputData

    [Javaクラス名]で指定したJavaクラスを呼び出すときの引数に割り当てる変数をドロップダウンリストから選択し,[追加]ボタンをクリックします。

    戻り値用割当変数

    なし

    [Javaクラス名]で指定したJavaクラスを呼び出すときの戻り値に割り当てる変数を選択します。この商品手配システムでは使用しないため,設定しません。

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

  4. キャンバスのJava呼出アクティビティをダブルクリックするか,または右クリックして[Javaエディタ起動]を選択します。

    JavaクラスValidationを作成するかを確認するメッセージが表示されるので,「はい」をクリックします。

    EclipseのJavaエディタが起動されます。Javaエディタには,[Java呼出アクティビティ]ダイアログで指定したクラスのソースコードが表示されます。

  5. JavaクラスのソースコードをJavaエディタで編集します。

    次のディレクトリに格納されているJavaソースファイル(Validation.java)をテキストエディタで開き,Javaソースコードをすべてコピーして,Javaエディタで開いたValidation.javaにペーストします。Javaエディタで開いたValidation.javaの内容をすべて消去してからペーストしてください。これにより,ディレクトリに格納されているValidation.javaの内容をJava呼出アクティビティのソースコードに反映させます。

    <Service Architectのインストールディレクトリ>\CSCTE\Samples\SOAP1.1_1.2mode\ProductStock_REST\Repository\Validation.java
  6. 編集したソースコードを保存して,Javaエディタを終了します。

(d) データ変換アクティビティ(アクティビティ名:入力値検証例外の応答ボディ処理)

ProductStock_FaultHandlingビジネスプロセスで新しく追加したアクティビティです。次の手順で定義します。

  1. キャンバスのデータ変換アクティビティ(データ変換1)をダブルクリックします。

    [データ変換アクティビティ]ダイアログが表示されます。

  2. 次の内容を入力します。

    [図データ]

    項目名

    設定する値

    説明

    アクティビティ名

    入力値検証例外の応答ボディ処理

    アクティビティの名称を入力します。

    変数(変換元変数)

    FaultJava

    データの変換元になる変数をドロップダウンリストから選択し,[追加]ボタンをクリックします。

    変数(変換先変数)

    OutputData

    データの変換先になる変数をドロップダウンリストから選択します。

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

  4. キャンバスのデータ変換アクティビティを右クリックして,[マッピング定義起動]を選択します。

    [ルート要素選択]ダイアログが表示されます。

  5. 変換元のスキーマ論理名「FaultJava」のルート要素をクリックして,ドロップダウンリストから「fault」を選択します。

  6. 変換先のスキーマ論理名「OutputData」のルート要素をクリックして,ドロップダウンリストから「csc-object」を選択します。

    [図データ]

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

    データ変換定義画面が表示されます。

  8. データ変換定義画面のパレットから[マッピング]を選択します。

    [図データ]

  9. マッピング元となる変換元ノードのノードアダプタをクリックします。

  10. マッピング先となる変換先ノードのノードアダプタをクリックします。

    マッピング線が設定されます。マッピング元のノードアダプタとマッピング先のノードアダプタとの対応は次のとおりです。

    [図データ]

    作成したXMLスキーマによって変換先スキーマの要素の出現順が一部異なるため,マッピング線の見え方が異なる場合があります。

(e) データ変換アクティビティ(アクティビティ名:入力値検証例外の応答ヘッダ処理)

ProductStock_FaultHandlingビジネスプロセスで新しく追加したアクティビティです。次の手順で定義します。

  1. キャンバスのデータ変換アクティビティ(データ変換2)をダブルクリックします。

    [データ変換アクティビティ]ダイアログが表示されます。

  2. 次の内容を入力します。

    [図データ]

    項目名

    設定する値

    説明

    アクティビティ名

    入力値検証例外の応答ヘッダ処理

    アクティビティの名称を入力します。

    変数(変換元変数)

    InputData

    データの変換元になる変数をドロップダウンリストから選択し,[追加]ボタンをクリックします。

    変数(変換先変数)

    FaultHeader

    データの変換先になる変数をドロップダウンリストから選択します。

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

  4. キャンバスのデータ変換アクティビティを右クリックして,[マッピング定義起動]を選択します。

    [ルート要素選択]ダイアログが表示されます。

  5. 変換元のスキーマ論理名「InputData」のルート要素をクリックして,ドロップダウンリストから「csc-object」を選択します。

  6. 変換先のスキーマ論理名「FaultHeader」のルート要素をクリックして,ドロップダウンリストから「hrc:http-header-response」を選択します。

    [図データ]

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

    データ変換定義画面が表示されます。

  8. データ変換定義画面のパレット[その他]から定数ファンクション(const)を選択します。

  9. マッピングビューアで適当な場所をクリックして定数ファンクションを配置します。

  10. 定数ファンクションをダブルクリックします。

    [定数]ダイアログが表示されます。

  11. [定数]ダイアログで次の値を指定します。

    属性名

    属性値

    ファンクション名

    Bad_Request

    数値

    400

    [図データ]

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

  13. 次の図のようになるようにマッピング線を設定します。

    [図データ]

    作成したXMLスキーマによって変換先スキーマの要素の出現順が一部異なるため,マッピング線の見え方が異なる場合があります。

(f) 応答アクティビティ(アクティビティ名:応答_入力値検証例外)

ProductStock_FaultHandlingビジネスプロセスで新しく追加したアクティビティです。次の手順で定義します。

  1. キャンバスの応答アクティビティ(応答1)をダブルクリックします。

    [応答アクティビティ]ダイアログが表示されます。

  2. 次の内容を入力します。

    [図データ]

    項目名

    設定する値

    説明

    アクティビティ名

    応答_入力値検証例外

    アクティビティの名称を入力します。

    オペレーション名

    arrangeItem

    対応する受付アクティビティに指定したオペレーション名を入力します。

    ボディ割当変数

    OutputData

    ビジネスプロセスの応答電文のボディに割り当てる変数をドロップダウンリストから選択します。

    ヘッダ割当変数

    割当変数:FaultHeader

    ルート要素:http-header-response

    名前空間:

    http://www.hitachi.co.jp/soft/xml/cosminexus/csc/reception/http/response

    ビジネスプロセスの応答電文のヘッダに変数を割り当てる場合に設定します。

    ヘッダ割当変数の[設定]ボタンをクリックし,[ヘッダ割当変数]ダイアログで[追加]ボタンをクリックして,[割当変数][ルート要素][名前空間]を設定してください。

    割当相関セット群

    設定なし

    相関セットグループをアクティビティに割り当てる場合に入力します。この商品手配システムでは使用しないため,設定しません。

    フォルト名

    設定なし

    フォルト処理として応答アクティビティを定義して,サービスリクエスタにフォルトが発生したことを示す応答電文を送信する場合のフォルトの名称を入力します。この商品手配システムではフォルト処理を使用しないため,設定しません。

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

(g) 途中終了アクティビティ(アクティビティ名:途中終了_入力値検証例外)

ProductStock_FaultHandlingビジネスプロセスで新しく追加したアクティビティです。次の手順で定義します。

  1. キャンバスの途中終了アクティビティ(途中終了1)をダブルクリックします。

    [途中終了]ダイアログが表示されます。

  2. [途中終了アクティビティ]ダイアログにアクティビティ名を入力します。

    アクティビティ名「途中終了_入力値検証例外」を入力します。

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

(h) サービス呼出アクティビティ(アクティビティ名:在庫引当)

ProductStock_Nomalビジネスプロセスで定義済のアクティビティです。次のように定義されていることを確認します。

項目名

設定する値

アクティビティ名

在庫引当

サービス名

InventoryManagement

オペレーション名

reserveItem

通信モデル

同期

ボディ割当変数(要求電文)

InventoryAllocationInputData

ヘッダ割当変数(要求電文)

設定なし

ボディ割当変数(応答電文)

InventoryAllocationOutputData

ヘッダ割当変数(応答電文)

設定なし

割当相関セット群

設定なし

各設定項目の詳細については,「5.2.4(6)(c) サービス呼出アクティビティ(アクティビティ名:在庫引当)」を参照してください。

(i) データ変換アクティビティ(アクティビティ名:在庫引当例外の応答ボディ処理)

ProductStock_FaultHandlingビジネスプロセスで新しく追加したアクティビティです。次の手順で定義します。

  1. キャンバスのデータ変換アクティビティ(データ変換3)をダブルクリックします。

    [データ変換アクティビティ]ダイアログが表示されます。

  2. 次の内容を入力します。

    [図データ]

    項目名

    設定する値

    説明

    アクティビティ名

    在庫引当例外の応答ボディ処理

    アクティビティの名称を入力します。

    変数(変換元変数)

    FaultInvoke

    データの変換元になる変数をドロップダウンリストから選択し,[追加]ボタンをクリックします。

    変数(変換先変数)

    OutputData

    データの変換先になる変数をドロップダウンリストから選択します。

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

  4. キャンバスのデータ変換アクティビティを右クリックして,[マッピング定義起動]を選択します。

    [ルート要素選択]ダイアログが表示されます。

  5. 変換元のスキーマ論理名「FaultInvoke」のルート要素をクリックして,ドロップダウンリストから「cscft:fault」を選択します。

  6. 変換先のスキーマ論理名「OutputData」のルート要素をクリックして,ドロップダウンリストから「csc-object」を選択します。

    [図データ]

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

    データ変換定義画面が表示されます。

  8. データ変換定義画面のパレットから[マッピング]を選択します。

    [図データ]

  9. マッピング元となる変換元ノードのノードアダプタをクリックします。

  10. マッピング先となる変換先ノードのノードアダプタをクリックします。

    マッピング線が設定されます。マッピング元のノードアダプタとマッピング先のノードアダプタとの対応は次のとおりです。

    [図データ]

    作成したXMLスキーマによって変換先スキーマの要素の出現順が一部異なるため,マッピング線の見え方が異なる場合があります。

  11. データ変換定義画面のパレット[その他]から定数ファンクション(const)を選択します。

  12. マッピングビューアで適当な場所をクリックして定数ファンクションを配置します。

  13. 定数ファンクションをダブルクリックします。

    [定数]ダイアログが表示されます。

  14. [定数]ダイアログで次の値を指定します。

    属性名

    属性値

    ファンクション名

    Activity_Name

    文字列

    在庫引当

    [図データ]

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

  16. 次の図のようになるようにマッピング線を設定します。

    [図データ]

(j) データ変換アクティビティ(アクティビティ名:在庫引当例外の応答ヘッダ処理)

ProductStock_FaultHandlingビジネスプロセスで新しく追加したアクティビティです。次の手順で定義します。

  1. キャンバスのデータ変換アクティビティ(データ変換4)をダブルクリックします。

    [データ変換アクティビティ]ダイアログが表示されます。

  2. 次の内容を入力します。

    [図データ]

    項目名

    設定する値

    説明

    アクティビティ名

    在庫引当例外の応答ヘッダ処理

    アクティビティの名称を入力します。

    変数(変換元変数)

    InputData

    データの変換元になる変数をドロップダウンリストから選択し,[追加]ボタンをクリックします。

    変数(変換先変数)

    FaultHeader

    データの変換先になる変数をドロップダウンリストから選択します。

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

  4. キャンバスのデータ変換アクティビティを右クリックして,[マッピング定義起動]を選択します。

    [ルート要素選択]ダイアログが表示されます。

  5. 変換元のスキーマ論理名「InputData」のルート要素をクリックして,ドロップダウンリストから「csc-object」を選択します。

  6. 変換先のスキーマ論理名「FaultHeader」のルート要素をクリックして,ドロップダウンリストから「hrc:http-header-response」を選択します。

    [図データ]

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

    データ変換定義画面が表示されます。

  8. データ変換定義画面のパレット[その他]から定数ファンクション(const)を選択します。

  9. マッピングビューアで適当な場所をクリックして定数ファンクションを配置します。

  10. 定数ファンクションをダブルクリックします。

    [定数]ダイアログが表示されます。

  11. [定数]ダイアログで次の値を指定します。

    属性名

    属性値

    ファンクション名

    Internal_Server_Error

    数値

    500

    [図データ]

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

  13. 次の図のようになるようにマッピング線を設定します。

    [図データ]

    作成したXMLスキーマによって変換先スキーマの要素の出現順が一部異なるため,マッピング線の見え方が異なる場合があります。

(k) 応答アクティビティ(アクティビティ名:応答_在庫引当例外)

ProductStock_FaultHandlingビジネスプロセスで新しく追加したアクティビティです。次の手順で定義します。

  1. キャンバスの応答アクティビティ(応答2)をダブルクリックします。

    [応答アクティビティ]ダイアログが表示されます。

  2. 次の内容を入力します。

    [図データ]

    項目名

    設定する値

    説明

    アクティビティ名

    応答_在庫引当例外

    アクティビティの名称を入力します。

    オペレーション名

    arrangeItem

    対応する受付アクティビティに指定したオペレーション名を入力します。

    ボディ割当変数

    OutputData

    ビジネスプロセスの応答電文のボディに割り当てる変数をドロップダウンリストから選択します。

    ヘッダ割当変数

    割当変数:FaultHeader

    ルート要素:http-header-response

    名前空間:

    http://www.hitachi.co.jp/soft/xml/cosminexus/csc/reception/http/response

    ビジネスプロセスの応答電文のヘッダに変数を割り当てる場合に設定します。

    ヘッダ割当変数の[設定]ボタンをクリックし,[ヘッダ割当変数]ダイアログで[追加]ボタンをクリックして,[割当変数][ルート要素][名前空間]を設定してください。

    割当相関セット群

    設定なし

    相関セットグループをアクティビティに割り当てる場合に入力します。この商品手配システムでは使用しないため,設定しません。

    フォルト名

    設定なし

    フォルト処理として応答アクティビティを定義して,サービスリクエスタにフォルトが発生したことを示す応答電文を送信する場合のフォルトの名称を入力します。この商品手配システムではフォルト処理を使用しないため,設定しません。

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

(l) 途中終了アクティビティ(アクティビティ名:途中終了_在庫引当例外)

ProductStock_FaultHandlingビジネスプロセスで新しく追加したアクティビティです。次の手順で定義します。

  1. キャンバスの途中終了アクティビティ(途中終了2)をダブルクリックします。

    [途中終了アクティビティ]ダイアログが表示されます。

  2. [途中終了アクティビティ]ダイアログにアクティビティ名を入力します。

    アクティビティ名「途中終了_在庫引当例外」を入力します。

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

(m) 分岐開始アクティビティ(アクティビティ名:在庫引当結果チェック)

ProductStock_Nomalビジネスプロセスで定義済のアクティビティです。[条件設定]ダイアログで次のように定義されていることを確認します。

項目名

設定する値

説明

条件名

No Stock

在庫がない場合の条件の名称を指定します。

変数の表示

なし

このドロップダウンリストは,条件に変数を利用した式を設定する場合に一時的に使用するものです。ここでは何も設定しません。

csc:getVariableData("InventoryAllocationOutputData", "/csc-object/reservationNumber")="*"

在庫がない場合の条件式をXPath式で指定します。

注※

「式」の「設定する値」はテキストボックスの幅で折り返して表示されます。

また,[分岐アクティビティ]ダイアログで,[遷移先]が[配送手配前処理]の[優先順位]が「Default」であることを確認します。

各設定項目の詳細については,「5.2.4(6)(j) 分岐開始アクティビティ(アクティビティ名:在庫引当結果チェック)」を参照してください。

(n) データ変換アクティビティ(アクティビティ名:在庫なし設定)

ProductStock_Nomalビジネスプロセスで定義済のアクティビティです。ProductStock_FaultHandlingビジネスプロセスでは,変換先変数のOutputDataの電文フォーマットが変更されているため,データ変換のマッピングを再定義します。

  1. キャンバスのデータ変換アクティビティ(在庫なし設定)を右クリックして,[設定]を選択します。

    [データ変換アクティビティ]ダイアログが表示されます。

  2. 次のように定義されていることを確認します。

    項目名

    設定する値

    アクティビティ名

    在庫なし設定

    変数(変換元変数)

    InputData

    変数(変換先変数)

    OutputData

    各設定項目の詳細については,「5.2.4(6)(d) データ変換アクティビティ(アクティビティ名:在庫なし設定)」を参照してください。

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

  4. キャンバスのデータ変換アクティビティを右クリックして,[マッピング定義起動]を選択します。

    電文フォーマットの更新を反映させるかどうかを確認するメッセージが表示されるので,[OK]ボタンをクリックします。

    データ変換定義画面が表示されます。

  5. データ変換定義画面のパレットから[マッピング]を選択します。

    [図データ]

  6. マッピング元となる変換元ノードのノードアダプタをクリックします。

  7. マッピング先となる変換先ノードのノードアダプタをクリックします。

    マッピング線が設定されます。マッピング元のノードアダプタとマッピング先のノードアダプタとの対応は次のとおりです。

    [図データ]

    作成したXMLスキーマによって変換先スキーマの要素の出現順が一部異なるため,マッピング線の見え方が異なる場合があります。

  8. データ変換定義画面のパレット[その他]から定数ファンクション(const)を選択します。

  9. マッピングビューアで適当な場所をクリックして定数ファンクションを配置します。

  10. 定数ファンクションをダブルクリックします。

    [定数]ダイアログが表示されます。

  11. [定数]ダイアログで次の値を指定します。

    属性名

    属性値

    ファンクション名

    NoStock_Message

    文字列

    No stock is available.

    [図データ]

  12. [OK]ボタンをクリックして[定数]ダイアログを閉じます。

  13. 手順8.〜手順12.と同様の手順で,もう一つ定数ファンクション(const)を作成します。[定数]ダイアログでは次の値を指定します。

    属性名

    属性値

    ファンクション名

    No_deliveryNumber

    文字列

    (何も入力しない)

    [図データ]

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

  15. 次の図のようになるようにマッピング線を設定します。

    [図データ]

(o) 応答アクティビティ(アクティビティ名:応答_在庫なしエラー)

ProductStock_Nomalビジネスプロセスで定義済のアクティビティです。次のように定義されていることを確認します。

項目名

設定する値

アクティビティ名

応答_在庫なしエラー

オペレーション名

arrangeItem

ボディ割当変数

OutputData

ヘッダ割当変数

設定なし

割当相関セット群

設定なし

フォルト名

設定なし

各設定項目の詳細については,「5.2.4(6)(e) 応答アクティビティ(アクティビティ名:応答_在庫なしエラー)」を参照してください。

(p) データ変換アクティビティ(アクティビティ名:配送手配前処理)

ProductStock_Nomalビジネスプロセスで定義済のアクティビティです。次のように定義されていることを確認します。

項目名

設定する値

アクティビティ名

配送手配前処理

変数(変換元変数)

InventoryAllocationOutputData

変数(変換先変数)

DeliveryArrangementInputData

また,データ変換のマッピング定義を確認します。

各設定項目の詳細については,「5.2.4(6)(f) データ変換アクティビティ(アクティビティ名:配送手配前処理)」を参照してください。

(q) サービス呼出アクティビティ(アクティビティ名:配送手配)

ProductStock_Nomalビジネスプロセスで定義済のアクティビティです。次のように定義されていることを確認します。

項目名

設定する値

アクティビティ名

配送手配

サービス名

DeliveryReceipt

オペレーション名

deliverItem

通信モデル

同期

ボディ割当変数(要求電文)

DeliveryArrangementInputData

ヘッダ割当変数(要求電文)

設定なし

ボディ割当変数(応答電文)

DeliveryArrangementOutputData

ヘッダ割当変数(応答電文)

設定なし

割当相関セット群

設定なし

各設定項目の詳細については,「5.2.4(6)(g) サービス呼出アクティビティ(アクティビティ名:配送手配)」を参照してください。

(r) データ変換アクティビティ(アクティビティ名:配送手配例外の応答ボディ処理)

ProductStock_FaultHandlingビジネスプロセスで新しく追加したアクティビティです。次の手順で定義します。

  1. キャンバスのデータ変換アクティビティ(データ変換5)をダブルクリックします。

    [データ変換アクティビティ]ダイアログが表示されます。

  2. 次の内容を入力します。

    [図データ]

    項目名

    設定する値

    説明

    アクティビティ名

    配送手配例外の応答ボディ処理

    アクティビティの名称を入力します。

    変数(変換元変数)

    FaultInvoke

    データの変換元になる変数をドロップダウンリストから選択し,[追加]ボタンをクリックします。

    変数(変換先変数)

    OutputData

    データの変換先になる変数をドロップダウンリストから選択します。

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

  4. キャンバスのデータ変換アクティビティを右クリックして,[マッピング定義起動]を選択します。

    [ルート要素選択]ダイアログが表示されます。

  5. 変換元のスキーマ論理名「FaultInvoke」のルート要素をクリックして,ドロップダウンリストから「cscft:fault」を選択します。

  6. 変換先のスキーマ論理名「OutputData」のルート要素をクリックして,ドロップダウンリストから「csc-object」を選択します。

    [図データ]

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

    データ変換定義画面が表示されます。

  8. データ変換定義画面のパレットから[マッピング]を選択します。

    [図データ]

  9. マッピング元となる変換元ノードのノードアダプタをクリックします。

  10. マッピング先となる変換先ノードのノードアダプタをクリックします。

    マッピング線が設定されます。マッピング元のノードアダプタとマッピング先のノードアダプタとの対応は次のとおりです。

    [図データ]

    作成したXMLスキーマによって変換先スキーマの要素の出現順が一部異なるため,マッピング線の見え方が異なる場合があります。

  11. データ変換定義画面のパレット[その他]から定数ファンクション(const)を選択します。

  12. マッピングビューアで適当な場所をクリックして定数ファンクションを配置します。

  13. 定数ファンクションをダブルクリックします。

    [定数]ダイアログが表示されます。

  14. [定数]ダイアログで次の値を指定します。

    属性名

    属性値

    ファンクション名

    Activity_Name

    文字列

    配送手配

    [図データ]

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

  16. 次の図のようになるようにマッピング線を設定します。

    [図データ]

(s) データ変換アクティビティ(アクティビティ名:配送手配例外の応答ヘッダ処理)

ProductStock_FaultHandlingビジネスプロセスで新しく追加したアクティビティです。次の手順で定義します。

  1. キャンバスのデータ変換アクティビティ(データ変換6)をダブルクリックします。

    [データ変換アクティビティ]ダイアログが表示されます。

  2. 次の内容を入力します。

    [図データ]

    項目名

    設定する値

    説明

    アクティビティ名

    配送手配例外の応答ヘッダ処理

    アクティビティの名称を入力します。

    変数(変換元変数)

    InputData

    データの変換元になる変数をドロップダウンリストから選択し,[追加]ボタンをクリックします。

    変数(変換先変数)

    FaultHeader

    データの変換先になる変数をドロップダウンリストから選択します。

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

  4. キャンバスのデータ変換アクティビティを右クリックして,[マッピング定義起動]を選択します。

    [ルート要素選択]ダイアログが表示されます。

  5. 変換元のスキーマ論理名「InputData」のルート要素をクリックして,ドロップダウンリストから「csc-object」を選択します。

  6. 変換先のスキーマ論理名「FaultHeader」のルート要素をクリックして,ドロップダウンリストから「hrc:http-header-response」を選択します。

    [図データ]

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

    データ変換定義画面が表示されます。

  8. データ変換定義画面のパレット[その他]から定数ファンクション(const)を選択します。

  9. マッピングビューアで適当な場所をクリックして定数ファンクションを配置します。

  10. 定数ファンクションをダブルクリックします。

    [定数]ダイアログが表示されます。

  11. [定数]ダイアログで次の値を指定します。

    属性名

    属性値

    ファンクション名

    Internal_Server_Error

    数値

    500

    [図データ]

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

  13. 次の図のようになるようにマッピング線を設定します。

    [図データ]

    作成したXMLスキーマによって変換先スキーマの要素の出現順が一部異なるため,マッピング線の見え方が異なる場合があります。

(t) 応答アクティビティ(アクティビティ名:応答_配送手配例外)

ProductStock_FaultHandlingビジネスプロセスで新しく追加したアクティビティです。次の手順で定義します。

  1. キャンバスの応答アクティビティ(応答3)をダブルクリックします。

    [応答アクティビティ]ダイアログが表示されます。

  2. 次の内容を入力します。

    [図データ]

    項目名

    設定する値

    説明

    アクティビティ名

    応答_配送手配例外

    アクティビティの名称を入力します。

    オペレーション名

    arrangeItem

    対応する受付アクティビティに指定したオペレーション名を入力します。

    ボディ割当変数

    OutputData

    ビジネスプロセスの応答電文のボディに割り当てる変数をドロップダウンリストから選択します。

    ヘッダ割当変数

    割当変数:FaultHeader

    ルート要素:http-header-response

    名前空間:

    http://www.hitachi.co.jp/soft/xml/cosminexus/csc/reception/http/response

    ビジネスプロセスの応答電文のヘッダに変数を割り当てる場合に設定します。

    ヘッダ割当変数の[設定]ボタンをクリックし,[ヘッダ割当変数]ダイアログで[追加]ボタンをクリックして,[割当変数][ルート要素][名前空間]を設定してください。

    割当相関セット群

    設定なし

    相関セットグループをアクティビティに割り当てる場合に入力します。この商品手配システムでは使用しないため,設定しません。

    フォルト名

    設定なし

    フォルト処理として応答アクティビティを定義して,サービスリクエスタにフォルトが発生したことを示す応答電文を送信する場合のフォルトの名称を入力します。この商品手配システムではフォルト処理を使用しないため,設定しません。

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

(u) 途中終了アクティビティ(アクティビティ名:途中終了_配送手配例外)

ProductStock_FaultHandlingビジネスプロセスで新しく追加したアクティビティです。次の手順で定義します。

  1. キャンバスの途中終了アクティビティ(途中終了3)をダブルクリックします。

    [途中終了アクティビティ]ダイアログが表示されます。

  2. [途中終了アクティビティ]ダイアログにアクティビティ名を入力します。

    アクティビティ名「途中終了_配送手配例外」を入力します。

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

(v) データ変換アクティビティ(アクティビティ名:配送番号設定)

ProductStock_Nomalビジネスプロセスで定義済のアクティビティです。ProductStock_FaultHandlingビジネスプロセスでは,変換先変数のOutputDataの電文フォーマットが変更されているため,データ変換のマッピングを再定義します。

  1. キャンバスのデータ変換アクティビティ(配送番号設定)を右クリックして,[設定]を選択します。

    [データ変換アクティビティ]ダイアログが表示されます。

  2. 次のように定義されていることを確認します。

    項目名

    設定する値

    アクティビティ名

    配送番号設定

    変数(変換元変数)

    InputData

    DeliveryArrangementOutputData

    変数(変換先変数)

    OutputData

    注※ 変換元変数は2つ設定が必要です。

    各設定項目の詳細については,「5.2.4(6)(h) データ変換アクティビティ(アクティビティ名:配送番号設定)」を参照してください。

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

  4. キャンバスのデータ変換アクティビティを右クリックして,[マッピング定義起動]を選択します。

    電文フォーマットの更新を反映させるかどうかを確認するメッセージが表示されるので,[OK]ボタンをクリックします。

    データ変換定義画面が表示されます。

  5. データ変換定義画面のパレットから[マッピング]を選択します。

    [図データ]

  6. マッピング元となる変換元ノードのノードアダプタをクリックします。

  7. マッピング先となる変換先ノードのノードアダプタをクリックします。

    マッピング線が設定されます。マッピング元のノードアダプタとマッピング先のノードアダプタとの対応は次のとおりです。

    [図データ]

    作成したXMLスキーマによって変換先スキーマの要素の出現順が一部異なるため,マッピング線の見え方が異なる場合があります。

  8. データ変換定義画面のパレット[その他]から定数ファンクション(const)を選択します。

  9. マッピングビューアで適当な場所をクリックして定数ファンクションを配置します。

  10. 定数ファンクションをダブルクリックします。

    [定数]ダイアログが表示されます。

  11. [定数]ダイアログで次の値を指定します。

    属性名

    属性値

    ファンクション名

    Success_Message

    文字列

    Product is available for arrangement.

    [図データ]

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

  13. 次の図のようになるようにマッピング線を設定します。

    [図データ]

(w) 応答アクティビティ(アクティビティ名:応答_手配成功)

ProductStock_Nomalビジネスプロセスで定義済のアクティビティです。次のように定義されていることを確認します。

項目名

設定する値

アクティビティ名

応答_手配成功

オペレーション名

arrangeItem

ボディ割当変数

OutputData

ヘッダ割当変数

設定なし

割当相関セット群

設定なし

フォルト名

設定なし

各設定項目の詳細については,「5.2.4(6)(i) 応答アクティビティ(アクティビティ名:応答_手配成功)」を参照してください。

(7) フォルト処理の定義

フォルトハンドリングを実現するために,フォルトコネクション(赤い破線矢印)に対してフォルト処理を定義します。

(a) Java呼出アクティビティ(アクティビティ名:入力値検証)を連結元とするフォルトコネクションの定義

  1. キャンバスのJava呼出アクティビティ(入力値検証)を連結元とするフォルトコネクションの連結線をダブルクリックします。

    [フォルト処理の割当]ダイアログが表示されます。

  2. フォルト処理を定義します。

    ドロップダウンリストで次の内容を割り当ててください。

    属性名

    属性値

    指定内容

    割当変数

    FaultJava

    フォルトの対象となる変数を指定します。

    遷移先

    入力値検証例外の応答ボディ処理

    フォルトが発生した場合に処理する連結先のアクティビティを指定します。

    [図データ]

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

(b) サービス呼出アクティビティ(アクティビティ名:在庫引当)を連結元とするフォルトコネクションの定義

  1. キャンバスのサービス呼出アクティビティ(在庫引当)を連結元とするフォルトコネクションの連結線をダブルクリックします。

    [フォルト処理の割当]ダイアログが表示されます。

  2. フォルト処理を定義します。

    ドロップダウンリストで次の内容を割り当ててください。

    属性名

    属性値

    指定内容

    割当変数

    FaultInvoke

    フォルトの対象となる変数を指定します。

    遷移先

    在庫引当例外の応答ボディ処理

    フォルトが発生した場合に処理する連結先のアクティビティを指定します。

    [図データ]

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

(c) サービス呼出アクティビティ(アクティビティ名:配送手配)を連結元とするフォルトコネクションの定義

  1. キャンバスのサービス呼出アクティビティ(配送手配)を連結元とするフォルトコネクションの連結線をダブルクリックします。

    [フォルト処理の割当]ダイアログが表示されます。

  2. フォルト処理を定義します。

    ドロップダウンリストで次の内容を割り当ててください。

    属性名

    属性値

    指定内容

    割当変数

    FaultInvoke

    フォルトの対象となる変数を指定します。

    遷移先

    配送手配例外の応答ボディ処理

    フォルトが発生した場合に処理する連結先のアクティビティを指定します。

    [図データ]

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

  4. すべての定義が完了したら,メニューから[ファイル]−[保管]を選択して,ビジネスプロセスの定義を終了します。