Oracle ESB Controlの「マップ」ビューを使用すると、ドメイン値マップを作成、更新および削除でき、さらに、既存のドメイン値マップを表示、エクスポートおよびインポートできます。 Oracle ESB Controlについては、第12.1項「Oracle ESB Controlを使用した監視の概要」を参照してください。
Oracle Enterprise Service Busを使用して統合する複数のアプリケーションでは、同じ情報を表すのに別の値を使用している可能性があります。 たとえば、あるアプリケーションでは州を正式名称(Massachusetts)で表す場合があるのに対して、別のアプリケーションでは、州を略称(MA)で表す場合があります。 ドメイン値マップを使用すると、アプリケーションの値を別のアプリケーションの値に関連付けることができます。
通常、各ドメイン値マップには、複数のアプリケーション間における特定カテゴリの値マッピングが保持されます。 たとえば、あるドメイン値マップは州コードのマッピングを保持し、別のドメイン値マップは単位のマッピングを保持できます。
Oracle ESB Controlでドメイン値マップを作成すると、Oracle JDeveloper ESB Designerのデータ・マッパーを使用してデータ・トランスフォーメーション・マップのXSLファイルを定義する際にそのドメイン値マップを使用できるため、実行時にアプリケーション固有の値を使用できます。 たとえば、ドメイン値マップを使用してランタイム・ルックアップを実行し、長い州名の入力を2文字の州コード出力に変換するとします。 このシナリオでは、州名がOracle Enterprise Service Busフローに渡されます。 Enterprise Service Bus内で、ルーティング・サービスのルーティング・ルールで指定されたトランスフォーメーションによって、データは、ドメイン値マップ・ルックアップを使用して州名から州コードに変換されます。
ドメイン値マップのエクスポート、インポートおよび変更などの詳細は、『Oracle Enterprise Service Bus開発者ガイド』の「ドメイン値マップ」を参照してください。
ドメイン値マップは、Oracle ESB Controlの「マップ」ビューで作成できます。
Oracle ESB Controlの上部にある「マップ」をクリックします。
コンソールの左側にある「作成」の下矢印をクリックします。
「新規マップを作成します。」と「新規マップをインポートします。」の2つの選択肢が表示されます。
「新規マップを作成します。」をクリックします。
コンソールがリフレッシュされ、図6-13に示すような「マップ」ビューが表示されます。
デフォルトの「New DVM」をドメイン値マップ・ファイル名に置き換えます。 「New DVM」を編集するには、画面右側のペインの「マッピング」領域の上にある名前のフィールドをクリックします。
ドメイン値マップ・ファイルを保存した後は、マップ名を変更できません。
「説明」フィールドに、ドメイン値マップの説明を入力します。
追加の列が必要な場合は、「追加」の下矢印をクリックして、追加する列ごとに「列」を1回ずつクリックします。列を追加し過ぎた場合は、その列を選択して「削除」をクリックします。
各列が1つのドメインを表します。 たとえば、ドメイン値マップを使用して、4つのドメイン間に値をマップする場合は、「列」を2回クリックして列を2つ追加します。 ドメインとして考慮する項目に制限はありません。必要に応じてドメインを指定します。 たとえば、取引パートナ、組織、部門およびアプリケーションなどをドメインにできます。
たとえば、「追加」→「列」の順にクリックして列を1つ追加します。
列名をダブルクリックして、その名前をデフォルト値の「Applicationn」からわかりやすい名前に変更します。 各列名は、ドメイン値マップ内で一意であることが必要です。
追加の行が必要な場合は、「追加」の下矢印をクリックして、追加する行ごとに「行」を1回ずつクリックします。行を追加し過ぎた場合は、その行を選択して「削除」をクリックするか、または行をそのままにします。 空の行は、ドメイン値マップの保存時に削除されます。
行をダブルクリックし、ドメイン値マップの値を入力します。
必要な数の行の入力が終了するまで、前述の手順を繰り返します。 アプリケーションで必要となるすべての行を入力する必要はありません。 ドメイン値マップは、後で編集して行を追加できます。
図6-14に、作成されたドメイン値マップの例を示します。
ドメイン値マップの名前を確認し、「説明」フィールドの上にある「保存」ボタンをクリックします。
「保存」ボタンをクリックした後は、ドメイン値マップの名前を変更できません。 ただし、ドメイン値マップのその他のコンポーネントは変更できます。
ここで示した手順では、ドメイン値マップの完了時に「保存」をクリックするように記述していますが、名前を指定した後は、プロセス内のどのポイントでも「保存」をクリックできます。
完成したドメイン値マップは、第6.11.4項「データ・トランスフォーメーション・マップでのドメイン値マップの使用方法」で説明するように、Oracle JDeveloper ESB Designerでのトランスフォーメーションの作成時に使用できます。
作成して保存したドメイン値マップは、ファイルにエクスポートできます。 この処理が必要となるのは、ドメイン値マップをテスト・システムで作成し、本番システムにインポートできるようにエクスポートする場合などです。
ドメイン値マップをエクスポートする手順は、次のとおりです。
Oracle ESB Controlの「マップ」ビューの左側のペインで、エクスポートするドメイン値マップを選択します。
「マップ」ビューの右側のペインで、「エクスポート」をクリックします。
「OK」をクリックし、オペレーティング・システムのダイアログ・ボックスが開くのを待ちます。このダイアログ・ボックスで、ファイルをローカル・ファイル・システムに保存できます。 ファイルを開くか保存するかを尋ねるプロンプトが表示された場合は、「保存」を選択します。
ファイルを保存するダイアログ・ボックスで、ドメイン値マップ・ファイルを保存する場所を選択し、ドメイン値マップ・ファイルの名前を入力して「保存」をクリックします。
「ダウンロード完了」ダイアログで、「閉じる」をクリックします。
ファイルのエクスポートおよびファイル・システムへの保存が終了すると、そのファイルをテキスト・エディタで編集できます。 ただし、ファイルが無効にならないように注意して更新してください。 ファイルの編集を終了した後は、更新済のドメイン値マップをOracle ESB Controlにインポートできます。
ローカル・ファイル・システムに既存のドメイン値マップがある場合は、それをESBリポジトリに追加する方法として、Oracle ESB Controlにインポートできます。ESBリポジトリに追加すると、そのドメイン値マップを、ルーティング・ルールでトランスフォーメーションを指定するときに使用できます。
ドメイン値マップをインポートする手順は、次のとおりです。
Oracle ESB Controlの「マップ」ビューで、ウィンドウの左側にある「作成」の下矢印をクリックします。
「新規マップを作成します。」と「新規マップをインポートします。」の2つの選択肢が表示されます。
「新規マップをインポートします。」をクリックして「新規マップをインポートします。」ダイアログを開きます。
「新規マップをインポートします。」ダイアログ・ボックスで、次の手順を実行します。
「インポート」フィールドに、ローカル・ファイル・システム上のインポートするファイルの完全パスを入力するか、「参照」を使用してファイルを特定します。
必要に応じて、「同じ名前のファイルがある場合は上書き」を選択するか、または選択を解除します。
名前は、ドメイン値マップがESBリポジトリに格納されるときの主キーになるため、一意であることが必要です。 「同じ名前のファイルがある場合は上書き」を選択している場合で、同じ名前のドメイン値マップがすでに存在していて、それを上書きしないときは、次のいずれかの処理を実行できます。
このダイアログ・ボックスを取り消して、ディスク上のファイルの名前を変更し、インポート操作を再度開始します。
「同じ名前のファイルがある場合は上書き」の選択を解除します。
「OK」をクリックします。
「インポートが成功しました」ダイアログで、「OK」をクリックします。
コンソールがリフレッシュされ、インポートしたドメイン値マップ・ファイルが左側のペインに表示されます。
インポートしたファイルはESBリポジトリに保存されるため、そのドメイン値マップはOracle JDeveloper ESB Designerでのトランスフォーメーションの作成時に使用できるようになります。
ドメイン値マップをXSLデータ・トランスフォーメーションに組み込むには、コンポーネント・パレットの「lookup-dvm
」関数を、ドメイン値マップを使用するソース要素とターゲット要素間の接続にドラッグ・アンド・ドロップします。 データ・トランスフォーメーション・マップの作成方法については、第6.10.6項「データ構造トランスフォーメーション用XSLファイルの作成方法」を参照してください。
次に、XSLデータ・トランスフォーメーションでドメイン値マップを使用する方法の例を示します。
データ・トランスフォーメーションでドメイン値マップを使用する手順は、次のとおりです。
Oracle JDeveloper ESB Designerで、ESBプロジェクトを開きます。
「設計」タブでルーティング・アイコンを選択し、トランスフォーメーションの「XSL」アイコンをダブルクリックして、データ・マッパー・ウィンドウを表示します。
データ・マッパー・ウィンドウの「ソース」および「ターゲット」ペインで、ツリーを開きます。
ソース要素を、ドメイン値マップを使用するターゲット要素にドラッグ・アンド・ドロップします。
コンポーネント・パレットで、下矢印をクリックして「Advanced Functions」を選択します。
図6-15に示すように、コンポーネント・パレットに「lookup-dvm
」関数がリストされます。
ソース・オブジェクトをターゲット・オブジェクトに接続している線に、「lookup-dvm
」をドラッグ・アンド・ドロップします。
図6-16に示すように、接続している線の上に、lookup-dvm
のアイコンが表示されます。 黄色の三角形の警告は、lookup-dvm
関数の定義が完了していないことを示しています。
look-up dvmのアイコンをダブルクリックします。
「関数の編集 – look-up dvm」ダイアログが開きます。
図6-17に示すように、「関数の編集 – look-up dvm」ダイアログの各フィールドに値を指定します。
「sourceValue」の値は、手動または次の方法で入力できます。
「dvmName」フィールドに表示されているソース値を、「下に移動」を2回クリックして「sourceValue」フィールドに移動します。
[Ctrl]キーを押しながら[Space]キーを押して、式ビルダーを起動します。 上へ移動および下へ移動するキーを押して、リスト内のオブジェクトを配置し、[Enter]キーを押してその項目を選択します。
「dvmName」フィールドに、Oracle ESB Controlを使用して以前に定義したドメイン値マップ・スキーマの名前を入力します。
「dvmName」フィールドの右にある懐中電灯アイコンをクリックして、ESBリポジトリに格納されているドメイン値マップのリストから名前を選択します。
「sourceColumnName」フィールドに、ソース要素の値と関連付けられているドメイン値マップの列の名前を入力します。
「sourceColumnName」フィールドの右にある懐中電灯アイコンをクリックして、選択したドメイン値マップに定義されている列から名前を選択します。
「targetColumnName」フィールドに、ターゲット要素の値と関連付けられているドメイン値マップの列の名前を入力します。
「targetColumnName」フィールドの右にある懐中電灯アイコンをクリックして、選択したドメイン値マップに定義されている列から名前を選択します。
オプションのデフォルト値を入力します。
「OK」をクリックします。
「ファイル」メニューから「すべて保存」をクリックします。
プロジェクトを統合サーバーまたはESBサーバーに登録します。
トランスフォーメーションがESBルーティング・ルールに組み込まれると、そのトランスフォーメーションは実行時に適用されます。
Oracle ESB Controlの「サービス」ビューの「トラッキング可能フィールド」タブのフィールドを設定すると、トランスフォーメーションの結果を表示できます。 トラッキング・データは、Oracle ESB Controlの「インスタンス」ビューの「ダイアグラム」タブに表示されます。 第12.9項「トラッキング可能フィールドの定義」を参照してください。