Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 基本開発編

[目次][用語][索引][前へ][次へ]

付録F サービスアダプタを利用したHTTPヘッダおよびCookie情報の引き継ぎ

サービスアダプタのHTTPヘッダ引き継ぎ機能を使用して,ビジネスプロセスでHTTPヘッダおよびCookie情報を引き継ぐ方法について説明します。

なお,HTTPヘッダ引き継ぎ機能の概要については,マニュアル「サービスプラットフォーム 解説」の「2.2.5 Webサービス(SOAP通信)の場合のHTTPヘッダ引き継ぎ」を参照してください。

ここでは,次のビジネスプロセスでHTTPヘッダおよびCookie情報を引き継ぐ場合を例に,ビジネスプロセスの定義方法について説明します。

図F-1 Cookie情報の引き継ぎに使用するビジネスプロセス

[図データ]

ビジネスプロセスの定義の流れを次に示します。

  1. アクティビティを定義する
  2. ヘッダ変数のスキーマを作成する
  3. ヘッダ変数を作成する
  4. サービス呼出アクティビティに割当変数を設定する
  5. 変換元変数と変換先変数をマッピングする
<この節の構成>
(1) アクティビティの定義
(2) ヘッダ変数のスキーマ作成
(3) ヘッダ変数の作成
(4) サービス呼出アクティビティへの割当変数の設定
(5) 変換元変数と変換先変数のマッピング

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

ビジネスプロセス定義画面でアクティビティを配置します。アクティビティの配置および連結方法については,「5.4 アクティビティの配置と連結」を参照してください。

(2) ヘッダ変数のスキーマ作成

HTTPリクエスト用ヘッダ変数およびHTTPレスポンス用ヘッダ変数のスキーマを作成します。作成するスキーマは,次に示す目的に応じて,サービスプラットフォームが提供するテンプレートファイルを使い分けます。

また,SOAP1.1モードを利用して「JSESSIONID」のCookieを送受信する場合,クライアント定義ファイルのc4web.application.app_maintainsessionをtrueに変更してください。クライアント定義ファイルの詳細については,マニュアル「アプリケーションサーバ SOAPアプリケーション開発の手引」の「10.3 クライアント定義ファイルの設定」を参照してください。

(a) HTTPリクエスト用ヘッダ変数のスキーマ

HTTPリクエスト用ヘッダ変数のスキーマを作成します。斜体部分が変更個所です。

HTTPリクエストヘッダ設定用のスキーマの内容を次に示します。

表F-1 HTTPリクエストヘッダ設定用のスキーマの内容

# タグ名 出現回数 説明
1 HTTPHeader_request 1回
2 ├<Cookies>

0または1回 HTTPリクエストヘッダ内に格納されたCookie情報を取得して格納します。
3 └<HTTPHeader> 0または1回 HTTPリクエストヘッダ内に格納された拡張ヘッダを取得して格納します。HTTPリクエストヘッダにある拡張ヘッダは無視します。

(凡例)
−:該当する説明はありません。

(b) HTTPレスポンス用ヘッダ変数のスキーマ

HTTPレスポンス用ヘッダ変数のスキーマを作成します。斜体部分が変更個所です。

HTTPレスポンスヘッダ設定用のスキーマの内容を次に示します。

表F-2 HTTPレスポンスヘッダ設定用のスキーマの内容

# タグ名 出現回数 説明
1 HTTPHeader_response 1回
2 ├<Cookies>


0または1回 HTTPレスポンスヘッダ内に格納されたCookie情報を取得して格納します。HTTPレスポンスヘッダにあるSet-Cookie属性は削除されます。
3 └<HTTPHeader> 0または1回 HTTPレスポンスヘッダ内に格納された拡張ヘッダを取得して格納します。HTTPレスポンスヘッダにある拡張ヘッダは削除されます。

(凡例)
−:該当する説明はありません。

(3) ヘッダ変数の作成

