ヘッダーをスキップ
Oracle® Fusion Middleware Oracle SOA Suite開発者ガイド
11g リリース1 (11.1.1.4.0)
B56238-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

44 ドメイン値マップの使用

この章では、ドメイン値マップを使用して、別のドメインで使用されている用語をマップする方法について説明します。

項目は次のとおりです。

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

ドメイン値マップは、実行時にインフラストラクチャを通過する実際のデータ値に対して機能します。ドメイン値マップを使用すると、特定のドメインで使用されているある用語を、異なるドメインで使用されている別の用語にマップできます。たとえば、あるドメインでは都市を正式名称(Boston)で表す場合があるのに対して、別のドメインでは、都市を略称(BO)で表す場合があります。このような場合は、ドメイン値マップを使用して値を直接マップできます。2つ以上のドメインの間で直接値をマップする方法は、ポイントツーポイント・マッピングと呼ばれます。表44-1に、2つのドメインの間で都市名をポイントツーポイント・マッピングする方法を示します。

表44-1 ポイントツーポイント・マッピング

CityCode CityName

BELG_MN_STLouis

BelgradeStLouis

BELG_NC

BelgradeNorthCarolina

BO

Boston

NP

Northport

KN_USA

KensingtonUSA

KN_CAN

KensingtonCanada


通常、各ドメイン値マップには、複数のアプリケーション間における特定カテゴリのマッピングが保持されます。たとえば、あるドメイン値マップは都市コードのマッピングを保持し、別のドメイン値マップは州コードのマッピングを保持できます。

ドメイン値マップの値は静的です。ドメイン値マップの各値は、設計時にOracle JDeveloperを使用して指定し、実行時に、各値についてドメイン値マップの各列がルックアップされます。

Oracle SOAコンポーザを使用して実行時のドメイン値マップを編集する方法の詳細は、第45章「ドメイン値マップでのOracle SOAコンポーザの使用」を参照してください。


注意:

アプリケーション間の各値を動的に統合するために、Oracle SOA Suiteの相互参照機能を使用できます。相互参照の詳細は、第46章「相互参照の使用」を参照してください。

44.1.1 ドメイン値マップ機能

この項では、ドメイン値マップ機能について説明します。

44.1.1.1 修飾子サポート

修飾子はマッピングを修飾します。追加情報で修飾されていないときは、マッピングが無効になる場合があります。たとえば、都市コードから都市名のマッピングを含むドメイン値マップにKNからKensingtonへのマッピングが複数あるのは、Kensingtonという都市がCanadaUSAの両方にあるためです。そのため、このマッピングでは表44-2に示すように、マッピングを有効にする際に使用する修飾子(USAまたはCanada)が必要です。

表44-2 修飾子サポートの例

Country(修飾子) CityCode CityName

USA

BO

Boston

USA

BELG_NC

Belgrade

USA

BELG_MN_Streams

Belgrade

USA

NP

Northport

USA

KN

Kensington

Canada

KN

Kensington


また、ドメイン値マップには複数の修飾子を指定できます。たとえば、表44-3に示すように、BELGからBelgradeへのマッピングは州名で修飾することもできます。

表44-3 複数の修飾子サポートの例

Country(修飾子) State(修飾子) CityCode CityName

USA

Massachusetts

BO

Boston

USA

North Carolina

BELG

Belgrade

USA

Minnesota

BELG

Belgrade

USA

Alabama

NP

Northport

USA

Kansas

KN

Kensington

Canada

Prince Edward Island

KN

Kensington


修飾子は、マッピングを修飾するときにのみ使用します。そのため、修飾子の値はルックアップできません。

44.1.1.2 修飾子の順序サポート

修飾子の順序は、実行時のルックアップで最適な一致を検出するために使用します。修飾子の順序は、より正確な一致を定義する際に、その修飾子の役割によって上位から下位に変化します。表44-3では、Stateの一致がより正確な一致を示すため、State修飾子をCountry修飾子より上位の順序に指定できます。

ドメイン値マップは階層ルックアップをサポートします。ルックアップ時に修飾子の値を指定し、正確な一致が検出されなかった場合は、ルックアップ・メカニズムによって上位順序の修飾子が""に設定され、より一般的な一致の検出が試行されます。この処理は、一致が検出されるか、またはすべての修飾子を""に設定しても一致が検出されない場合に終了します。図44-1では、表44-3に示した次のルックアップで実行される階層ルックアップについて説明しています。

State=Arkansas, Country=Canada, CityCode=KN_USA

この例では、State修飾子の値は1で、Country修飾子の値は2です。

図44-1に示すように、ルックアップ・メカニズムでは上位順序の修飾子Stateに正確なルックアップ値Arkansasを設定し、下位順序の修飾子CountryCanada|""を使用します。

図44-1 階層ルックアップの例

図44-1の説明が続きます
「図44-1 階層ルックアップの例」の説明

一致が検出されない場合、ルックアップ・メカニズムでは上位順序の修飾子Stateに値""を設定し、次に上位である修飾子Countryに正確な値Canadaを設定します。

一致が検出されない場合、ルックアップ・メカニズムでは以前に上位順序の修飾子であったCountryに値""を設定します。CityCodeKN_USAである一致行が1行検出された場合は、値としてKensingtonが返されます。

表44-4に、これらの手順の要約を示します。

表44-4 ドメイン値マップ・ルックアップ結果

State Country ShortValue ルックアップ結果

Arkansas

CANADA|" "

KN_USA

一致なし

" "

CANADA

KN_USA

一致なし

" "

" "

KN_USA

Kensington


44.1.1.3 1対多マッピング・サポート

ドメイン値マップでは、1つの値を複数の値にマップできます。たとえば、支払い条件のドメイン値マップには、表44-5に示すように、支払い条件と、値引率、値引期間、正味掛売り期間などの3つの値とのマッピングを格納できます。

表44-5 1対多マッピング・サポート

支払条件 値引率 値引期間 正味掛売り期間

GoldCustomerPaymentTerm

10

20

30

SilverCustomerPaymentTerm

5

20

30

RegularPaymentTerm

2

20

30


44.2 ドメイン値マップの作成

Oracle JDeveloperのSOAコンポジット・アプリケーションで1つ以上のドメイン値マップを作成し、実行時に、そのドメイン値マップを使用して列の各値をルックアップできます。

44.2.1 ドメイン値マップの作成方法

ドメイン値マップは、Oracle JDeveloperの「ドメイン値マップ(DVM)・ファイルの作成」ダイアログを使用して作成できます。

