ヘッダーをスキップ
Oracle Fusion Middleware Oracle SOA Suite開発者ガイド
11g リリース1(11.1.1)
B56238-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

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

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

項目は次のとおりです。

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

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

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

CityCode CityName

BELG_MN_STLouis

BelgradeStLouis

BELG_NC

BelgradeNorthCarolina

BO

Boston

NP

Northport

KN_USA

KensingtonUSA

KN_CAN

KensingtonCanada


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

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


注意:

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

46.1.1 ドメイン値マップ機能

ドメイン値マップ機能は、次の機能で構成されています。

46.1.1.1 修飾子サポート

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

表46-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


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

表46-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


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

46.1.1.2 修飾子の順序サポート

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

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


State=Arkansas, Country=Canada, CityCode=KN_USA

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

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

図46-1の説明は次にあります。
「図46-1 階層ルックアップの例」の説明

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

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

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

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

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

STATE COUNTRY ShortValue ルックアップ結果

Arkansas

CANADA|" "

KN_USA

一致なし

" "

CANADA

KN_USA

一致なし

" "

" "

KN_USA

Kensington


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

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

表46-5 一対多マッピング・サポート

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

GoldCustomerPaymentTerm

10

20

30

SilverCustomerPaymentTerm

5

20

30

RegularPaymentTerm

2

20

30


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

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

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

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

    図46-2の説明は次にあります。
    「図46-2 移入後の「ドメイン値マップ(DVM)・ファイルの作成」ダイアログ」の説明

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

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

    図46-3 ドメイン値マップ・エディタ

    図46-3の説明は次にあります。
    「図46-3 ドメイン値マップ・エディタ」の説明

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

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

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

図46-4の説明は次にあります。
「図46-4 「アプリケーション・ナビゲータ」のドメイン値マップ・ファイル」の説明