HTTPリクエスト用ヘッダ変数およびHTTPレスポンス用ヘッダ変数を作成します。作成手順を次に示します。

  1. ビジネスプロセス定義画面のキャンバス上の[変数・相関セット]アイコンをダブルクリックします。
    変数・相関セット一覧ダイアログが表示されます。変数・相関セット一覧ダイアログの詳細は,マニュアル「サービスプラットフォーム リファレンス」の「1.4.1 変数・相関セット一覧ダイアログ」を参照してください。
  2. 一覧から[変数一覧]を選択します。
  3. 変数名に任意の名称を入力します。
  4. [種別]ドロップダウンリストから[XML]を選択します。
  5. [...]ボタンをクリックして,「(2) ヘッダ変数のスキーマ作成」で作成したHTTPリクエスト用ヘッダ変数のスキーマを設定します。
  6. [部分指定]チェックボックスにチェックします。
  7. [行追加]ボタンをクリックし,部分名,指定式,および型を指定します。
  8. [追加]ボタンをクリックします。
    変数一覧に,追加した変数が表示されます。
  9. 手順3.〜8.と同様の手順でHTTPレスポンス用ヘッダ変数を作成します。
  10. [OK]ボタンをクリックします。

(4) サービス呼出アクティビティへの割当変数の設定

サービス呼出アクティビティのヘッダ割当変数に,作成した要求電文用および応答電文用の変数を設定します。

  1. ビジネスプロセス定義画面でサービス呼出アクティビティ「サービス呼出1」をダブルクリックします。
    サービス呼出アクティビティダイアログが表示されます。サービス呼出アクティビティダイアログの詳細は,マニュアル「サービスプラットフォーム リファレンス」の「1.4.9 サービス呼出アクティビティダイアログ」を参照してください。
  2. [要求電文]の[ヘッダ割当変数]の[設定]ボタンをクリックします。
    要求電文用ヘッダ割当変数ダイアログが表示されます。
  3. [追加]ボタンをクリックします。
    割当変数を設定するための行が追加されます。
  4. [割当変数]欄をクリックし,サービス呼出1に割り当てるリクエスト用の割当変数を選択します。
  5. [ルート要素]欄をクリックし,ルート要素を選択します。
  6. [名前空間]欄に表示される割当変数の名前空間を確認します。
  7. [OK]ボタンをクリックします。
  8. 手順2.〜7.と同様の手順で[応答電文]のヘッダ割当変数にリクエスト用の割当変数を設定します。
  9. 手順1.〜8.と同様の手順でサービス呼出アクティビティ「サービス呼出2」「サービス呼出3」にもリクエスト用とレスポンス用の割当変数を設定します。

(5) 変換元変数と変換先変数のマッピング

データ変換定義画面で変換元スキーマと変換先スキーマをマッピングします。

サービス呼出1とサービス呼出2の間でCookie情報を引き継ぐには,サービス呼出1の応答電文に設定した割当変数と,サービス呼出2の要求電文に設定した割当変数をマッピングします。

同様に,サービス呼出2とサービス呼出3の間でCookie情報を引き継ぐには,サービス呼出2の応答電文に設定した割当変数と,サービス呼出3の要求電文に設定した割当変数をマッピングします。

また,サービス呼出3と応答1の間でCookie情報を引き継ぐには,サービス呼出3の応答電文に設定した割当変数と,応答1に設定した割当変数をマッピングします。

手順を次に示します。

  1. データ変換アクティビティ「データ変換1」を右クリックし,[マッピング定義起動]を選択します。
  2. 変換元変数のノードと変換先変数のノードをマッピングします。
    引き継ぐデータを編集する場合は,各ファンクションを配置してデータを編集できます。
  3. 手順1.〜2.と同様の手順でサービス呼出2からサービス呼出3,およびサービス呼出3から応答1をマッピングします。
  4. データ変換定義画面の変換元スキーマツリービューア,マッピングビューア,または変換先スキーマツリービューアの適当な場所で右クリックして,[検証]を選択します。
    検証が実行されます。検証結果に問題がなければビジネスプロセスを実行できます。