ドメイン値マップを作成する手順は、次のとおりです。

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

    「新規ギャラリ」ダイアログが表示されます。

  2. 「SOA層」ノードを開き、「トランスフォーメーション」カテゴリを選択します。

  3. 「項目」リストで、「ドメイン値マップ(DVM)」を選択し、「OK」をクリックします。

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

  4. 「ファイル名」フィールドに、ドメイン値マップのファイル名を入力します。たとえば、都市名と都市コードのドメイン値マップを識別するためにCityCodesを指定します。

  5. 「説明」フィールドに、ドメイン値マップの説明を入力します。たとえば、Mappings of city names and city codesと入力します。このフィールドはオプションです。

  6. 「ドメイン名」フィールドに、各ドメインの名前を入力します。たとえば、ある「ドメイン名」フィールドにはCityCodeを、別のフィールドにはCityNameを入力します。各ドメイン名はドメイン値マップ内では一意の名前にする必要があります。


    注意:

    ドメイン値マップ・エディタを使用して、後でドメインをドメイン値マップに追加できます。

  7. 「ドメイン値」フィールドに、各ドメインの対応する値を入力します。たとえば、図44-2に示すように、CityCodeドメインにBOを、CityNameドメインにBostonを入力します。

    図44-2 移入後の「ドメイン値マップ・ファイルの作成」ダイアログ

    図44-2の説明が続きます
    「図44-2 移入後のドメイン値マップ・ファイルの作成ダイアログ」の説明

  8. 「OK」をクリックします。

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

44.2.2 ドメイン値マップ作成時の処理内容

図44-3に示すように、拡張子が.dvmのファイルが作成され、「アプリケーション・ナビゲータ」に表示されます。

図44-3 「アプリケーション・ナビゲータ」のドメイン値マップ・ファイル

図44-3の説明が続きます
「図44-3 「アプリケーション・ナビゲータ」のドメイン値マップ・ファイル」の説明

すべての.dvmファイルは、例44-1に示すスキーマ定義(XSD)ファイルに基づいています。

例44-1 ドメイン値マップ・ファイルのXSDファイル

<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright (c) 2006, Oracle. All rights reserved.  -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  targetNamespace="http://xmlns.oracle.com/dvm"
                  xmlns:tns="http://xmlns.oracle.com/dvm"
                  elementFormDefault="qualified"
                  attributeFormDefault="unqualified">

<xsd:element name="dvm">
    <xsd:annotation>
      <xsd:documentation>The Top Level Element
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="description" minOccurs="0" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>The DVM Description.  This is optional
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="columns">
          <xsd:annotation>
            <xsd:documentation>This element holds DVM's column List.
            </xsd:documentation>
          </xsd:annotation>
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="column" minOccurs="2" maxOccurs="unbounded">
                <xsd:annotation>
                  <xsd:documentation>This represents a DVM Column
                  </xsd:documentation>
                </xsd:annotation>
                <xsd:complexType>
                  <xsd:attribute name="name" use="required" type="xsd:string"/>
                  <xsd:attribute name="qualifier" default="false" type="xsd:boolean"
 use="optional"/>
                  <xsd:attribute name="order" use="optional" type="xsd:positiveInteger"/>
                </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
        <xsd:element name="rows" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation>This represents all the DVM Rows.
            </xsd:documentation>
          </xsd:annotation>
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="row" minOccurs="1" maxOccurs="unbounded">
                <xsd:annotation>
                  <xsd:documentation>
                    Each DVM row of values
                  </xsd:documentation>
                </xsd:annotation>
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="cell" minOccurs="2" maxOccurs="unbounded" 
                       type="xsd:string">
                      <xsd:annotation>
                        <xsd:documentation>This is the value for this row and for
 each column in the same order as defined in Columns.
                        </xsd:documentation>
                      </xsd:annotation>
                    </xsd:element>
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="name" use="required" type="xsd:string"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:annotation>
    <xsd:documentation>This Schema is used to validate the DVM Document got for
 creation and
 update of a DVM.
    </xsd:documentation>
  </xsd:annotation>
</xsd:schema>

44.3 ドメイン値マップの編集

作成したドメイン値マップは、ドメイン値マップ・エディタで編集し、データの表示を調整できます。

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

ドメイン値マップの列では、値を他のドメインにマップするドメインを定義します。

ドメイン値マップに列を追加する手順は、次のとおりです。

  1. 「追加」をクリックします。

  2. 「列の追加」を選択します。

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

  3. 「名前」フィールドに、列の名前を入力します。

  4. 「修飾子」フィールドで、この列を修飾子として設定する場合は「True」を選択します。そうでない場合は「False」を選択します。

  5. 「修飾子順」フィールドに、修飾子の番号を入力します。このフィールドが有効になるのは、「修飾子」フィールドで「True」を選択した場合のみです。

  6. 「OK」をクリックします。

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

ドメイン値マップの行には、ドメインの値が格納されます。

ドメイン値マップに行を追加する手順は、次のとおりです。

  1. ドメイン値マップ・エディタで、「追加」をクリックします。

  2. 「行の追加」を選択します。

44.4 ドメイン値マップ機能の使用

ドメイン値マップを作成した後は、実行時にドメイン値マップのXPath関数を使用して適切な値をルックアップし、アプリケーションにターゲットを移入できます。

44.4.1 ドメイン値マップ関数の理解

dvm:lookupValueおよびdvm:lookupValue1MのXPath関数を使用すると、実行時に単一の値または複数の値についてドメイン値マップをルックアップできます。

44.4.1.1 dvm:lookupValue

dvm:lookupValue関数では、ソース列に指定のソース値を含むドメイン値マップでターゲット列の値をルックアップすることにより、文字列が返されます。

  • 例44-2に、dvm:lookupValue関数の構文の例を示します。

    例44-2 dvm:lookupValue関数の構文

    dvm:lookupValue(dvmMetadataURI as string, SourceColumnName as string,
     SourceValue as string, TargetColumnName as string, DefaultValue as string) as
     string
    

    例44-3に、dvm:lookupValue関数の使用方法の例を示します。

    例44-3 dvm:lookupValue関数の使用方法

    dvm:lookupValue('cityMap.dvm','CityCodes','BO', 'CityNames',
    'CouldNotBeFound')
    
  • 例44-4に、dvm:lookupValue関数の構文の別の例を示します。

    例44-4 dvm:lookupValue関数の構文

    dvm:lookupValue(dvmMetadataURI as string, SourceColumnName as string,
    SourceValue as string, TargetColumnName as string, DefaultValue as string,
    (QualifierSourceColumn as string, QualifierSourceValue as string)*) as string
    

    例44-5に、dvm:lookupValue関数の使用方法の別の例を示します。

    例44-5 dvm:lookupValue関数の使用方法

    dvm:lookupValue ('cityMap.dvm','CityCodes','BO','CityNames',
     'CouldNotBeFound', 'State', 'Massachusetts')
    

引数

  • dvmMetadataURI: ドメイン値マップのURI。

  • SourceColumnName: ソース列名。

  • SourceValue: ソース値(XSLTトランスフォーメーションのソース文書にバインドされるXPath式)。

  • targetColumnName: ターゲット列名。

  • DefaultValue: 値が見つからない場合は、デフォルト値が返されます。

  • QualifierSourceColumn: 修飾子列の名前。

  • QualifierSourceValue: 修飾子の値。

