WebSphere Enterprise Service Bus バージョン 6.2.0 オペレーティング・システム: AIX、HP-UX、i5/OS、Linux、Solaris、Windows


ビジネス・オブジェクト・マップ・メディエーション・プリミティブ

ビジネス・オブジェクト・マップ・メディエーション・プリミティブを使用して、メッセージを変換します。 ビジネス・オブジェクト・マップを使用して、メッセージ変換をグラフィカルに定義できます。

概要

ビジネス・オブジェクト・マップ・メディエーション・プリミティブを使用すると、ビジネス・オブジェクト・マップを使用してメッセージ変換を定義できます。ビジネス・オブジェクト・マップは、順序付きの一連の変換で構成されています。 例えば、メッセージ本体を処理するためのビジネス・オブジェクト・マップを以下のような方法で作成できます。
  1. 入力メッセージの最初のフィールドから出力メッセージの 2 番目のフィールドへデータをコピーします。
  2. 入力メッセージの 2 番目のフィールドの一部を出力メッセージの最初のフィールドにコピーします。
  3. 出力メッセージの 3 番目のフィールドに定数値を割り当てます。

ビジネス・オブジェクト・マップ・メディエーション・プリミティブには、入力端末 (in)、出力端末 (out)、障害端末 (fail) がそれぞれ 1 つずつあります。 in 端末はメッセージの受信用に接続され、その他の端末はメッセージの送信用に接続されています。入力メッセージにより変換が起動され、変換が正常に行われた場合には、変更されたメッセージが out 端末によって伝搬されます。変換中に例外が発生すると、fail 端末により、failInfo エレメントに含まれる例外情報と共に元のメッセージが伝搬されます。

詳細

ビジネス・オブジェクト・マップ・メディエーション・プリミティブを作成すると、WebSphere® Integration Developer により、「プロパティー」ビューの「詳細」タブで新規のビジネス・オブジェクト・マップを作成できます。 あるいは、既存のビジネス・オブジェクト・マップを参照して、適しているものを選択することもできます。