すべての.dvmファイルは、次のスキーマ定義(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>

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

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

46.3.1 ドメイン値マップへの列の追加

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

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

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

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

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

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

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

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

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

46.3.2 ドメイン値マップへの行の追加

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

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

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

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

46.4 ドメイン値マップ関数の使用

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

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

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

46.4.1.1 dvm:lookupValue

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

  • 使用方法1

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

    例:

    dvm:lookupValue('cityMap.dvm','CityCodes','BO', 'CityNames','CouldNotBeFound')
    
  • 使用方法2

    
    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
    
    

    例:

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

引数

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

  • SourceColumnName: ソース列名です。

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

  • TargetColumnName: ターゲット列名です。

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

  • QualifierSourceColumn: 修飾子列の名前です。

  • QualifierSourceValue: 修飾子の値です。

46.4.1.2 dvm:lookupValue1M

dvm:lookupValue1M関数では、ソース列の値がソース値と等しいドメイン値マップの複数のターゲット列の値を格納する、XMLドキュメント・フラグメントが返されます。


dvm:lookupValue1M(dvmMetadataURI as string, SourceColumnName as string,

 SourceValue as string,(TargetColumnName as string)?)as nodeset

引数

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

  • SourceColumnName: ソース列名です。

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

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

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

結果は次のとおりです。

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

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

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

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

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

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

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

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

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

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

    図46-5の説明は次にあります。
    「図46-5 「コンポーネント・パレット」のドメイン値マップ関数」の説明

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

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

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

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

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

    図46-6の説明は次にあります。
    「図46-6 「関数の編集 – lookupValue1M」ダイアログ」の説明

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

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

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

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

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

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

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

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

    図46-7の説明は次にあります。
    「図46-7 移入後の「関数の編集 – lookupValue1M」ダイアログ」の説明

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

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

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

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

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

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

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

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

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

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

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

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

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

図46-8の説明は次にあります。
「図46-8 「式ビルダー」ダイアログのドメイン値マップ関数」の説明

46.4.4 実行時の処理内容

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

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

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

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

  2. ReadOrdersアダプタ・サービスがファイル・データをProcessOrdersメディエータに送信します。

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

  4. ProcessOrdersメディエータは、外部参照のWriteOrdersにメッセージを送信します。

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

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

http://www.oracle.com/technology/sample_code/products/mediator

46.5.1 HierarchicalValueユースケースの作成

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

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

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

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

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

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

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

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

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

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

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

    SOAプロジェクト用のSOA設定の構成画面が表示されます。

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

    Oracle JDeveloperの「アプリケーション・ナビゲータ」には新規のアプリケーションやプロジェクトが移入され、「設計」タブには空白のパレットがあります。

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

46.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. ドメイン値マップ表に新たに追加した行に、次の情報を入力します。

    Siebel Common TradingPartner StandardCode
    EC Each
    OAG
    E-RN Each A.C.Networks RN
    EO Each ABC Inc RN

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

    図46-9 UnitsOfMeasureのドメイン値マップ

    図46-9の説明は次にあります。
    「図46-9 UnitsOfMeasureのドメイン値マップ」の説明

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

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

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


注意:

Oracle Mediatorは、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. 「ファイル」メニューから「すべて保存」をクリックします。

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

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

    図46-10の説明は次にあります。
    「図46-10 SOAコンポジット・エディタのReadOrdersサービス」の説明

46.5.1.4 タスク4: ProcessOrdersメディエータ・コンポーネントの作成

ProcessOrdersという名前のメディエータを作成する手順は、次のとおりです。

  1. メディエータを「コンポーネント・パレット」から「コンポーネント」設計領域にドラッグ・アンド・ドロップします。

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

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

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

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

    ProcessOrdersという名前のメディエータが作成されます。

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

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

    図46-11 ReadOrdersサービスからProcessOrdersメディエータへの接続

    図46-11の説明は次にあります。
    「図46-11 ReadOrdersサービスからProcessOrdersメディエータへの接続」の説明

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

46.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. 「終了」をクリックします。

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

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

    図46-12の説明は次にあります。
    「図46-12 SOAコンポジット・エディタのWriteCommonOrder参照」の説明

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

46.5.1.6 タスク6: ルーティング・ルールの指定

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

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

  1. 図46-13に示すように、「ProcessOrders」メディエータを「WriteCommonOrder」参照に接続します。

    図46-13 ProcessOrdersメディエータからWriteCommonOrder参照への接続

    図46-13の説明は次にあります。
    「図46-13 ProcessOrdersメディエータからWriteCommonOrder参照への接続」の説明

  2. 「ProcessOrders」メディエータをダブルクリックします。

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

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

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

    「listOfOrder_To_listOfOrder.xsl」タブが表示されます。

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

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

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

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

    図46-14に示すように、listOfOrder_To_listOfOrder.xslタブが表示されます。

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

    図46-14の説明は次にあります。
    「図46-14 imp1:listOfOrderからimp1:listOfOrderへのトランスフォーメーション」の説明

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

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

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

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

    図46-15の説明は次にあります。
    「図46-15 imp1:listOfOrderからimp1:listOfOrder.xslへのlookupValue関数の追加」の説明

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

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

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

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

  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と入力します。

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

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

    図46-16の説明は次にあります。
    「図46-16 「関数の編集 - lookupValue関数」ダイアログ: 階層ルックアップ・ユースケース」の説明

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

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

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

    図46-17の説明は次にあります。
    「図46-17 imp1:listOfOrderからimp1:listOfOrderへのトランスフォーメーションの完了」の説明

  29. 「ファイル」メニューから「すべて保存」をクリックして、「listOfOrder_To_listOfOrder.xsl」タブを閉じます。

46.5.1.7 タスク7: Oracle Application Server接続の構成

SOAコンポジット・アプリケーションをデプロイするには、Oracle Application Server接続が必要です。 Oracle Application Server接続の作成の詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。

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

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

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

  • アプリケーションのOracle Application Serverへのデプロイ

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

46.5.2 HierarchicalValueアプリケーションの実行と監視

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

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


http://hostname:port/em

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

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

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

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

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

  2. readFileアダプタ・サービスがファイル・データをLookupMultiplevaluesMediatorメディエータに送信します。

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

  4. LookupMultiplevaluesMediatorメディエータは、外部参照のwriteFileにメッセージを送信します。

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

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

http://www.oracle.com/technology/sample_code/products/mediator

46.6.1 MultiValueユースケースの作成

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

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

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

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

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

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

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

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

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

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

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

    SOA設定の構成画面が表示されます。

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

    Oracle JDeveloperの「アプリケーション・ナビゲータ」には新規のアプリケーションやプロジェクトが移入され、「設計」タブには空白のパレットがあります。

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

46.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. ドメイン値マップ表に新たに追加した行に、次の情報を入力します。

    Longname Shortname Language Capital
    Karnataka KA Kannada Bangalore
    Tamilnadu TN Tamil Chennai
    Andhrapradesh AP Telugu Hyderbad
    Kerala KL Malayalam Trivandram

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

    図46-18 Multivalueのドメイン値マップ

    図46-18の説明は次にあります。
    「図46-18 Multivalueのドメイン値マップ」の説明

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

46.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. 「ファイル」メニューから「すべて保存」をクリックします。

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

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

    図46-19の説明は次にあります。
    「図46-19 SOAコンポジット・エディタのreadFileサービス」の説明

46.6.1.4 タスク4: LookupMultiplevaluesMediatorメディエータ・コンポーネントの作成

LookupMultiplevaluesMediatorという名前のメディエータを作成する手順は、次のとおりです。

  1. メディエータを「コンポーネント・パレット」から「コンポーネント」設計領域にドラッグ・アンド・ドロップします。

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

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

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

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

    LookupMultiplevaluesMediatorという名前のメディエータが作成されます。

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

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

    図46-20 readFileサービスからLookupMultiplevaluesMediatorメディエータへの接続

    図46-20の説明は次にあります。
    「図46-20 readFileサービスからLookupMultiplevaluesMediatorメディエータへの接続」の説明

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

46.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. 「終了」をクリックします。

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

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

    図46-21の説明は次にあります。
    「図46-21 SOAコンポジット・エディタのwriteFile参照」の説明

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

46.6.1.6 タスク6: ルーティング・ルールの指定

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

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

  1. 図46-22に示すように、「LookupMultiplevaluesMediator」メディエータを「writeFile」参照に接続します。

    図46-22 LookupMultiplevaluesMediatorメディエータからwriteFile参照への接続

    図46-22の説明は次にあります。
    「図46-22 LookupMultiplevaluesMediatorメディエータからwriteFile参照への接続」の説明

  2. 「LookupMultiplevaluesMediator」メディエータをダブルクリックします。

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

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

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

    「Input_To_Output_with_multiple_values_lookup.xsl」タブが表示されます。

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

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

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

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

    図46-23に示すように、「Input_To_Output_with_multiple_values_lookup.xsl」タブが表示されます。

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

    図46-23の説明は次にあります。
    「図46-23 imp1:Root-Elementからns2:Root-Elementへのトランスフォーメーション」の説明

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

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

  10. 図46-24に示すように、lookupValue1Mを中央のスイムレーンにドラッグ・アンド・ドロップします。

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

    図46-24の説明は次にあります。
    「図46-24 imp1:Root-Elementからns2:Root-ElementへのlookupValue関数の追加」の説明

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

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

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

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

  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"と入力します。

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

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

    図46-25の説明は次にあります。
    「図46-25 「関数の編集 - lookupValue関数」ダイアログ: 複数の値ルックアップ・ユースケース」の説明

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

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

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

    図46-26の説明は次にあります。
    「図46-26 imp1:Root-Elementからns2:Root-Elementへのトランスフォーメーションの完了」の説明

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

46.6.1.7 タスク7: Oracle Application Server接続の構成

SOAコンポジット・アプリケーションをデプロイするには、Oracle Application Server接続が必要です。 Oracle Application Server接続の作成の詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。

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

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

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

  • アプリケーションのOracle Application Serverへのデプロイ

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

46.6.2 Multivalueアプリケーションの実行と監視

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

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


http://hostname:port/em

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

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

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