44.4.1.2 dvm:lookupValue1M

dvm:lookupValue1M関数では、ソース列の値がソース値と等しいドメイン値マップの複数のターゲット列の値を格納する、XML文書フラグメントが返されます。例44-6に詳細を示します。

例44-6 dvm:lookupValue1M関数の構文

dvm:lookupValue1M(dvmMetadataURI as string, SourceColumnName as string,
 SourceValue as string,(TargetColumnName as string)?)as nodeset 

引数

  • dvmMetadataURI: ドメイン値マップのURI。

  • SourceColumnName: ソース列名。

  • SourceValue: ソース値(XSLTトランスフォーメーションのソース文書にバインドされるXPath式)。

  • TargetColumnName: ターゲット列名。1つ以上の列名を指定する必要があります。疑問符記号(?)は複数のターゲット列名を指定できることを示します。

例44-7に、dvm:lookupValue1M関数の使用方法の例を示します。

例44-7 dvm:lookupValue1M関数の使用方法

dvm:lookupValue1M ('cityMap.dvm','CityCode','BO','CityName',
'CityNickName')

例44-8にその結果を示します。

例44-8 dvm:lookupValue1M関数の結果

<CityName>Boston</CityName>
<CityNickName>BeanTown</CityNickName>

44.4.2 トランスフォーメーションでのドメイン値マップ関数の使用方法

ドメイン値マップ関数は、BPELプロセス・サービス・コンポーネントまたはOracle Mediatorサービス・コンポーネントによるトランスフォーメーションに使用できます。トランスフォーメーションの実行には、XSLファイルを作成してXMLスキーマ間でデータを変換するときに表示されるXSLTマッパーを使用します。

XSLTマッパーの詳細は、第38章「XSLTマッパーを使用したトランスフォーメーションの作成」を参照してください。

トランスフォーメーションでlookupValue1M関数を使用する手順は、次のとおりです。

  1. 「アプリケーション・ナビゲータ」で、XSLファイルをダブルクリックしてXSLTマッパーを開きます。

  2. XSLTマッパーで、「ソース」および「ターゲット」ペインのツリーを開きます。

  3. 「コンポーネント・パレット」で、下矢印をクリックして「拡張」を選択します。

  4. 図44-4に示すように、「DVM Functions」を選択します。

    図44-4 「コンポーネント・パレット」のドメイン値マップ関数

    図44-4の説明が続きます
    「図44-4 「コンポーネント・パレット」のドメイン値マップ関数」の説明

  5. ソースとターゲットの接続線にlookupValue1Mをドラッグ・アンド・ドロップします。

    接続線上に「dvm:lookupValue1M」アイコンが表示されます。

  6. 「lookupValue1M」アイコンをダブルクリックします。

    図44-5に示すように、「関数の編集 – lookupValue1M」ダイアログが表示されます。

    図44-5 「関数の編集 – lookupValue1M」ダイアログ

    図44-5の説明が続きます
    「図44-5 「関数の編集 – lookupValue1M」ダイアログ」の説明

  7. 「関数の編集 – lookupValue1M」ダイアログの次のフィールドに値を指定します。

    1. 「dvmLocation」フィールドで、ドメイン値マップ・ファイルのロケーションURIを入力するか、「dvmLocation」フィールドの右側にある「参照」をクリックして、ドメイン値マップ・ファイルを選択します。MDS(メタデータ・サービス)およびMDSの共有ロケーションからもすでにデプロイされたドメイン値マップを選択できます。これを実行するには、「リソース・パレット」を選択します。

    2. 「sourceColumnName」フィールドに、ソース要素の値に関連付けられているドメイン値マップの列名を入力するか、「参照」をクリックして、以前に選択したドメイン値マップに定義されている列から列名を選択します。

    3. 「sourceValue」フィールドでは、値を入力するか、[Ctrl]キーを押しながら[Space]キーを押してXPathビルディング・アシスタントを使用できます。上矢印キーおよび下矢印キーを押して、リスト内のオブジェクトを配置し、[Enter]キーを押してその項目を選択します。

    4. 「targetColumnName」フィールドに、ターゲット要素の値に関連付けられているドメイン値マップの列名を入力するか、「参照」をクリックして、以前に選択したドメイン値マップに定義されている列から列名を選択します。

    5. 「追加」をクリックして別の列をターゲット列として追加し、列の名前を入力します。

    図44-6に、移入後の「関数の編集 - lookupValue1M」ダイアログを示します。

    図44-6 移入後の「関数の編集 – lookupValue1M」ダイアログ

    図44-6の説明が続きます
    「図44-6 移入後の「関数の編集 – lookupValue1M」ダイアログ」の説明

  8. 「OK」をクリックします。

    XSLTマッパーが、「lookupValue1M」関数アイコンとともに表示されます。

  9. 「ファイル」メニューから「すべて保存」を選択します。

デプロイ済のドメイン値マップを選択する方法の詳細は、第41.7.3項「Oracle JDeveloperでのSOAコンポジット・アプリケーション間の共有メタデータのデプロイおよび使用」を参照してください。

44.4.3 XPath式でのドメイン値マップ関数の使用方法

「式ビルダー」ダイアログでは、ドメイン値マップ関数を使用してXpath式を作成できます。「式ビルダー」ダイアログには、Oracle Mediatorサービス・コンポーネントのフィルタ式または値の割当て機能からアクセスできます。

値の割当て機能の詳細は、第20.2.2.9項「値の割当て方法」を参照してください。

「式ビルダー」ダイアログでlookupValue関数を使用する手順は、次のとおりです。

  1. 「関数」リストから「DVM Functions」を選択します。

  2. dvm:lookupValue関数をダブルクリックして、「式」フィールドに追加します。

  3. lookupValue関数の様々な引数を指定します。例:

    dvm:lookupValue('citymap.dvm','CityCodes',$in.Customer/inp1:Customer/Address/Ci
    ty,'CityNames','NotFound')
    

    図44-7にも示すように、この式では、都市コードと等価の都市名のドメイン値マップがルックアップされます。都市コードの値は実行時に指定された値によって異なります。

図44-7 「式ビルダー」ダイアログのドメイン値マップ関数

図44-7の説明が続きます
「図44-7 「式ビルダー」ダイアログのドメイン値マップ関数」の説明

44.4.4 実行時の処理内容

実行時には、BPELプロセス・サービス・コンポーネントまたはOracle Mediatorサービス・コンポーネントが、ドメイン値マップを使用して適切な値をルックアップします。

44.5 階層ルックアップ用のドメイン値マップ・ユースケースの作成

