マップの実行コンテキストの理解

各マップ・インスタンスは、コネクター・コントローラーで設定される特定の実行コンテキスト 内で実行されます。 マッピング API では、マップの実行コンテキストを MapExeContext クラスのインスタンスで表します。

Map Designer Express が生成するすべてのマップの場合、マップの実行コンテキストは cwExecCtx というシステム定義の変数を使用してアクセスできます。 この変数は、Activity Editor の「変数」フォルダーで参照できます。あるいは実行コンテキストが必要なマッピング API メソッド (表 63 のメソッドなど) を呼び出すときに、この変数を参照できます。

表 63. マップの実行コンテキストが必要なマッピング API メソッド
目的 マッピング API メソッド 詳細情報の参照先
サブマップの呼び出し runMap() "サブマップを使用した変換"
関係の維持
関係のインプリメント

表 64 に、マップの実行コンテキストで頻繁に必要になる 2 つの情報を示します。

表 64. コンテキスト情報の MapExeContext メソッド
実行コンテキスト情報 MapExeContext メソッド
呼び出しコンテキスト getInitiator(), setInitiator()
オリジナル要求ビジネス・オブジェクト getOriginalRequestBO()

このセクションでは、この両方のマップの実行コンテキスト情報について説明します。

注:
さらに、MapExeContextgetConnName()setConnName() メソッドを使用して、マップの実行コンテキストからコネクター名にアクセスできます。

呼び出しコンテキスト

呼び出しコンテキスト により、現行マップの実行の目的が示されます。

関係属性を変換する場合、通常はマップの呼び出しコンテキストに基づいたアクションが必要です。表 65 に、呼び出しコンテキストの有効な定数をリストします。


表 65. 呼び出しコンテキスト
呼び出しコンテキスト定数 説明
EVENT_DELIVERY マップされるソース・ビジネス・オブジェクトはアプリケーションからのイベントで、サブスクリプション要求に応答してコネクターから InterChange Server Express に送信されます (イベントにより起動されたフロー)。
ACCESS_REQUEST マップされるソース・ビジネス・オブジェクトはアプリケーションから呼び出され、アクセス・クライアントから InterChange Server Express に送信されます (コール・トリガー・フロー)。
ACCESS_RESPONSE マップされるソース・ビジネス・オブジェクトは、サブスクリプション送達要求に応答してアクセス・クライアントに送り返されます。
SERVICE_CALL_REQUEST マップされるソース・ビジネス・オブジェクトは、InterChange Server Express からコネクターを経由して、アプリケーションに送信されます。
SERVICE_CALL_RESPONSE マップされるソース・ビジネス・オブジェクトは、正常なサービス呼び出し要求の応答として、アプリケーションから InterChange Server Express に送り返されます。
SERVICE_CALL_FAILURE マップされるソース・ビジネス・オブジェクトは、サービス呼び出し要求の失敗後、アプリケーションから InterChange Server Express に送り返されます。

これらの呼び出しコンテキストは、Map Designer Express で作成されるすべてのマップで使用可能な MapExeContext オブジェクト内の定数として参照できます。

例: SERVICE_CALL_REQUEST 呼び出しコンテキストを MapExeContext.SERVICE_CALL_REQUEST として参照します。

図 88 に、イベントにより起動されたフローでの各呼び出しコンテキストの発生条件を示します。イベントにより起動されたフローは、コネクターが InterChange Server Express 内のコラボレーションにイベントを送信したときに開始されます。

図 88. イベントにより起動されたフローの呼び出しコンテキスト

図 88 で示すように、コネクターから InterChange Server へのすべてのマッピング要求 (つまり、アプリケーション固有のビジネス・オブジェクトから汎用ビジネス・オブジェクトへのマップ) には、EVENT_DELIVERY の呼び出しコンテキストがあります。 InterChange Server からコネクターへのすべてのマッピング要求 (つまり、汎用ビジネス・オブジェクトからアプリケーション固有のビジネス・オブジェクトへのマップ) には、SERVICE_CALL_REQUEST の呼び出しコンテキストがあります。

コラボレーションのサービス呼び出し要求に応答してコネクターにより送信されるマッピング要求には、SERVICE_CALL_RESPONSE または SERVICE_CALL_FAILURE のコンテキストがある場合があります。

