プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Service Busでのサービスの開発
12c (12.1.3)
E53004-06
目次へ移動
目次

前
次

22 ドメイン値マップでのデータのマッピング

この章では、ドメイン値マップの概要と、Service Busサービスでそれらを使用して、様々なドメインによって使用される用語を関連付けてオブジェクトのように記述する方法について説明します。また、Service Busプロジェクト内でドメイン値マップを作成する方法についても説明します。

この章の内容は次のとおりです。

ドメイン値マップの詳細は、『Oracle SOA SuiteでのSOAアプリケーションの開発』のドメイン値マップの操作に関する項を参照してください。

22.1 ドメイン値マップの概要

ドメイン値マップによって、特定のフィールドに対して1つのドメインで使用される値が、その同じフィールドに対して他のドメインで使用される値に関連付けられ、複数のボキャブラリまたはシステム間での値のマッピングが可能になります。たとえば、国コード、市区町村コード、通貨コードなどをマップできます。マッピングが必要なフィールドの数に応じて、1つのService Busプロジェクトで複数のドメイン値マップを使用できます。ドメイン値マップは、相互参照に似ていますが、それらは静的定義に基づいています。ドメイン値マップは、デザインタイムに作成して移入し、ランタイムにデプロイします。ドメイン値マップ・データは相互参照のように実行時アクティビティによって変更されることはなく、ドメイン値マップはルックアップのためのみに使用されます。

ドメイン値マップは、複数のOracle SOA Suiteコンポーネント間で使用できます。Service Busでは、JDeveloperとOracle Service Busコンソールの両方でドメイン値マップを作成できます。

22.1.1 ドメイン値マップ関数

Service Busメッセージ・フローでは、一連のDVM関数を使用して、XQuery式およびXSLT変換からドメイン値マップを参照し、受信メッセージ内の情報に基づいて実行時に値をルックアップできます。これらの関数を使用することで、Service Busは1つのシステムから受信するデータを別のシステムに送信されるデータにマップする方法を認識します。

JDeveloper内のDVM関数には、XSLTマッパー、XQuery Mapperおよび式エディタからアクセスできます。Oracle Service Busコンソールでは、これらの関数には式および条件の各エディタから使用できます。Service Bus DVM関数の詳細は、「ドメイン値マップ関数」を参照してください。

22.2 JDeveloperでのドメイン値マップの作成

JDeveloperでService Busプロジェクト内にドメイン値マップを作成し、パイプラインおよび分割-結合のXQuery式でそれらを使用して外部システム間でオブジェクトをマップできます。ドメイン値マップは通常、1つのフィールドのみに対してマッピングを定義するため、パイプラインまたは分割-結合では複数のドメイン値マップを参照できます。

22.2.1 JDeveloperでのドメイン値マップの作成方法

JDeveloperの「ドメイン値マップ(DVM)・ファイルの作成」ダイアログを使用してドメイン値マップを作成および構成します。このダイアログでは、それぞれ1つの値を持つ2つのドメインを定義します。完了すると、ドメイン値マップ・エディタが表示され、追加のドメインおよび対応する値を定義できます。

ドメイン値マップを作成するときは、マップ対象の値を持つ最大2つのドメインの名前を、各ドメインの値とともに指定できます。マップを作成した後、ドメインおよび値を追加できます。

JDeveloperでドメイン値マップを作成するには:

  1. アプリケーション・ナビゲータで、ドメイン値マップを作成するプロジェクトを右クリックし、「新規」をポイントして「ドメイン値マップ(DVM)」を選択します。

    「ドメイン値マップ(DVM)・ファイルの作成」ダイアログが表示されます。

  2. 「ファイル名」フィールドに、ドメイン値マップ・ファイルの一意かつ説明的な名前を入力します。ファイル名には.dvm拡張子を付ける必要があります。
  3. 必要に応じて、新しいディレクトリの場所および相互参照のための簡単な説明を入力します。

    この場所は、現在のアプリケーションのディレクトリ構造内である必要があります。

  4. 「ドメイン名」フィールドに、最大2つのドメインに対する名前を入力します。

    これらは、ドメイン値マップの列名であり、それぞれ異なるドメイン内の同じフィールドを表します。

    注意:

    ドメイン名は、タイプNCName (non-colonized name、コロンを含まない有効なXML要素名)である必要があります。各ドメイン名は、ドメイン値マップ内で一意である必要があります。後で、さらにドメインを追加できます。

  5. 「ドメイン値」フィールドに、各ドメインに対応する値を入力します。
  6. 「OK」をクリックします。

    ドメイン値マップ・エディタに新しいドメイン値マップが表示されます。

  7. 新しいドメインをドメイン値マップに追加するには、『Oracle SOA SuiteでのSOAアプリケーションの開発』のドメイン値マップへのドメインの追加方法に関する項を参照してください。
  8. 新しい値をドメイン値マップに追加するには、『Oracle SOA SuiteでのSOAアプリケーションの開発』のドメイン値マップへのドメイン値の追加方法に関する項を参照してください。