このユースケースは、ドメイン値マップの階層ルックアップ機能を示します。階層ルックアップのユースケースは次の手順で構成されます。

  1. ReadOrdersという名前のアダプタ・サービスにより、ファイルがディレクトリから取得されます。

  2. ReadOrdersアダプタ・サービスがファイル・データをProcessOrdersというOracle Mediatorに送信します。

  3. 次にProcessOrders Oracle Mediatorはメッセージをアダプタ参照で必要となる構造に変換します。トランスフォーメーション中、Oracle MediatorはCommonドメインの等価値に対するUnitsOfMeasureドメイン値マップをルックアップします。

  4. ProcessOrders Oracle Mediatorは、WriteOrdersという外部参照にメッセージを送信します。

  5. WriteOrders参照は、指定された出力ディレクトリにメッセージを書き込みます。

この項で説明するサンプル・ファイルをダウンロードするには、次のURLを参照してください。

https://soasamples.samplecode.oracle.com/#mediator

44.5.1 HierarchicalValueユースケースの作成方法

この項では、SOAコンポジット・アプリケーションを作成、構築およびデプロイするための設計時タスクを説明します。これらのタスクは、表示されている順番で実行する必要があります。

44.5.1.1 タスク1: Oracle Jdeveloperのアプリケーションおよびプロジェクトの作成方法

Oracle Jdeveloperのアプリケーションおよびプロジェクトを作成する手順は、次のとおりです。

  1. Oracle JDeveloperで「ファイル」をクリックし、「新規」を選択します。

    「新規ギャラリ」ダイアログが表示されます。

  2. 「新規ギャラリ」で「一般」ノードを開き、「アプリケーション」カテゴリを選択します。

  3. 「項目」リストで「SOAアプリケーション」を選択し、「OK」をクリックします。

    SOAアプリケーションの作成ウィザードが表示されます。

  4. 「アプリケーション名」フィールドにHierarchicalと入力し、「次へ」をクリックします。

    「プロジェクトの名前付け」ページが表示されます。

  5. 「プロジェクト名」フィールドにHierarchicalValueと入力し、「次へ」をクリックします。

    SOA設定の構成ページが表示されます。

  6. 「コンポジット・テンプレート」リストで「空のコンポジット」を選択し、「終了」をクリックします。

    Oracle JDeveloperの「アプリケーション・ナビゲータ」には新規のアプリケーションやプロジェクトが移入され、SOAコンポジット・エディタには空白のコンポジットがあります。

  7. 「ファイル」メニューから「すべて保存」を選択します。

44.5.1.2 タスク2: ドメイン値マップの作成方法

ユースケース用のアプリケーションおよびプロジェクトを作成した後は、ドメイン値マップを作成する必要があります。

ドメイン値マップを作成する手順は、次のとおりです。

  1. 「アプリケーション・ナビゲータ」で、「HierarchicalValue」プロジェクトを右クリックし、「新規」を選択します。

  2. 「新規ギャラリ」ダイアログで「SOA層」ノードを開き、「トランスフォーメーション」カテゴリを選択します。

  3. 「項目」リストで、「ドメイン値マップ(DVM)」を選択し、「OK」をクリックします。

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

  4. 「ファイル名」フィールドに、UnitsOfMeasure.dvmと入力します。

  5. 「ドメイン名」フィールドに、SiebelCommonを入力します。

  6. Siebelドメインに対応する「ドメイン値」フィールドに、Eaと入力します。

  7. Commonドメインに対応する「ドメイン値」フィールドに、Eachと入力します。

  8. 「OK」をクリックします。

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

  9. 「追加」をクリックし、次に「列の追加」を選択します。

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

  10. 「名前」フィールドに、TradingPartnerと入力します。

  11. 「修飾子」リストから「True」を選択します。

  12. 「QualifierOrder」フィールドに1を入力し、「OK」をクリックします。

  13. ステップ9からステップ12を繰り返して、StandardCodeという名前で修飾子の順序の値が2の修飾子をもう1つ作成します。

  14. 「追加」をクリックし、次に「行の追加」を選択します。

    この手順を繰り返し、さらに2行追加します。

  15. ドメイン値マップ表に新たに追加した行に、表44-6に示す情報を入力します。

    表44-6 ドメイン値マップ表の各行の情報

    Siebel Common TradingPartner StandardCode

    EC

    Each


    OAG

    E-RN

    Each

    A.C.Networks

    RN

    EO

    Each

    ABC Inc

    RN


    図44-8に示すように、ドメイン値マップ・エディタが表示されます。

    図44-8 UnitsOfMeasureのドメイン値マップ

    図44-8の説明が続きます
    「図44-8 UnitsOfMeasureのドメイン値マップ」の説明

  16. 「ファイル」メニューから「すべて保存」を選択して、ドメイン値マップ・エディタを閉じます。

44.5.1.3 タスク3: ファイル・アダプタ・サービスの作成方法

ドメイン値マップを作成した後は、ReadOrdersという名前のファイル・アダプタ・サービスを作成して、ディレクトリからXMLファイルを読み取る必要があります。


注意:

Oracle Mediatorは、Oracle Real Application Clusters(Oracle RAC)の計画的停止に対して実行する際、同じファイルを2回処理する可能性があります。これは、ファイル・アダプタがXAに準拠していないアダプタであるためです。したがって、グローバル・トランザクションに組み入れると、各ファイルを1回のみ処理するXAインタフェース仕様に逸脱する可能性があります。

ファイル・アダプタ・サービスを作成する手順は、次のとおりです。

  1. 「コンポーネント・パレット」から「SOA」を選択します。

  2. 「ファイル・アダプタ」を選択し、「公開されたサービス」スイムレーンにドラッグします。

  3. アダプタ構成ウィザードの「ようこそ」ページが開いた場合は、「次へ」をクリックします。

    「サービス名」ページが表示されます。

  4. 「サービス名」フィールドにReadOrdersと入力し、「次へ」をクリックします。

    「操作」ページが表示されます。

  5. 「操作タイプ」フィールドで「Read File」を選択し、「次へ」をクリックします。

    「ファイル・ディレクトリ」ページが表示されます。

  6. 「着信ファイル用のディレクトリ(物理パス)」フィールドに、ファイルの読取り先のディレクトリを入力します。

  7. 「次へ」をクリックします。

    「ファイルのフィルタ処理」ページが表示されます。

  8. 「インクルード・ファイルの名前パターン」フィールドに*.xmlと入力し、「次へ」をクリックします。

    「ファイル・ポーリング」ページが表示されます。

  9. 「ポーリング頻度」フィールドの値を10に変更し、「次へ」をクリックします。

    「メッセージ」ページが表示されます。

  10. 「検索」をクリックします。

    「タイプ・チューザ」ダイアログが表示されます。

  11. 「スキーマ・ファイルのインポート」をクリックします。

    「スキーマ・ファイルのインポート」ダイアログが表示されます。

  12. 「検索」をクリックして、Samplesフォルダに存在するOrder.xsdファイルを選択します。

  13. 「OK」をクリックします。

  14. 「タイプ・エクスプローラ」→「インポートしたスキーマ」→「Order.xsd」の順にナビゲーション・ツリーを開きます。

  15. 「listOfOrder」を選択して、「OK」をクリックします。

  16. 「次へ」をクリックします。

    「終了」ページが表示されます。

  17. 「終了」をクリックします。

  18. 「ファイル」メニューから「すべて保存」をクリックします。

    図44-9に、SOAコンポジット・エディタのReadOrdersサービスを示します。

    図44-9 SOAコンポジット・エディタのReadOrdersサービス

    図44-9の説明が続きます
    「図44-9 SOAコンポジット・エディタのReadOrdersサービス」の説明

