4.13.1 サービスのエミュレーション機能の設定
サービスのエミュレーション機能を使用するには,HCSCサーバランタイム定義ファイルの次のプロパティに,サービスのエミュレーション機能を使用するかどうかと,エミュレート設定情報定義ファイルのパスを設定する必要があります。
-
service-emulate.enable(サービスエミュレーション機能の実行有無)
-
service-emulate-def-filepath(エミュレート設定情報定義ファイルの絶対パス)
HCSCサーバランタイム定義ファイルについては,マニュアル「サービスプラットフォーム リファレンス」の「6.5.6 HCSCサーバランタイム定義ファイル」を参照してください。
また,エミュレート設定情報定義ファイルでエミュレーションに必要な情報を設定します。サービスのエミュレーションに必要な情報は,エミュレーションするサービスアダプタのオペレーション単位で設定します。エミュレーションに必要な情報を次に示します。
-
エミュレーション対象のサービスアダプタ
-
エミュレーション対象のサービスアダプタのオペレーション
-
応答電文の種別
-
エミュレーションの実行有無
-
応答電文ファイル
-
エミュレーションする条件
-
優先順位
エミュレート設定情報定義ファイルについては,マニュアル「サービスプラットフォーム リファレンス」の「6.5.7 エミュレート設定情報定義ファイル」を参照してください。
- 〈この項の構成〉
(1) 応答電文のエミュレーション
サービスのエミュレーション機能を使用すると,ユーザが作成した応答電文ファイルの内容が,サービス呼出アクティビティの応答電文のボディ割当変数に設定されます。ヘッダ割当変数はエミュレーションの対象外となります。サービス呼出アクティビティの応答電文のボディ割当変数には,種別が「XML」「non-XML」「any」の変数が設定できます。
(2) 要求電文の変換処理
応答電文ファイルにXSLTスタイルシート(ファイル拡張子「.xsl」)を指定すると,要求電文をXSLTスタイルシートで変換した結果を応答電文としてエミュレーションできます。このエミュレーションでの注意点を次に示します。
-
要求電文と応答電文の両方の変数種別がXMLの場合だけ実行できます。それ以外の場合,動作は保証しません。
-
変換元(要求電文)を複数指定することはできません。
-
XSLTスタイルシートには,マッピング定義エディタから生成したデータ変換定義ファイルで,かつファイル拡張子が「.xsl」のファイルを指定する必要があります。それ以外のファイルを指定した場合の動作は保証しません。
(3) サービスのエミュレーション機能の実行条件
サービスのエミュレーション機能は,エミュレート設定情報定義ファイルの設定が,次のすべての条件に当てはまる場合だけ実行されます。
-
エミュレーション機能の実行有無に有効(true)を設定している。
-
エミュレーション対象のサービスアダプタがサービス呼出アクティビティに定義されているサービス名と一致する。
-
エミュレーション対象のサービスアダプタのオペレーション名がサービス呼出アクティビティに定義されているオペレーション名と一致する。
-
エミュレーションする条件を定義している場合,XPath式の評価結果が真である。
実行条件に当てはまらない場合は,通常のサービス呼び出しが実行されます。
(4) 1つのビジネスプロセス内で複数のサービスアダプタを呼び出している場合の定義例
1つのビジネスプロセス内で複数のサービスアダプタを呼び出している場合,エミュレート設定情報定義ファイルで,emulate要素を複数設定することでエミュレーションの定義を複数設定できます。
: <viewState> <emulate condition="" operation="operation1" service="SOAPAdapter" type="RESPONSE_NORMAL" valid="true" xmlfile="/data/telegram/test1.xml"/> <emulate condition="" operation="exec" service="TP1Adapter" type="RESPONSE_NORMAL" valid="true" xmlfile="/data/telegram/test2.xml"/> </viewState> :
(5) サービスアダプタに複数のオペレーションが設定されている場合の定義例
サービスアダプタに複数のオペレーションが設定されている場合,エミュレート設定情報定義ファイルで,オペレーションごとにemulate要素を定義することで同一のサービスアダプタの定義を複数設定できます。
: <viewState> <emulate condition="" operation="operation1" service="SOAPAdapter" type="RESPONSE_NORMAL" valid="true" xmlfile="/data/telegram/test1.xml"/> <emulate condition="" operation="operation2" service="SOAPAdapter" type="RESPONSE_NORMAL" valid="true" xmlfile="/data/telegram/test2.xml"/> </viewState> :