22.3 Oracle Service BusコンソールでのDVMリソースの操作

Oracle Service Busコンソールを使用している場合、新しいドメイン値マップを作成するか、最初にJDeveloperで作成したドメイン値マップをDVMリソースにアップロードできます。

22.3.1 コンソールでのDVMリソースの作成方法

DVMを作成するときは、ドメイン値マップの対象となるフィールドの対応する値とともにデータを共有する最大2つのエンド・システムの名前を定義します。マップを作成した後、DVM定義エディタで追加のドメインおよび値を定義できます。

始める前に

「JDeveloperでのドメイン値マップの作成」に従って、JDeveloperですでに作成済のドメイン値マップ・ファイルをアップロードする場合は、そのファイルがシステムで使用可能であることを確認してください。

コンソールでDVMリソースを作成するには:

  1. プロジェクト・ナビゲータで、新しいドメイン値マップが含まれるプロジェクトまたはフォルダを右クリックし、「作成」をポイントして「DVM」を選択します。

    DVMの作成ダイアログが表示されます。

  2. 次のいずれかを行います:
    • 既存のドメイン値マップ・ファイルをアップロードするには、「ファイルのアップロード」フィールドの横の「参照」をクリックし、JDeveloperで作成したファイルに移動して選択します。

      「リソース名」フィールドに、ファイル拡張子なしのファイル名が自動的に移入されます。この名前は変更可能です。

    • 新しいドメイン値マップを作成するには、そのDVMリソースの一意の名前を入力します。

  3. 必要に応じて、リソースの簡単な説明を入力します。
  4. 「作成」をクリックします。

    新しいドメイン値マップがDVM定義エディタに表示されます。

  5. DVM定義エディタのツールバーで、「保存」をクリックします。
  6. 次の手順を実行することで、ドメインおよび値を構成します。

22.3.2 ドメイン値マップへのドメインの追加方法

マップへの追加ドメインを定義でき、それらはドメイン値マップに列として表されます。新しいドメインそれぞれには、実行時のルックアップに含めるため、またはマッピングを修飾するためのみに使用される値を含めることができます。ドメイン名は、タイプNCName (non-colonized name、コロンを含まない有効なXML要素名)である必要があります。

ドメイン値マップにドメインを追加するには:

  1. DVMリソースを開いていない場合は、プロジェクト・ナビゲータでDVMリソースを見つけ、その名前をクリックします。
  2. 「マップ表」で、「追加」をクリックし、「ドメインの追加」を選択します。

    「ドメインの追加」ダイアログが表示されます。

  3. 「名前」フィールドに、ドメインの名前を入力します。
  4. この列を修飾子列として設定するには、「ルックアップのための修飾子の有効化」を選択します。

    ヒント:

    修飾子ドメインまたは修飾子順の詳細は、『Oracle SOA SuiteでのSOAアプリケーションの開発』の修飾子ドメインに関する項および修飾子階層に関する項を参照してください。

  5. 「ルックアップ順序」フィールドに、修飾子ドメインの優先順位を示す数字を入力します。

    このフィールドは、「ルックアップのための修飾子の有効化」を選択した場合にのみ有効です。

  6. 「追加」をクリックします。
  7. 新しいドメインの値を定義するには、「ドメイン値マップへのドメイン値の追加方法」に進みます。

22.3.3 ドメイン値マップへのドメイン値の追加方法

ドメイン値はドメイン値マップの行に表示され、各行には、各ドメインにマッピングされる値が含まれます。ドメイン間のマッピングを完全に定義するために必要な数のドメイン値を追加できます。