44.5.1.4 タスク4: ProcessOrders Oracle Mediatorコンポーネントの作成方法

ProcessOrdersという名前のOracle Mediatorを作成する手順は、次のとおりです。

  1. 「コンポーネント・パレット」から「メディエータ」アイコンをドラッグし、SOAコンポジット・エディタの「コンポーネント」セクションにドロップします。

    「メディエータの作成」ダイアログが表示されます。

  2. 「名前」フィールドに、ProcessOrdersと入力します。

  3. 「テンプレート」リストから、「インタフェースを後で定義」を選択します。

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

    ProcessOrdersという名前のOracle Mediatorが作成されます。

  5. 図44-10に示すように、SOAコンポジット・エディタで、「ReadOrders」サービスと「ProcessOrders」Oracle Mediatorを接続します。

    この操作により、ファイルを入力ディレクトリから読み込む間に、ProcessOrders Oracle Mediatorを起動するファイル・アダプタ・サービスが指定されます。

    図44-10 ReadOrdersサービスからProcessOrders Oracle Mediatorへの接続

    図44-10の説明が続きます
    「図44-10 ReadOrdersサービスからProcessOrders Oracle Mediatorへの接続」の説明

  6. 「ファイル」メニューから「すべて保存」を選択します。

44.5.1.5 タスク5: ファイル・アダプタ参照の作成方法

ファイル・アダプタ参照を作成する手順は、次のとおりです。

  1. 「コンポーネント・パレット」から「SOA」を選択します。

  2. 「ファイル・アダプタ」を選択し、「外部参照」スイムレーンにドラッグします。

    アダプタ構成ウィザードの「ようこそ」ページが表示されます。

  3. 「次へ」をクリックします。

    「サービス名」ページが表示されます。

  4. 「サービス名」フィールドに、WriteCommonOrderと入力します。

  5. 「次へ」をクリックします。

    「操作」ページが表示されます。

  6. 「操作タイプ」フィールドで、「Write File」を選択します。

  7. 「次へ」をクリックします。

    「ファイル構成」ページが表示されます。

  8. 「発信ファイルのディレクトリ(物理パス)」フィールドに、ファイルを書き込むディレクトリの名前を入力します。

  9. ファイル・ネーミング規則フィールドにcommon_order_%SEQ%.xmlと入力して、「次へ」をクリックします。

    「メッセージ」ページが表示されます。

  10. 「検索」をクリックします。

    「タイプ・チューザ」ダイアログが表示されます。

  11. 「タイプ・エクスプローラ」→「プロジェクトのスキーマ・ファイル」→「Order.xsd」の順に移動し、「listOfOrder」を選択します。

  12. 「OK」をクリックします。

  13. 「次へ」をクリックします。

    「終了」ページが表示されます。

  14. 「終了」をクリックします。

    図44-11に、SOAコンポジット・エディタのWriteCommonOrder参照を示します。

    図44-11 SOAコンポジット・エディタのWriteCommonOrder参照

    図44-11の説明が続きます
    「図44-11 SOAコンポジット・エディタのWriteCommonOrder参照」の説明

  15. 「ファイル」メニューから「すべて保存」を選択します。

44.5.1.6 タスク6: ルーティング・ルールの指定方法

メッセージが経由するReadOrdersアダプタ・サービスから外部参照へのパスを指定する必要があります。

ルーティング・ルールを指定する手順は、次のとおりです。

  1. 図44-12に示すように、「ProcessOrders」Oracle Mediatorを「WriteCommonOrder」参照に接続します。

    図44-12 ProcessOrders Oracle Mediator Oracle MediatorからWriteCommonOrder参照への接続

    図44-12の説明が続きます
    「図44-12 ProcessOrders Oracle MediatorからWriteCommonOrder参照への接続」の説明

  2. 「ProcessOrders」Oracle Mediatorをダブルクリックします。

  3. 「次を使用して変換」フィールドの右側にあるアイコンをクリックします。

    「リクエスト・トランスフォーメーション・マップ」ダイアログが表示されます。

  4. 「新規マッパー・ファイルの作成」を選択し、「OK」をクリックします。

    XSLTマッパーに、「listOfOrder_To_listOfOrder.xsl」ファイルが表示されます。

  5. 「imp1:listOfOrder」ソース要素を「imp1:listOfOrder」ターゲット要素にドラッグ・アンド・ドロップします。

    「自動マップ・プリファレンス」ダイアログが表示されます。

  6. 「自動マップ中」オプションから、「祖先名を考慮した要素の一致」の選択を解除します。

  7. 「OK」をクリックします。

    図44-13に示すように、「listOfOrder_To_listOfOrder.xsl」ファイルが表示されます。

    図44-13 imp1:listOfOrderからimp1:listOfOrderへのトランスフォーメーション

    図44-13の説明が続きます
    「図44-13 imp1:listOfOrderからimp1:listOfOrderへのトランスフォーメーション」の説明

  8. 「コンポーネント・パレット」で、「拡張」を選択します。

  9. 「DVM Functions」をクリックします。

  10. 図44-14に示すように、lookupValueunitsOfMeasure要素の接続線にドラッグ・アンド・ドロップします。

    図44-14 imp1:listOfOrderからimp1:listOfOrder.xslへのlookupValue関数の追加

    図44-14の説明が続きます
    「図44-14 imp1:listOfOrderからimp1:listOfOrder.xslへのlookupValue関数の追加」の説明

  11. 「lookupvalue」アイコンをダブルクリックします。

    「関数の編集 - lookupValue」ダイアログが表示されます。

  12. 「dvmLocation」フィールドの右側にある「検索」をクリックします。

    「SOAリソース・ルックアップ」ダイアログが表示されます。

  13. 「UnitsofMeasure.dvm」を選択して、「OK」をクリックします。

  14. 「sourceColumnName」フィールドの右側にある「検索」をクリックします。

    DVM列の選択ダイアログが表示されます。

  15. 「Siebel」を選択して、「OK」をクリックします。

  16. 「sourceValue」列に、次の値を入力します。

    /imp1:listOfOrder/imp1:order/imp1:baseData/imp1:unitOfMeasure

  17. 「targetColumnName」フィールドの右側にある「検索」をクリックします。

    DVM列の選択ダイアログが表示されます。

  18. 「Common」を選択して、「OK」をクリックします。

  19. 「defaultValue」フィールドに"No_Value_Found"と入力します。

  20. 「追加」をクリックします。

    「qualifierColumnName」行が追加されます。

  21. 「qualifierColumnName」フィールドに"StandardCode"と入力します。

  22. 「追加」をクリックします。

    「qualifierValue」行が追加されます。

  23. 「qualifierValue」フィールドに、次の値を入力します。

    /imp1:listOfOrder/imp1:order/imp1:baseData/imp1:standard

  24. 「追加」をクリックして、別の「qualifierColumnName」行を挿入します。

  25. 「qualifierColumnName」フィールドに"TradingPartner"と入力します。

  26. 「追加」をクリックして、別の「qualifierValue」行を挿入します。

  27. 「qualifierValue」フィールドに、次の値を入力します。

    /imp1:listOfOrder/imp1:order/imp1:baseData/imp1:tp

    図44-15に示すように、「関数の編集 - lookupValue」ダイアログが表示されます。

    図44-15 「関数の編集 - lookupValue関数」ダイアログ: 階層ルックアップ・ユースケース

    図44-15の説明が続きます
    「図44-15 「関数の編集 - lookupValue関数」ダイアログ: 階層ルックアップ・ユースケース」の説明

  28. 「OK」をクリックします。

    図44-16に示すように、トランスフォーメーションが表示されます。

    図44-16 imp1:listOfOrderからimp1:listOfOrderへのトランスフォーメーションの完了

    図44-16の説明が続きます
    「図44-16 imp1:listOfOrderからimp1:listOfOrderへのトランスフォーメーションの完了」の説明

  29. 「ファイル」メニューから「すべて保存」を選択して、上部にある「listOfOrder_To_listOfOrder.xsl」ファイルを閉じます。