ビジネス・オブジェクト・マップを作成する場合にはメッセージ・ルート (XPath 1.0 式) を指定しますが、このメッセージ・ルートは、メディエーション・フローの場合、サービス・メッセージ・オブジェクト (SMO) の以下の場所 (//headers/context または /body) を参照することができます。メッセージ・ルートは変換のルートを指定するものであり、入力メッセージと出力メッセージの両方に適用されます。メッセージ・ルートが / である場合、変換は SMO 全体に適用されます。

ビジネス・オブジェクト・マップは、入力ビジネス・オブジェクトの値を使用して、出力ビジネス・オブジェクトに値を割り当てることができます。ビジネス・オブジェクトの値はフィールドに保管されます。入力ビジネス・オブジェクトのフィールドはソース・フィールドと呼ばれ、出力メッセージのフィールドはターゲット・フィールドと呼ばれます。
注: ビジネス・オブジェクト・マップ・メディエーション・プリミティブが作成できるビジネス・オブジェクト・マップは 1 つだけです。

変換タイプ

ビジネス・オブジェクト・マップ・エディターは、以下の変換タイプ (マッピング・タイプとも呼ばれる) をサポートしています。

表 1. ビジネス・オブジェクト・マップでサポートされている変換 (マッピング) タイプ
変換 (マッピング) タイプ 説明
移動 ソース・フィールドの値をターゲット・フィールドにコピーします。例えば、顧客の名前を入力ビジネス・オブジェクトから出力ビジネス・オブジェクトへコピーします。
抽出 ソース・フィールドの値の一部を抽出して、それをターゲット・フィールドに割り当てます。 ソース・フィールドの値はストリングである必要があります。例えば、住所の一部を入力ビジネス・オブジェクトから出力ビジネス・オブジェクトへコピーします。 抽出変換は、Java™ の String.substring() メソッドと類似しています。
結合 複数のソース・フィールドの値を結合して、結合した値をターゲット・フィールドに割り当てます。 結合変換のターゲットは、ストリングである必要があります。 例えば、入力ビジネス・オブジェクトのファーストネーム John とラストネーム Smith を結合して、出力ビジネス・オブジェクトで名前 John Smith を作成します。
サブマップ サブマップを使用すると、複合タイプ (ビジネス・オブジェクト) 間のマッピングを実行できます。 ビジネス・オブジェクト・マップの入力および出力は、サブマップ変換のソースおよびターゲットと同じタイプにする必要があります。サブマップを使用すると、マッピング定義を再利用できます。サブマップ変換では、事前に定義されているマップを使用して、メッセージの 2 つの部分の間で変換を実行します。 ソースまたはターゲットが型付けの弱いエレメントであっても、サブマップ変換を使用できます。
カスタム 入力および出力をマッピングするためのロジックを指定する Java コードを生成します。
割り当て ターゲット・フィールドに定数値を割り当てます。割り当て変換にはターゲット・フィールドはありますが、ソース・フィールドはありません。
リレーションシップ リレーションシップ管理を実行します。リレーションシップは、複数のビジネス・オブジェクトのデータ間の関連を作成します。入力ビジネス・オブジェクトおよび出力ビジネス・オブジェクトのフィールドに等価なデータが入っているが、その表現が異なる場合は、変換ステップにリレーションシップを使用できます。 リレーションシップを作成するには、WebSphere Integration Developer および新規リレーションシップ・ウィザードを使用できます。既存のリレーションシップを再利用することもできます。 リレーションシップ変換のソースおよびターゲットは、複合タイプ (ビジネス・オブジェクト) である必要があります。
カスタム割り当て ターゲット・フィールドに割り当てる値を決定するための Java コードを作成します。 カスタム割り当て変換にはターゲット・フィールドはありますが、ソース・フィールドはありません。
カスタム・コールアウト ソース・フィールドの値を取り込んで、その値を独自のロジックで使用する Java コードを生成します。 カスタム・コールアウト変換は、他の変換を実行する前に初期化を行う場合に役立ちます。 カスタム・コールアウト変換にはソース・フィールドはありますが、ターゲット・フィールドはありません。

移動変換では、プリミティブ型ソース・フィールドの値がプリミティブ型ターゲット・フィールドにコピーされます。1 つのプリミティブ型フィールドを別のプリミティブ型フィールドにマップできます。 ただし、データを変換できない場合は、実行時に例外が発生します。例えば、実行時にストリング 123A を整数 (int) にマップした場合は、サーバー・ログに例外が記録されます。 移動変換を使用して複合タイプ (ビジネス・オブジェクト) をマップすることはできません。 ビジネス・オブジェクト間でマッピングを行うには、サブマップが必要です。

カスタム変換を使用すると、独自の変換ロジックを作成できます。 カスタム変換では、Java コードを使用します。ソース・フィールドとターゲット・フィールドがある場合は、カスタム変換を使用します。 ソース・フィールドがない場合は、カスタム割り当て変換を使用できます。これは、割り当て変換と類似していますが、割り当てる値を決定するために Java コードを使用する点が異なります。 設定するターゲット・フィールドがない場合は、カスタム・コールアウト変換を使用して Java コードを呼び出すことができます。 この Java コードは、他の変換が実行される前に値を初期化することがあります。

場合によっては、ソースまたはターゲットの型付けが弱い場合でも、移動変換、サブマップ変換、およびカスタム変換を使用できます。フィールドに複数のタイプのデータ・エレメントを含めることができる場合、それは型付けの弱いフィールドです。 例えば、ソース・エレメントまたはターゲット・エレメントのタイプが anyType である場合、サブマップを使用できます。ただし、ソース・データにターゲット・データとの互換性がない場合は、実行時に例外が発生します。詳しくは、WebSphere Integration Developer の資料で、型付けの弱いコンテンツによるマッピングに関するトピックを参照してください。

使用法

ビジネス・オブジェクト・マップ・メディエーション・プリミティブを使用すると、以下の作業を実行できます。
  • 入力メッセージ・タイプを別の出力メッセージ・タイプに変換する。例えば、メディエーション・フローの開始時の操作と終了時の操作が異なり、2 番目の操作に異なる引数タイプがある場合などです。
  • メッセージ・タイプを変更せずにメッセージの内容を変更する。
  • カスタム変換を使用して、メッセージ変換に独自のロジックを適用する。
  • 既存のビジネス・オブジェクト・マップを再利用する。マップは最上位マップとしてもサブマップとしても再利用できます。
  • リレーションシップとして定義されているマッピングをメッセージの内容に適用する。リレーションシップを、作成することも再利用することもできます。

ビジネス・オブジェクト・マップ・メディエーション・プリミティブは、 データベース・ルックアップ・メディエーション・プリミティブが呼び出される前または後に、データを操作する必要がある場合に役立ちます。

メッセージを変換するには、XSLT メディエーション・プリミティブまたはビジネス・オブジェクト・マップ・メディエーション・プリミティブを使用します。重要な違いは、XSLT プリミティブでは、スタイル・シートを使用して XML 形式で変換を実行するのに対して、ビジネス・オブジェクト・マップ・プリミティブでは、サービス・データ・オブジェクト (SDO) を使用してビジネス・オブジェクト上で変換を実行するという点です。既存の XSL スタイル・シートがある場合は、それを XSLT プリミティブと組み合わせて再利用できる可能性があります。また、既存のビジネス・オブジェクト・マップがある場合は、それをビジネス・オブジェクト・マップ・プリミティブと組み合わせて再利用できる可能性があります。 ある種類の変換では XSL 形式の方が実行しやすく、一方でビジネス・オブジェクト・マップを使用する方が実行しやすい変換もあります。

プロパティー

ルート
変換のルートを指定する XPath 1.0 式。 //headers/context、または /body を指定できます。/ は完全な SMO、/headers は SMO のヘッダー、 /context は SMO のコンテキスト、/body は SMO の本体部分を表します。このプロパティーは、入力メッセージと変換されたメッセージの両方に使用されます。
マッピング・ファイル
メディエーション・プリミティブが使用するビジネス・オブジェクト・マップの名前を指定します。ビジネス・オブジェクト・マップは、入力ビジネス・オブジェクトと出力ビジネス・オブジェクトとの間でデータを変換するために使用します。
表 2. メディエーション・プリミティブ・プロパティー
プロパティー 有効な値 デフォルト
ルート ストリング: 変換のルートを表す XPath 式 /body
マッピング・ファイル ストリング  

考慮事項

ビジネス・オブジェクト・マップ・メディエーション・プリミティブを使用する場合は、 以下の事項を考慮してください。


reference 参照トピック

ご利用条件 | フィードバック


タイム・スタンプ・アイコン 最終更新: 2010/07/09


http://publib.boulder.ibm.com/infocenter/dmndhelp/v6r2mx/topic//com.ibm.websphere.wesb620.doc/ref/rwesb_BOMappermediationprimitive.html
Copyright IBM Corporation 2005, 2010. All Rights Reserved.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています (http://www.eclipse.org)。