図 89 に、コール・トリガー・フローでの各呼び出しコンテキストの発生条件を示します。コール・トリガー・フローは、アクセス・クライアントから InterChange Server Express のコラボレーションに直接サーバー・アクセス・インターフェース呼び出しが送信されると開始されます。

図 89. コール・トリガー・フローの呼び出しコンテキスト


図 89 で示すように、アクセス・クライアントから InterChange Server へのすべてのマッピング要求 (つまり、アプリケーション固有のビジネス・オブジェクトから汎用ビジネス・オブジェクトへのマップ) には、ACCESS_REQUEST の呼び出しコンテキストがあります。 InterChange Server Express からアクセス・クライアントへのすべてのマッピング要求 (つまり、汎用ビジネス・オブジェクトからアプリケーション固有のビジネス・オブジェクトへのマップ) には、ACCESS_RESPONSE の呼び出しコンテキストがあります。

オリジナル要求ビジネス・オブジェクト

マップのコンテキストにおける異なる重要な部分は、オリジナル要求ビジネス・オブジェクト です。このビジネス・オブジェクトは、マップの実行を開始するビジネス・オブジェクトです。表 66 に、呼び出しコンテキストと関連するオリジナル要求ビジネス・オブジェクトを示します。

表 66. 呼び出しコンテキストとそれに関連するオリジナル要求ビジネス・オブジェクト
呼び出しコンテキスト オリジナル要求ビジネス・オブジェクト オリジナル要求ビジネス・オブジェクトの例
EVENT_DELIVERY , ACCESS_REQUEST アプリケーションから発生したアプリケーション固有のビジネス・オブジェクト AppA 固有
SERVICE_CALL_REQUEST , SERVICE_CALL_FAILURE InterChange Server Express から送信された汎用ビジネス・オブジェクト 汎用
SERVICE_CALL_RESPONSE SERVICE_CALL_REQUEST から送信された汎用ビジネス・オブジェクト 汎用
ACCESS_RESPONSE 最初にアクセス要求から発生したアプリケーション固有のビジネス・オブジェクト AppA 固有

例えば、汎用ビジネス・オブジェクト は、SERVICE_CALL_RESPONSESERVICE_CALL_FAILURE、または SERVICE_CALL_REQUEST の呼び出しコンテキストで実行されるマップのオリジナル要求ビジネス・オブジェクトです。

これらのマップは汎用ビジネス・オブジェクトを使用して、変換される関係属性の関係インスタンス ID を保管します。マップには、関係インスタンスを検索して新たに作成または更新されたオブジェクトの関連する参加者データを設定するために、関係インスタンス ID が必要です。

例: 次の例で、これが顧客同期シナリオでどのように機能するかを示します。システムを使用して、アプリケーション A とアプリケーション B の間で同期されたデータを保持すると仮定します。両アプリケーションとも顧客データを保管し、顧客 ID 属性は関係を使用して管理されます。この例では、コラボレーションとコネクターの詳細は省略します。

新規顧客がアプリケーション A に追加される条件

  1. マップにより、AppA 固有のビジネス・オブジェクトが EVENT_DELIVERY の呼び出しコンテキストで汎用ビジネス・オブジェクトに変換されます。

    顧客 ID 属性を変換する場合、マップにより新規の関係インスタンスが顧客 ID 関係表に作成され、汎用ビジネス・オブジェクトの顧客 ID 属性に新規の関係インスタンス ID が挿入されます。

  2. マップにより、汎用ビジネス・オブジェクトが SERVICE_CALL_REQUEST の呼び出しコンテキストで AppB 固有のビジネス・オブジェクトに変換されます。

    関係表は変更されません。 アプリケーション B は、新規顧客をアプリケーションに正常に追加します。

  3. マップにより、AppB 固有のビジネス・オブジェクトが SERVICE_CALL_RESPONSE の呼び出しコンテキストで汎用ビジネス・オブジェクトに変換されます。このマップの実行コンテキストには、ステップ 1 で生成された汎用ビジネス・オブジェクトが含まれます。

    これを実行する理由は、ステップ 1 で作成された関係インスタンスの新規参加者データを設定するためです。この場合、新規参加者データはアプリケーション B に追加された新規顧客の顧客 ID です。

図 90 に、新規顧客 ID をアプリケーション B に正常に追加する、コール・トリガー・フローに関して、各ステップのマップの実行が発生する条件を示します。



図 90. 呼び出しコンテキストの例

Copyright IBM Corp. 2004