44.5.1.7 タスク7: アプリケーション・サーバー接続の構成方法

SOAコンポジット・アプリケーションをデプロイするには、アプリケーション・サーバー接続が必要です。アプリケーション・サーバー接続の作成方法の詳細は、第41.7.1.1.1項「アプリケーション・サーバー接続の作成」を参照してください。

44.5.1.8 タスク8: コンポジット・アプリケーションのデプロイ方法

次の手順で、HierarchicalValueコンポジット・アプリケーションをアプリケーション・サーバーにデプロイします。

  • アプリケーション・デプロイメント・プロファイルの作成

  • アプリケーション・サーバーへのアプリケーションのデプロイ

これらの手順の詳細は、第41.7.1項「Oracle JDeveloperでの単一のSOAコンポジットのデプロイ」を参照してください。

44.5.2 HierarchicalValueアプリケーションの実行方法と監視方法

デプロイしたHierarchicalValueアプリケーションは、入力XMLファイルであるsampleorder.xmlを入力フォルダにコピーすることで実行できます。このファイルはsamplesフォルダにあります。正常終了した場合、common_order_1.xmlという名前のファイルが、指定された出力ディレクトリに作成されます。

実行中のインスタンスの監視には、次のURLにあるOracle Enterprise Manager Fusion Middleware Controlコンソールを使用できます。

http://hostname:port/em

ここで、hostnameは、Oracle SOA Suiteインフラストラクチャをインストールしたホストです。

これらの手順の詳細は、第41.7.1項「Oracle JDeveloperでの単一のSOAコンポジットのデプロイ」を参照してください。

44.6 複数の値のドメイン値マップ・ユースケースの作成

このユースケースは、複数の値をルックアップするために、2つのエンドポイント間でドメイン値マップ・ルックアップを使用する統合シナリオを示します。たとえば、インバウンド値が州の場合、アウトバウンド値は州の略称、言語および首都になります。複数の値ルックアップのユースケースは次の手順で構成されます。

  1. readFileという名前のアダプタ・サービスにより、ファイルがディレクトリから取得されます。

  2. readFileアダプタ・サービスがファイル・データをLookupMultiplevaluesMediatorというOracle Mediatorに送信します。

  3. 次にLookupMultiplevaluesMediator Oracle Mediatorはメッセージをアダプタ参照で必要となる構造に変換します。トランスフォーメーション中、Oracle MediatorはLongnameおよびShortnameドメインの等価値に対するmultivalueドメイン値マップをルックアップします。

  4. LookupMultiplevaluesMediator Oracle Mediatorは、writeFileという外部参照にメッセージを送信します。

  5. writeFile参照は、指定された出力ディレクトリにメッセージを書き込みます。

この項で説明するサンプル・ファイルをダウンロードするには、次のURLを参照してください。

https://soasamples.samplecode.oracle.com/#mediator

44.6.1 Multivalueユースケースの作成方法

この項では、SOAコンポジット・アプリケーションを作成、構築およびデプロイするための設計時タスクを説明します。これらのタスクは、表示されている順番で実行します。

44.6.1.1 タスク1: Oracle Jdeveloperのアプリケーションおよびプロジェクトの作成方法

Oracle Jdeveloperのアプリケーションおよびプロジェクトを作成する手順は、次のとおりです。

  1. Oracle JDeveloperで「ファイル」をクリックし、「新規」を選択します。

    「新規ギャラリ」ダイアログが表示されます。

  2. 「新規ギャラリ」で「一般」ノードを開き、「アプリケーション」カテゴリを選択します。

  3. 「項目」リストで「SOAアプリケーション」を選択し、「OK」をクリックします。

    SOAアプリケーションの作成ウィザードが表示されます。

  4. 「アプリケーション名」フィールドにMultivalueと入力し、「次へ」をクリックします。

    「プロジェクトの名前付け」ページが表示されます。

  5. 「プロジェクト名」フィールドにMultivalueと入力し、「次へ」をクリックします。

    SOA設定の構成ページが表示されます。

  6. 「コンポジット・テンプレート」リストから「空のコンポジット」を選択し、「終了」をクリックします。

    Oracle JDeveloperの「アプリケーション・ナビゲータ」には新規のアプリケーションやプロジェクトが移入され、SOAコンポジット・エディタには空白のコンポジットがあります。

  7. 「ファイル」メニューから「すべて保存」を選択します。

44.6.1.2 タスク2: ドメイン値マップの作成方法

ユースケース用のアプリケーションおよびプロジェクトを作成した後は、ドメイン値マップを作成する必要があります。