ドメイン値マップにドメイン値を追加するには:

  1. DVMリソースを開いていない場合は、プロジェクト・ナビゲータでDVMリソースを見つけ、その名前をクリックします。
  2. 「マップ表」で、「追加」をクリックし、「ドメイン値の追加」を選択します。

    「マップ表」の既存の行の下に新しい行が表示されます。

  3. 新しい行で、各ドメインの値を入力します。
  4. 前述の手順を繰り返し、追加の値をすべて作成します。
  5. DVM定義エディタのツールバーで、「保存」をクリックします。
  6. セッションを終了して構成をランタイムにデプロイするには、「アクティブ化」をクリックします。

22.3.4 コンソールでのドメイン値マップの編集方法

Oracle Service Busコンソールを使用している場合、次の手順を使用して既存のドメイン値マップを変更します。

コンソールでドメイン値マップを編集するには:

  1. プロジェクト・ナビゲータで、編集するドメイン値マップが含まれているプロジェクトおよびフォルダを開きます。

  2. DVMリソース名をクリックします。

  3. ソース・ファイルを変更するには、次のように実行します。

    1. ツールバーの「ソースの編集」をクリックします。

      「ソースの編集」ダイアログが表示されます。

    2. アップロードする新しい相互参照ファイルを参照して選択するには、「参照」をクリックします。

    3. ファイルのコンテンツを変更するには、ダイアログの「コンテンツ」セクションでコードを直接更新します。

    4. 「保存」をクリックします。

  4. マップにドメインを追加するには、「ドメイン値マップへのドメインの追加方法」を参照してください。

  5. ドメイン値を追加するには、「ドメイン値マップへのドメイン値の追加方法」を参照してください。

  6. ドメインを編集するには、「マップ表」でドメインを選択し、「編集」をクリックします。「ドメインの更新」ダイアログで、「ドメイン値マップへのドメインの追加方法」に記載されている変更を実行します。

  7. 値を変更するには、「マップ表」で値名をダブルクリックし、新しい値を入力します。

  8. DVM定義エディタのツールバーで、「保存」をクリックします。

  9. セッションを終了して構成をランタイムにデプロイするには、「アクティブ化」をクリックします。

22.4 ドメイン値マップの削除

削除するリソースを参照しているリソースがある場合、そのリソースを削除する前にそれらの参照を削除します。リソースは他のリソースによって参照されていても削除できますが、その場合、削除されたリソースへの未解決の参照が原因で、競合が発生する可能性があります。

22.4.1 ドメイン値マップの削除方法

ドメイン値マップを削除する前に、リソースまたは依存性を確認します。Oracle Service Busコンソールの場合、DVM定義エディタでDVMを開き、右上の「参照」アイコンをクリックして、いずれかのサービスでそのDVMを使用しているかどうかを確認します。JDeveloperでは、DVMを右クリックして、「依存性の参照」を選択します。

DVMリソースを削除するには:

  1. アプリケーション・ナビゲータまたはプロジェクト・ナビゲータで、削除するリソースが含まれているプロジェクトおよびフォルダを開きます。
  2. リソースの名前を右クリックし、「削除」を選択します。
  3. JDeveloperを使用している場合、確認ダイアログに変換のための参照の数が表示されます。「使用方法の表示」をクリックして参照に関する情報を表示し、リソースを削除することを確定するため「はい」をクリックします。
  4. Oracle Service Busコンソールを使用している場合は、「アクティブ化」をクリックして、セッションを終了し、実行時用に構成をデプロイします。

22.5 式および条件でのドメイン値マップの使用方法

Service Busで提供されているDVM XPath関数を使用して、実行時に行われるドメイン値ルックアップを定義します。XPath関数によって、単一値または複数値のいずれに対しても様々な方法でルックアップを実行できます。これらのXPath関数は、式ビルダーで使用して式を作成したり、XSLTマッパーで使用して変換を作成できます。「式ビルダー」ダイアログには、いくつかのパイプライン・アクティビティおよび分割-結合操作からアクセスできます。

Service Busによって提供されるDVM関数の詳細は、「ドメイン値マップ関数」を参照してください。Oracle Service Bus Console式エディタおよび条件エディタの一般情報と手順については、「エディタ・ワークスペースのテキスト・フィールドでの式の構築」を参照してください。

JDeveloperでのDVM関数の使用の詳細、例および手順は、『Oracle SOA SuiteでのSOAアプリケーションの開発』のドメイン値マップ関数の使用方法に関する項を参照してください。この情報は、Oracle Service Busコンソールを使用する場合にも役立ちます。