ドメイン値マップを作成する手順は、次のとおりです。

  1. 「アプリケーション・ナビゲータ」で、「Multivalue」プロジェクトを右クリックし、「新規」を選択します。

  2. 「新規ギャラリ」ダイアログで「SOA層」ノードを開き、「トランスフォーメーション」カテゴリを選択します。

  3. 「項目」リストで、「ドメイン値マップ(DVM)」を選択し、「OK」をクリックします。

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

  4. 「ファイル名」フィールドに、multivalue.dvmと入力します。

  5. 「ドメイン名」フィールドに、LongnameShortnameLanguageおよびCapitalを入力します。

  6. Longnameドメインに対応する「ドメイン値」フィールドに、Karnatakaと入力します。

  7. Shortnameドメインに対応する「ドメイン値」フィールドに、KAと入力します。

  8. Languageドメインに対応する「ドメイン値」フィールドに、Kannadaと入力します。

  9. Capitalドメインに対応する「ドメイン値」フィールドに、Bangaloreと入力します。

  10. 「OK」をクリックします。

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

  11. 「追加」をクリックし、次に「行の追加」を選択します。

    この手順を繰り返し、さらに2行追加します。

  12. ドメイン値マップ表に新たに追加した行に、表44-7に示す情報を入力します。

    表44-7 ドメイン値マップ表の各行の情報

    Longname Shortname Language Capital

    Karnataka

    KA

    Kannada

    Bangalore

    Tamilnadu

    TN

    Tamil

    Chennai

    Andhrapradesh

    AP

    Telugu

    Hyderbad

    Kerala

    KL

    Malayalam

    Trivandram


    図44-17に示すように、ドメイン値マップ・エディタが表示されます。

    図44-17 Multivalueのドメイン値マップ

    図44-17の説明が続きます
    「図44-17 Multivalueのドメイン値マップ」の説明

  13. 「ファイル」メニューから「すべて保存」を選択して、ドメイン値マップ・エディタを閉じます。

44.6.1.3 タスク3: ファイル・アダプタ・サービスの作成方法

ドメイン値マップを作成した後は、readFileという名前のファイル・アダプタ・サービスを作成して、ディレクトリからXMLファイルを読み取る必要があります。


注意:

Oracle Mediatorは、Oracle RACの計画的停止に対して実行する際、同じファイルを2回処理する可能性があります。これは、ファイル・アダプタがXAに準拠していないアダプタであるためです。したがって、グローバル・トランザクションに組み入れると、各ファイルを1回のみ処理するXAインタフェース仕様に逸脱する可能性があります。

ファイル・アダプタ・サービスを作成する手順は、次のとおりです。

  1. 「コンポーネント・パレット」から「SOA」を選択します。

  2. 「ファイル・アダプタ」を選択し、「公開されたサービス」スイムレーンにドラッグします。

  3. アダプタ構成ウィザードの「ようこそ」ページが開いた場合は、「次へ」をクリックします。

    「サービス名」ページが表示されます。

  4. 「サービス名」フィールドにreadFileと入力し、「次へ」をクリックします。

    「アダプタ・インタフェース」ページが表示されます。

  5. 「操作およびスキーマから定義(後で指定)」をクリックし、「次へ」をクリックします。

    「操作」ページが表示されます。

  6. 「操作タイプ」フィールドで「Read File」を選択し、「次へ」をクリックします。

    「ファイル・ディレクトリ」ページが表示されます。

  7. 「着信ファイル用のディレクトリ(物理パス)」フィールドに、ファイルの読取り先のディレクトリを入力します。

  8. 「次へ」をクリックします。

    「ファイルのフィルタ処理」ページが表示されます。

  9. 「インクルード・ファイルの名前パターン」フィールドに*.xmlと入力し、「次へ」をクリックします。

    「ファイル・ポーリング」ページが表示されます。

  10. 「ポーリング頻度」フィールドの値を1に変更し、「次へ」をクリックします。

    「メッセージ」ページが表示されます。

  11. 「検索」をクリックします。

    「タイプ・チューザ」ダイアログが表示されます。

  12. 「スキーマ・ファイルのインポート」をクリックします。

    「スキーマ・ファイルのインポート」ダイアログが表示されます。

  13. 「検索」をクリックして、Samplesフォルダに存在するinput.xsdファイルを選択します。

  14. 「OK」をクリックします。

  15. 「タイプ・エクスプローラ」→「インポートしたスキーマ」→「input.xsd」の順にナビゲーション・ツリーを開きます。

  16. 「Root-Element」を選択して、「OK」をクリックします。

  17. 「次へ」をクリックします。

    「終了」ページが表示されます。

  18. 「終了」をクリックします。

  19. 「ファイル」メニューから「すべて保存」を選択します。

    図44-18に、SOAコンポジット・エディタのreadFileサービスを示します。

    図44-18 SOAコンポジット・エディタのreadFileサービス

    図44-18の説明が続きます
    「図44-18 SOAコンポジット・エディタのreadFileサービス」の説明

44.6.1.4 タスク4: LookupMultiplevaluesMediator Oracle Mediatorの作成方法

LookupMultiplevaluesMediator Oracle Mediatorを作成する手順は、次のとおりです。

  1. 「コンポーネント・パレット」から「メディエータ」アイコンをドラッグし、SOAコンポジット・エディタの「コンポーネント」セクションにドロップします。

    「メディエータの作成」ダイアログが表示されます。

  2. 「名前」フィールドに、LookupMultiplevaluesMediatorと入力します。

  3. 「テンプレート」リストから、「インタフェースを後で定義」を選択します。

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

    LookupMultiplevaluesMediatorという名前のOracle Mediatorが作成されます。

  5. 図44-19に示すように、SOAコンポジット・エディタで、「readFile」サービスと「LookupMultiplevaluesMediator」Oracle Mediatorを接続します。

    この操作により、ファイルを入力ディレクトリから読み込む間に、LookupMultiplevaluesMediator Oracle Mediatorを起動するファイル・アダプタ・サービスが指定されます。

    図44-19 readFileサービスからLookupMultiplevaluesMediator Oracle Mediatorへの接続

    図44-19の説明が続きます
    「図44-19 readFileサービスからLookupMultiplevaluesMediator Oracle Mediatorへの接続」の説明

  6. 「ファイル」メニューから「すべて保存」を選択します。

44.6.1.5 タスク5: ファイル・アダプタ参照の作成方法

ファイル・アダプタ参照を作成する手順は、次のとおりです。

  1. 「コンポーネント・パレット」から「SOA」を選択します。

  2. 「ファイル・アダプタ」を選択し、「外部参照」スイムレーンにドラッグします。

    アダプタ構成ウィザードの「ようこそ」ページが表示されます。

  3. 「次へ」をクリックします。

    「サービス名」ページが表示されます。

  4. 「サービス名」フィールドにwriteFileと入力し、「次へ」をクリックします。

    「アダプタ・インタフェース」ページが表示されます。

  5. 「操作およびスキーマから定義(後で指定)」をクリックし、「次へ」をクリックします。

    「操作」ページが表示されます。

  6. 「次へ」をクリックします。

    「操作」ページが表示されます。

  7. 「操作タイプ」フィールドで、「Write File」を選択します。

  8. 「次へ」をクリックします。

    「ファイル構成」ページが表示されます。

  9. 「発信ファイルのディレクトリ(物理パス)」フィールドに、ファイルを書き込むディレクトリの名前を入力します。

  10. ファイル・ネーミング規則フィールドにmultivalue_%SEQ%.xmlと入力して、「次へ」をクリックします。

    「メッセージ」ページが表示されます。

  11. 「検索」をクリックします。

    「タイプ・チューザ」ダイアログが表示されます。

  12. 「タイプ・エクスプローラ」→「プロジェクトのスキーマ・ファイル」→「output.xsd」の順に移動し、「Root-Element」を選択します。

  13. 「OK」をクリックします。

  14. 「次へ」をクリックします。

    「終了」ページが表示されます。

  15. 「終了」をクリックします。

    図44-20に、SOAコンポジット・エディタのwriteFile参照を示します。

    図44-20 SOAコンポジット・エディタのwriteFile参照

    図44-20の説明が続きます
    「図44-20 SOAコンポジット・エディタのwriteFile参照」の説明

  16. 「ファイル」メニューから「すべて保存」を選択します。

44.6.1.6 タスク6: ルーティング・ルールの指定方法

メッセージが経由するreadFileアダプタ・サービスから外部参照へのパスを指定する必要があります。

ルーティング・ルールを指定する手順は、次のとおりです。

  1. 図44-21に示すように、「LookupMultiplevaluesMediator」Oracle Mediatorを「writeFile」参照に接続します。

    図44-21 LookupMultiplevaluesMediator Oracle MediatorからwriteFile参照への接続

    図44-21の説明が続きます
    「図44-21 LookupMultiplevaluesMediator Oracle MediatorからwriteFile参照への接続」の説明

  2. 「LookupMultiplevaluesMediator」Oracle Mediatorをダブルクリックします。

  3. 「次を使用して変換」フィールドの右側にあるアイコンをクリックします。

    「リクエスト・トランスフォーメーション・マップ」ダイアログが表示されます。

  4. 「新規マッパー・ファイルの作成」を選択し、「OK」をクリックします。

    XSLTマッパーに、「Input_To_Output_with_multiple_values_lookup.xsl」ファイルが表示されます。

  5. 「imp1:Root-Element」ソース要素を「ns2:Root-Element」ターゲット要素にドラッグ・アンド・ドロップします。

    「自動マップ・プリファレンス」ダイアログが表示されます。

  6. 「自動マップ中」オプション・リストから、「祖先名を考慮した要素の一致」の選択を解除します。

  7. 「OK」をクリックします。

    図44-22に示すように、XSLTマッパーに「Input_To_Output_with_multiple_values_lookup.xsl」ファイルが表示されます。

    図44-22 imp1:Root-Elementからns2:Root-Elementへのトランスフォーメーション

    図44-22の説明が続きます
    「図44-22 imp1:Root-Elementからns2:Root-Elementへのトランスフォーメーション」の説明

  8. 「コンポーネント・パレット」で、「拡張」を選択します。

  9. 「DVM Functions」をクリックします。

  10. 図44-23に示すように、lookupValue1Mを中央のパネルにドラッグ・アンド・ドロップします。

    図44-23 imp1:Root-Elementからns2:Root-ElementへのlookupValue関数の追加

    図44-23の説明が続きます
    「図44-23 imp1:Root-Elementからns2:Root-ElementへのlookupValue関数の追加」の説明

  11. 「lookupvalue1M」アイコンをダブルクリックします。

    「関数の編集 - lookupValue1M」ダイアログが表示されます。

  12. 「dvmLocation」フィールドの右側にある「検索」をクリックします。

    「SOAリソース・ルックアップ」ダイアログが表示されます。

  13. 「multivalue.dvm」を選択して、「OK」をクリックします。

  14. 「sourceColumnName」フィールドの右側にある「検索」をクリックします。

    DVM列の選択ダイアログが表示されます。

  15. 「Longname」を選択して、「OK」をクリックします。

  16. 「sourceValue」列に、次の値を入力します。

    /imp1:Root-Element/imp1:Details/imp1:Longname

  17. 「targetColumnName」フィールドの右側にある「検索」をクリックします。

    DVM列の選択ダイアログが表示されます。

  18. 「Shortname」を選択して、「OK」をクリックします。

  19. 「追加」をクリックします。

    「targetColumnName」行が追加されます。

  20. 「targetColumnName」フィールドに、"Language"と入力します。

  21. 「追加」をクリックして、別の「targetColumnName」行を挿入します。

  22. 「targetColumnName」フィールドに、"Capital"と入力します。

    図44-24に示すように、「関数の編集 - lookupValue」ダイアログが表示されます。

    図44-24 「関数の編集 - lookupValue関数」ダイアログ: 複数の値ルックアップ・ユースケース

    図44-24の説明が続きます
    「図44-24 「関数の編集 - lookupValue関数」ダイアログ: 複数の値ルックアップ・ユースケース」の説明

  23. 「OK」をクリックします。

    図44-25に示すように、トランスフォーメーションが表示されます。

    図44-25 imp1:Root-Elementからns2:Root-Elementへのトランスフォーメーションの完了

    図44-25の説明が続きます
    「図44-25 imp1:Root-Elementからns2:Root-Elementへのトランスフォーメーションの完了」の説明

  24. 「ファイル」メニューから「すべて保存」を選択して、「Input_To_Output_with_multiple_values_lookup.xsl」ファイルを閉じます。

44.6.1.7 タスク7: アプリケーション・サーバー接続の構成方法

SOAコンポジット・アプリケーションをデプロイするには、アプリケーション・サーバー接続が必要です。アプリケーション・サーバー接続の作成方法の詳細は、第41.7.1.1.1項「アプリケーション・サーバー接続の作成」を参照してください。

44.6.1.8 タスク8: コンポジット・アプリケーションのデプロイ方法

次の手順で、Multivalueコンポジット・アプリケーションをアプリケーション・サーバーにデプロイします。

  • アプリケーション・デプロイメント・プロファイルの作成

  • アプリケーション・サーバーへのアプリケーションのデプロイ

これらの手順の詳細は、第41.7.1項「Oracle JDeveloperでの単一のSOAコンポジットのデプロイ」を参照してください。

44.6.2 Multivalueアプリケーションの実行方法と監視方法

デプロイしたMultivalueアプリケーションは、入力XMLファイルであるsampleinput.xmlを入力フォルダにコピーすることで実行できます。このファイルはsamplesフォルダにあります。正常終了した場合、multivalue_1.xmlという名前のファイルが、指定された出力ディレクトリに作成されます。

実行中のインスタンスの監視には、次のURLにあるOracle Enterprise Manager Fusion Middleware Controlコンソールを使用できます。

http://hostname:port/em

ここで、hostnameは、Oracle SOA Suiteインフラストラクチャをインストールしたホストです。

Oracle Enterprise Manager Fusion Middleware ControlコンソールでMultivalueをクリックすると、プロジェクト・ダッシュボードが表示されます。

詳細な実行証跡を表示するには、インスタンス列のインスタンスIDをクリックします。「フローのトレース」ページが表示されます。