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

前
 
次
 

49 相互参照の使用

この章では、Oracle SOA Suiteの相互参照機能を使用して、別のアプリケーションで作成された同等のエンティティの識別子を関連付ける方法を説明します。これには相互参照表のエントリの移入、表示および保守に使用できるXRef関数が含まれます。

この章には次の項が含まれます:

49.1 相互参照の概要

相互参照を使用すると、別のアプリケーションで作成された同等のエンティティの値を動的にマップできます。


注意:

相互参照機能ではアプリケーション間の値を動的に統合できるのに対し、ドメイン値マップでは設計時に値を指定して実行時に値を編集できます。ドメイン値マップの詳細は、第47章「ドメイン値マップの使用」および第48章「ドメイン値マップでのOracle SOAコンポーザの使用」を参照してください。


あるアプリケーションでオブジェクトを作成または更新した場合は、その変更内容を別のアプリケーションにも伝播させる必要があります。たとえば、SAPアプリケーションで新規顧客が作成された場合、同じ顧客に関するエントリをOracle E-Business Suiteアプリケーション(EBS)でも作成する場合があります。ただし、統合対象の各アプリケーションでは、同じ情報の表現に異なるエンティティを使用している可能性があります。たとえば、SAPアプリケーションでの新規顧客の場合、CustomerデータベースにはSAP_001などの一意IDとともに新規の1行が挿入されます。この情報がOracle E-Business SuiteアプリケーションとSiebelアプリケーションに伝播するときには、EBS_1001SBL001などの異なるIDとともに新規の1行が挿入される必要があります。このような場合、異なるアプリケーションで同一エンティティを参照するIDとして解釈できるように、各IDを相互にマップするなんらかの機能が必要になります。相互参照を使用すると、このマッピングを実行できます。

49.2 相互参照表の概要

相互参照は表形式で保存されます。表49-1に、様々なアプリケーションの顧客IDに関する情報を含む相互参照表を示します。

表49-1 相互参照表サンプル

SAP EBS SBL

SAP_001

EBS_1001

SBL001

SAP_002

EBS_1002

SBL002


あるアプリケーションで顧客情報が更新され、変更内容を他のアプリケーションに伝播させる必要がある場合にも、IDマッピングが必要になります。異なるIDを統合するには、相互参照表の全IDにマップする共通値統合パターンを使用する方法があります。たとえば、表49-1の相互参照表に、さらにCommonという1列を追加できます。相互参照表を更新すると、表49-2のように表示されます。

表49-2 Common列が追加された相互参照表

SAP EBS SBL Common

SAP_001

EBS_1001

SBL001

CM001

SAP_002

EBS_1002

SBL002

CM002


図49-1に、共通値統合パターンを使用して様々なアプリケーションのIDをマップする方法を示します。

図49-1 共通値統合パターンの例

図49-1の説明が続きます
「図49-1 共通値統合パターンの例」の説明

相互参照表は、メタデータと実際のデータという2つの部分で構成されています。メタデータはOracle JDeveloperで作成された.xrefファイルとして保存され、XMLファイルとしてメタデータ・サービス(MDS)リポジトリに格納されています。実際のデータは、デフォルトでSOAインフラストラクチャ・データベース・スキーマにあるデータベースのXREF_DATA表に格納されます。相互参照エンティティごとにカスタム・データベース表を生成することもできます。データベース表は、相互参照エンティティのメタデータによって異なります。

次の2つの相互参照エンティティを考えてみます。

表49-3 ORDER表

列名 SIEBEL COMMON EBS

Column Value

SBL_101

COM_100

EBS_002

Column Value


COM_110

EBS_012


表49-4 CUSTOMER表

列名 EBS COMMON PORTAL

Column Value

EBS_201

COM_200

P2002


1つの汎用表にすべてのランタイム・データを保存するように選択すると、表49-5に示すように、データはXREF_DATAコード表に保存されます。

表49-5 XREF_DATA表

XREF_TABLE_NAME XREF_COLUMN_NAME ROW_NUMBER VALUE IS_DELETED

ORDER

SIEBEL

100012345

SBL_101

N

ORDER

COMMON

100012345

COM_100

N

ORDER

EBS

100012345

EBS_002

N

ORDER

COMMON

110012345

COM_110

N

ORDER

EBS

110012345

EBS_012

N

CUSTOMER

EBS

200212345

EBS_201

N

CUSTOMER

COMMON

200212345

COM_200

N

CUSTOMER

PORTAL

200212345

P2002

N


このアプローチには、次のメリットがあります。

一方、このアプローチには次のデメリットがあります。

これらの問題を解決するために、相互参照エンティティごとにカスタム・データベース表を生成できます。カスタム・データベース表は、相互参照エンティティのメタデータによって異なります。たとえば、XREF_ORDER表およびXREF_CUSTOMER表には、表49-6および表49-7に示すようなカスタム・データベース表を生成できます。

表49-6 XREF_ORDER表

ROW_ID SIEBEL COMMON EBS

100012345

SBL_101

COM_100

EBS_002

110012345


COM_110

EBS_012


表49-7 XREF_CUSTOMER表

ROW_ID EBS COMMON PORTAL

200212345

EBS_201

COM_200

P2002


このアプローチでは、データ定義言語(DDL)スクリプトを実行してカスタム・データベース表を生成する必要があります。カスタム・データベース表の詳細は、第49.4.3項「カスタム・データベース表の作成方法」を参照してください。

49.3 相互参照に対するOracle Data Integratorのサポート

Oracle Data Integrator(ODI)はE-LT(抽出、ロード、変換)モデルを使用してデータ統合を実現します。ODIを使用して、相互参照のニーズに役立てることができます。ODIには、次の機能を実行するSOA相互参照を処理するための3つのナレッジ・モジュールが用意されています。相互参照表の移入、ターゲット表の共通IDの作成、相互参照表への共通IDおよびソース主キーのプッシュ、およびソース主キーと共通ID間の相互参照を作成する一意の行番号の作成とプッシュ。モジュールを使用して、複数のソース表からターゲット表へのロードと、ソースの1つとターゲットとの間の相互参照の処理の両方を行う統合インタフェースを作成できます。

ODIおよび相互参照の詳細は、『Oracle Fusion Middleware Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』のOracle SOA Suiteの相互参照に関する項を参照してください。

49.4 相互参照表の作成および変更

相互参照表はSOAコンポジット・アプリケーションで作成し、トランスフォーメーション中にBPELプロセス・サービス・コンポーネントまたはOracle Mediatorサービス・コンポーネントで使用できます。

49.4.1 相互参照メタデータの作成方法

相互参照メタデータを作成する手順は、次のとおりです。

  1. Oracle JDeveloperで、相互参照を作成するSOAプロジェクトを選択します。

  2. プロジェクトを右クリックし、「新規」を選択します。

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

  3. 「カテゴリ」セクションから「SOA層」を選択し、次に「トランスフォーメーション」を選択します。

  4. 「項目」セクションから、「相互参照(XREF)」を選択します。

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

    「相互参照(XREF)の作成」ダイアログが表示されます。

  6. 「ファイル名」フィールドに、相互参照ファイルの名前を指定します。たとえば、Customerを指定します。

    相互参照名は相互参照表を一意に識別するために使用します。相互参照リポジトリで2つの相互参照表に同じ名前を指定することはできません。相互参照ファイル名は、相互参照表の名前に拡張子.xrefが付いたものとなります。

  7. 「説明」フィールドに、相互参照の説明を入力します。例:

    Cross reference of Customer identifiers.
    
  8. 「エンド・システム」フィールドで、エンド・システム名を入力します。

    エンド・システムを相互参照表の相互参照列にマップします。たとえば、最初のエンド・システム名をSAP、2番目のエンド・システム名をEBSに変更できます。各エンド・システム名は相互参照内で一意であることが必要です。

    「相互参照(XREF)の作成」ダイアログのサンプルは、図49-2に表示されています。

    図49-2 「相互参照(XREF)の作成」ダイアログ

    図49-2の説明が続きます
    「図49-2 「相互参照(XREF)の作成」ダイアログ」の説明

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

    図49-3に示すように、相互参照エディタが表示されます。このエディタを使用して相互参照を変更できます。

    図49-3 相互参照エディタ

    図49-3の説明が続きます
    「図49-3 相互参照エディタ」の説明

49.4.2 相互参照作成時の処理内容

拡張子.xrefの付いたファイルが作成され、「アプリケーション・ナビゲータ」に表示されます。すべての.xrefファイルは、例49-1に示すスキーマ定義(XSD)ファイルに基づいています。

例49-1 相互参照XSDファイル

<?xml version="1.0" encoding="UTF-8" ?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
        targetNamespace="http://xmlns.oracle.com/xref"
        xmlns:tns="http://xmlns.oracle.com/xref" elementFormDefault="qualified">
  <element name="xref" type="tns:xrefType"/>
  <complexType name="xrefType">
    <sequence>
      <element name="table">
        <complexType>
          <sequence>
            <element name="description" type="string" minOccurs="0"
                     maxOccurs="1"/>
            <element name="columns" type="tns:columnsType" minOccurs="0"
                     maxOccurs="1"/>
            <element name="rows" type="tns:rowsType" maxOccurs="1"
                     minOccurs="0"/>
          </sequence>
          <attribute name="name" type="string" use="required"/>
        </complexType>
      </element>
    </sequence>
  </complexType>
  
  <complexType name="columnsType">
    <sequence>
      <element name="column" minOccurs="1" maxOccurs="unbounded">
        <complexType>
          <attribute name="name" type="string" use="required"/>
        </complexType>
      </element>
    </sequence>
  </complexType>
  
  <complexType name="rowsType">
    <sequence>
      <element name="row" minOccurs="1" maxOccurs="unbounded">
        <complexType>
          <sequence>
            <element name="cell" minOccurs="1" maxOccurs="unbounded">
              <complexType>
                <attribute name="colName" type="string" use="required"/>
              </complexType>
            </element>
          </sequence>
        </complexType>
      </element>
    </sequence>
  </complexType>
</schema>

49.4.3 カスタム・データベース表の作成方法

前述されているように、すべてのランタイム・データはデフォルトでXREF_DATA表に格納されます。カスタム・データベース表を作成する場合は、次の手順を実行します。

カスタム・データベース表を作成する手順は、次のとおりです。

  1. 相互参照エディタの「最適化」リストで「はい」を選択します。

    図49-4に示すように、生成するカスタム・データベース表の名前が「表名」フィールドに表示されます。

    図49-4 カスタム・データベース表の生成

    カスタム・データベース表の生成
    「図49-4 カスタム・データベース表の生成」の説明

    「表名」フィールドは編集可能で、カスタム表の名前を変更できます。カスタム・データベース表の名前には、xref_の接頭辞を付けてください。表名にxref_接頭辞を付けないと、表を生成する際に次のエラー・メッセージが表示されます。

    Table name should begin with 'xref_' and cannot be 'xref_data' or 
    'xref_deleted_data' which are reserved table names for XREF runtime.
    
  2. 「表DDLの生成」をクリックします。「XREFの最適化」ダイアログが表示されます。

  3. 同じ名前の表がすでに存在している場合、その表と関連する索引を削除するには、「削除DDLの生成」チェック・ボックスを選択します。このオプションを選択して「実行」をクリックすると、「削除DDLの実行の警告」ダイアログに、次のメッセージが表示されます。

    Running the Drop DDL will remove the table and indexes, do you want to
    continue?
    
  4. 「実行」をクリックします。「表DDLの実行」ダイアログが表示されます。

  5. 「接続」リストから、使用するデータベース接続を選択します。

    使用可能な接続がない場合は、「新規データベース接続を作成します。」をクリックし、図49-5に示すように、「データベース接続の作成」ダイアログを開きます。既存の接続を編集する場合は、その接続を選択して「選択したデータベース接続の編集」をクリックし、「データベース接続の編集」ダイアログを開きます。

    図49-5 「データベース接続の作成」ダイアログ

    「データベース接続の作成」ダイアログ
    「図49-5 「データベース接続の作成」ダイアログ」の説明

  6. 必要な詳細をすべて入力し、「OK」をクリックします。「表DDLの実行」ダイアログの「接続」リストに値が移入されます。


    注意:

    データベース表は、データベースのsoainfraスキーマに作成します。


  7. 「表DDLの実行」ダイアログで「OK」をクリックし、DDLスクリプトを実行します。

    「表DDL実行結果」ダイアログに、DDLスクリプトの実行ステータスが表示されます。

カスタム・データベース表では、modeおよびdbtableの2つの追加の属性が、第49.4.2項「相互参照作成時の処理内容」に記載されているスキーマ定義に追加されます。これらは、次のように記述されてtable要素に追加されます。

 <attribute name="mode" type="string" default="generic" />
 <attribute name="dbtable" type="string" default="xref_data"/>

49.4.4 相互参照表へのエンド・システムの追加方法

相互参照表にエンド・システムを追加する手順は、次のとおりです。

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

    新しい行が追加されます。

  2. 新しく追加した行をダブルクリックします。

  3. エンド・システム名を入力します。たとえば、SBLと入力します。

49.5 相互参照表の移入

Oracle JDeveloperのSOAコンポジット・アプリケーションで相互参照表を作成し、これを使用して実行時に列の値を参照できます。ただし、相互参照を使用して特定の値を参照するには、実行時に相互参照を移入する必要があります。相互参照表は、相互参照XPath関数を使用して移入できます。XPath関数を使用すると、相互参照列の移入、参照の実行および列の値の削除ができます。これらのXPath関数を「式ビルダー」ダイアログで使用して式を作成するか、またはXSLTマッパーで使用してトランスフォーメーションを作成できます。たとえば、xref:populateXRefRow関数を使用して1つの値を相互参照列に移入するか、またはxref:populateXRefRow1M関数を使用して複数の値を相互参照列に移入できます。

「式ビルダー」ダイアログには、BPELプロセス・サービス・コンポーネントまたはOracle Mediatorサービス・コンポーネントのassignアクティビティ、XSLトランスフォーメーションまたはフィルタ機能からアクセスできます。図49-6に、「式ビルダー」ダイアログで相互参照関数を選択する様子を示します。

図49-6 「式ビルダー」ダイアログに相互参照関数が表示されている状態

図49-6の説明が続きます
「図49-6 「式ビルダー」ダイアログに相互参照関数が表示されている状態」の説明

XSLTマッパーは、XSLファイルを作成してXMLスキーマ間でデータを変換するときに表示されます。図49-7に、XSLTマッパーで相互参照関数を選択する様子を示します。

図49-7 XSLTマッパー・ダイアログに相互参照関数が表示されている状態

図49-7の説明が続きます
「図49-7 XSLTマッパー・ダイアログに相互参照関数が表示されている状態」の説明

相互参照表を使用するには、実行時に相互参照表を移入する必要があります。データは、デフォルトでSOAインフラストラクチャ・データベース・スキーマにあるXREF_DATA表に格納されます。xref:populateXRefRow関数を使用して1つの値を相互参照列に移入するか、またはxref:populateXRefRow1M関数を使用して複数の値を相互参照列に移入できます。


注意:

次の方法でデータ・ソースを構成することで、データを異なるデータベース・スキーマに格納することもできます。

  • データ・ソースのJNDI名をjdbc/xrefと指定します。

  • ORACLE_HOME/rcu/integration/soainfra/sql/xref/createschema_xref_oracle.sqlファイルをロードして、このデータ・ソースのXREF_DATA表を作成します。


49.5.1 xref:populateXRefRow関数

xref:populateXRefRow関数では、1つの値が相互参照列に移入されます。このxref:populateXRefRow関数では、移入対象の相互参照値である文字列値が返されます。たとえば、表49-8に示すOrder表には、EBSCommonおよびSBLという列があり、各列の値はそれぞれE100100およびSBL_001です。

表49-8 列に1つの値がある相互参照表

EBS Common SBL

E100

100

SBL_001



注意:

この関数の使用時に同時性の問題がある場合は、populateLookupXRefRow関数を使用することもできます。populateLookupXRefRow関数は、同時更新が行われ、一意制約の違反が発生する場合にのみ使用する必要があります。この関数については、第49.5.2項「xref:populateLookupXRefRow関数」で説明しています。


例49-2に、xref:populateXRefRow関数の構文を示します。

例49-2 xref:populateXRefRow関数

xref:populateXRefRow(xrefLocation as string, xrefReferenceColumnName as string,
 xrefReferenceValue as string, xrefColumnName as string, xrefValue as string, mode
 as string) as string

パラメータ

  • xrefLocation: 相互参照表URI。

  • xrefReferenceColumnName: 参照列の名前。

  • xrefReferenceValue: 参照列名に対応する値。

  • xrefColumnName: 移入される列の名前。

  • xrefValue: 列に移入される値。

  • mode: xref:populateXRefRow関数の列移入モード。値ADDLINKまたはUPDATEを指定できます。表49-9に、これらのモードを示します。

表49-9 xref:populateXRefRow関数のモード

モード 説明 例外の原因

ADD

参照値と追加対象の値を追加します。

たとえば、次のモードを考えてみます。

xref:populateXRefRow("customers.xref"
,"EBS","EBS100", "Common","CM001",
"ADD")

この場合、ESB参照列に参照値EBS100が、Common列に値CM001が追加されます。

次の理由により、例外が発生する可能性があります。

  • 指定の相互参照表が見つからない場合。

  • 指定の列が見つからない場合。

  • 提供された値が空の場合。

  • 追加される値が、対象表の対象列で一意でない場合。

  • 対象行の列に値が含まれている場合。

  • 参照値が存在する場合。

LINK

既存の参照値に対応する相互参照値を追加します。

たとえば、次のモードを考えてみます。

xref:populateXRefRow("customers.xref"
,"Common","CM001","SBL","SBL_
001","LINK") 

この場合、Common列の値CM001が、SBL列の値SBL_001にリンクされます。

次の理由により、例外が発生する可能性があります。

  • 指定の相互参照表が見つからない場合。

  • 指定の列が見つからない場合。

  • 提供された値が空の場合。

  • 参照値が見つからない場合。

  • リンク対象の値が対象表の対象列に存在する場合。

UPDATE

既存の参照列と値のペアに対応する相互参照値を更新します。

たとえば、次のモードを考えてみます。

xref:populateXRefRow("customers.xref"
,"SBL","SBL_001", "SBL","SBL_
1001","UPDATE")

この場合、SBL列の値SBL_001が値SBL_1001に更新されます。

次の理由により、例外が発生する可能性があります。

  • 指定の相互参照表が見つからない場合。

  • 指定の列が見つからない場合。

  • 提供された値が空の場合。

  • 更新対象の列に複数の値が見つかった場合。

  • 参照値が見つからない場合。

  • 対象行の列に値がない場合。



注意:

modeパラメータ値には大/小文字区別があり、表49-9のように大文字のみで指定する必要があります。


表49-10に、xref:populateXRefRow関数のモードと各モードの例外条件を示します。

表49-10 xref:populateXRefRow関数のモードと結果

モード 参照値 追加される値 結果

ADD

なし

あり

あり

なし

なし

あり

成功

例外

例外

LINK

なし

あり

あり

なし

なし

あり

例外

成功

例外

UPDATE

なし

あり

あり

なし

なし

あり

例外

例外

成功


49.5.2 xref:populateLookupXRefRow関数

xref:populateXRefRow関数と同様に、xref:populateLookupXRefRow関数では相互参照列に単一の値が移入されます。xref:populateXRefRow関数とは異なり、xref:populateLookupXRefRow関数では、同じIDのレコードが同時に追加されたときに一意制約の違反エラーはスローされません。かわりに、ルックアップとして動作してエラーの原因となった既存のソース値を返し、処理フローを停止しません。xref:populateXRefRow関数の使用時に発生する可能性がある同時性の問題を解決するには、この関数を使用します。

xref:populateLookupXRefRow関数は文字列値を返します。この文字列値は、移入される相互参照値か、または一意制約の違反がある場合は、最初にコミットされたスレッドによってすでに移入されている相互参照値になります。たとえば、表49-8に示すXREF_CUSTOMER_DATA表には、EBSCommonおよびSBLという列があります。xref:populateLookupXRefRow関数は、2つのスレッドによって、次の値を使用して並行して起動されます。

  • スレッド1: xref: populateLookupXRefRow ("default/xref/example.xref", "EBS", "EBS100", "Common" "CM001", "ADD")

  • スレッド2: xref: populateLookupXRefRow ("default/xref/example.xref", "EBS", "EBS100", "Common" "CM002", "ADD")

表49-11に示すように表に移入されます。スレッド1が最初にコミットされるため、スレッド2はコール元に「CM001」を返します。

表49-11 xref:populateLookupXRefRowによって移入される相互参照表

EBS Common SBL

EBS100

CM001



表49-3に、xref:populateLookupXRefRow関数の構文を示します。

例49-3 xref:populateLookupXRefRow関数

xref:populateLookupXRefRow(xrefMetadataURI as string, xrefReferenceColumnName as
 string, xrefReferenceValue as string, xrefColumnName as string, xrefValue as
 string, mode as string) as string

パラメータ

  • xrefMetadataURI: 相互参照表URI。

  • xrefReferenceColumnName: 参照列の名前。

  • xrefReferenceValue: 参照列名に対応する値。

  • xrefColumnName: 移入される列の名前。

  • xrefValue: 列に移入される値。

  • mode: xref:populateXRefRow関数の列移入モード。ADDまたはLINKを指定できます。表49-10に、これらのモードと各モードの例外条件を示します。


注意:

modeパラメータ値には大/小文字区別があり、大文字のみで指定する必要があります。


表49-12 xref:populateLookupXRefRow関数のモードと結果

モード 参照値 追加される値 結果

ADD

なし

あり

あり

なし

なし

あり

成功

例外

例外

LINK

なし

あり

あり

なし

なし

あり

例外

成功

例外


使用に関する注意

  • カスタム表の方法を使用する場合は、相互参照表で一意であることが必要な列に対して、主制約を追加する必要があります。表49-11を例として使用すると、SQL文は次のようになります。

    alter table xref_customer_data add constraint xref_vnx_data_pk
     primary key (common, ebs);
    

    最初に主制約列に移入してから、後続のコールで残りの列に移入します。

  • データの非一貫性の問題が隠される可能性があるため、プライマリ・オブジェクトの相互参照を追加するためにこの関数を使用しないでください。主要な依存オブジェクトに対するセカンダリ・オブジェクトにのみこの関数を使用します。たとえば、顧客アカウントを作成する際にアカウントがすでに存在するかどうかを確認するためにこの関数を使用しないでください。これらの顧客アカウントの住所が同期されている場合に使用してください。

49.5.3 xref:populateXRefRow1M関数

あるエンド・システム内の2つの値を、別のシステム内の1つの値に対応付けることができます。このようなシナリオでは、xref:populateXRefRow1M関数を使用して相互参照列に値を移入する必要があります。たとえば、表49-13に示すように、SAP_001およびSAP_0011の値でEBSおよびSBLアプリケーションの1つの値を参照します。SAPなどの列を移入するには、xref:populateXRefRow1M関数を使用できます。

表49-13 列に複数の値がある相互参照表

SAP EBS SBL

SAP_001

SAP_0011

EBS_1001

SBL001

SAP_002

EBS_1002

SBL002


例49-4に、xref:populateXRefRow1M関数の構文を示します。

例49-4 xref:populateXRefRow1M関数

xref:populateXRefRow1M(xrefLocation as string, xrefReferenceColumnName as string,
 xrefReferenceValue as string, xrefColumnName as string, xrefValue as string, mode
 as string) as string

パラメータ

  • xrefLocation: 相互参照URI。

  • xrefReferenceColumnName: 参照列の名前。

  • xrefReferenceValue: 参照列名に対応する値。

  • xrefColumnName: 移入される列の名前。

  • xrefValue: 列に移入される値。

  • mode: xref:populateXRefRow関数の列移入モード。ADDまたはLINKのいずれかの値を指定できます。表49-14に、これらのモードを示します。

表49-14 xref:populateXRefRow1M関数のモード

モード 説明 例外の原因

ADD

参照値と追加対象の値を追加します。

たとえば、次のモードを考えてみます。

xref:populateXRefRow1M("customers.xref","
EBS","EBS_1002", "SAP","SAP_0011","ADD")

この場合、EBS参照列に参照値EBS_1002が、SAP列に値SAP_0011が追加されます。

次の理由により、例外が発生する可能性があります。

  • 指定の相互参照表が見つからない場合。

  • 指定の列が見つからない場合。

  • 提供された値が空の場合。

  • 追加される値が、対象表の対象列で一意でない場合。

  • 参照値が存在する場合。

LINK

既存の参照値に対応する相互参照値を追加します。

たとえば、次のモードを考えてみます。

xref:populateXRefRow1M("customers.xref","
EBS","EBS_1002", "SAP","SAP_002","LINK") 

この場合、SAP列の値SAP_002が、EBS列の値EBS_1002にリンクされます。

次の理由により、例外が発生する可能性があります。

  • 指定の相互参照表が見つからない場合。

  • 指定の列が見つからない場合。

  • 提供された値が空の場合。

  • 参照値が見つからない場合。

  • 追加される値が、対象表の列で一意でない場合。


表49-15に、xref:populateXRefRow1M関数のモードと各モードの例外条件を示します。

表49-15 xref:populateXRefRow1M関数のモードと結果

モード 参照値 追加される値 結果

ADD

なし

あり

あり

なし

なし

あり

成功

例外

例外

LINK

なし

あり

あり

なし

なし

あり

例外

成功

例外


49.5.4 相互参照表の列の移入方法

相互参照表に1列を移入する手順は、次のとおりです。

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

  2. ソース要素をターゲット要素にドラッグ・アンド・ドロップします。

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

  4. 「XREF Functions」を選択します。

  5. ソース・オブジェクトをターゲット・オブジェクトに接続している線に、「populateXRefRow」関数をドラッグ・アンド・ドロップします。

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

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

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

    図49-8 「関数の編集 – populateXRefRow」ダイアログ

    図49-8の説明が続きます
    「図49-8 「関数の編集 – populateXRefRow」ダイアログ」の説明

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

    1. 「xrefLocation」フィールドに、相互参照ファイルのロケーションURIを入力します。

      「xrefLocation」フィールドの右側にある「参照」をクリックして、相互参照ファイルを選択します。「リソース・パレット」を使用して、MDSおよびMDSの共有ロケーションからもすでにデプロイした相互参照を選択できます。

    2. 「referenceColumnName」フィールドに、相互参照列の名前を入力します。

      「referenceColumnName」フィールドの右側にある「参照」をクリックして、以前に選択した相互参照に定義されている列から列名を選択できます。

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

    4. 「columnName」フィールドに、相互参照列の名前を入力します。

      「columnName」フィールドの右側にある「参照」をクリックして、以前に選択した相互参照に定義されている列から列名を選択できます。

    5. 「value」フィールドでは、値を手動で入力するか、[Ctrl]キーを押しながら[Space]キーを押してXPathビルディング・アシスタントを起動できます。

    6. 「mode」フィールドに、相互参照表の列を移入する際のモードを入力します。たとえば、ADDと入力します。

      「参照」をクリックしてモードを選択することもできます。モードを選択できる「移入モードの選択」ダイアログが表示されます。

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

    図49-9に、移入後の「関数の編集 – populateXRefRow」ダイアログを示します。

    図49-9 移入後の「関数の編集 – populateXRefRow」ダイアログ

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

49.6 相互参照表の参照

移入後の相互参照表を使用して、値を参照できます。xref:lookupXRefおよびxref:lookupXRef1M関数を使用すると、1つおよび複数の値の相互参照をそれぞれ参照できます。

49.6.1 xref:lookupXRef関数

xref:lookupXRef関数を使用すると、参照列の値に対応する値を相互参照列で参照できます。たとえば、次の関数では、表49-2で説明した相互参照表のCommon列で、SAP列のSAP_001値に対応する値を参照します。

xref:lookupXRef("customers.xref","SAP","SAP_001","Common",true())

例49-5に、xref:lookupXRef関数の構文を示します。

例49-5 xref:lookupXRef関数

xref:lookupXRef(xrefLocation as string, xrefReferenceColumnName as string,
xrefReferenceValue as string, xrefColumnName as string, needAnException as
boolean) as string

パラメータ

  • xrefLocation: 相互参照URI。

  • xrefReferenceColumnName: 参照列の名前。

  • xrefReferenceValue: 参照列名に対応する値。

  • xrefColumnName: 値が参照される列の名前。

  • needAnException: 値がtrueに設定されると、値が見つからない場合に例外がスローされます。そうでない場合は、空の値が返されます。

例外の原因

実行時に、次の理由により例外が発生する可能性があります。

  • 指定した名前の相互参照表が見つからない場合。

  • 指定した列名が見つからない場合。

  • 指定した参照値が空の場合。

  • 複数の値が見つかった場合。

49.6.2 xref:lookupXRef1M関数

xref:lookupXRef1M関数を使用すると、参照列の値に対応する複数の値を相互参照列で参照できます。xref:lookupXRef1M関数では、複数のノードを含んだノードセットが返されます。ノードセット内の各ノードに値が含まれています。

たとえば、次の関数では、表49-13SAP列で、EBS列のEBS_1001値に対応する複数の値を参照します。

xref:lookupXRef1M("customers.xref","EBS","EBS_1001","SAP",true())

例49-6に、xref:lookupXRefRow1M関数の構文を示します。

例49-6 xref:lookupXRefRow1M関数

xref:lookupXRef1M(xrefLocation as String, xrefReferenceColumnName as String,
 xrefReferenceValue as String, xrefColumnName as String, needAnException as
 boolean) as node-set

パラメータ

  • xrefLocation: 相互参照URI。

  • xrefReferenceColumnName: 参照列の名前。

  • xrefReferenceValue: 参照列名に対応する値。

  • xrefColumnName: 値が参照される列の名前。

  • needAnException: 値がtrueに設定されると、参照値が見つからない場合に例外がスローされます。そうでない場合は、空のノードセットが返されます。

xref:lookupXRefRow1M関数の例

表49-16に示すように、SiebelBilling1およびBilling2の3つの列があるOrder表について考えてみます。

表49-16 Order表

Siebel Billing1 Billing2

100

101

102

110


111

112


1対1マッピングの場合、xref:lookupPopulatedColumns("Order","Siebel","100","false")メソッドは、例49-7に示す値を返します。

例49-7 xref:lookupPopulatedColumnsメソッド

<column name="BILLING1">101</column>
<column name="BILLING2">102</column>

この場合は、Billing1Billing2の両方の列が移入されます。

1対多マッピングの場合、xref:lookupPopulatedColumns("Order","Siebel","110","false")メソッドは、例49-8に示す値を返します。

例49-8 xref:lookupPopulatedColumns

<column name="BILLING2">111</column>
<column name="BILLING2">112</column>

この場合、Billing1列は移入されません。

例外の原因

次の理由により、例外が発生する可能性があります。

  • 指定した名前の相互参照表が見つからない場合。

  • 指定した列名が見つからない場合。

  • 指定した参照値が空の場合。

49.6.3 xref:lookupPopulatedColumns関数

xref:lookupPopulatedColumns関数を使用すると、特定の相互参照表、相互参照列および値に対して移入されたすべての列を参照できます。xref:lookupPopulatedColumns関数では、各ノードに列名と対応する値が含まれたノードセットが返されます。

例49-9に、xref:LookupPopulatedColumns関数の構文を示します。

例49-9 xref:LookupPopulatedColumns関数

xref:LookupPopulatedColumns(xrefTableName as String,xrefColumnName as
 String,xrefValue as String,needAnException as boolean)as node-set

パラメータ

  • xrefTableName: 参照表の名前。

  • xrefColumnName: 参照列の名前。

  • xrefValue: 参照列名に対応する値。

  • needAnException: 値がtrueに設定されると、参照列に値が見つからない場合に例外がスローされます。そうでない場合は、空のノードセットが返されます。

例外の原因

次の理由により、例外が発生する可能性があります。

  • 指定した名前の相互参照表が見つからない場合。

  • 指定した列名が見つからない場合。

  • 指定した参照値が空の場合。

49.6.4 相互参照表の値の参照方法

相互参照表列を参照する手順は、次のとおりです。

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

  2. ソース要素をターゲット要素にドラッグ・アンド・ドロップします。

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

  4. 「XREF Functions」を選択します。

  5. ソース・オブジェクトをターゲット・オブジェクトに接続している線に、「lookupXRef」関数をドラッグ・アンド・ドロップします。

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

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

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

    図49-10 「関数の編集 – lookupXRef」ダイアログ

    図49-10の説明が続きます
    「図49-10 「関数の編集 – lookupXRef」ダイアログ」の説明

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

    1. 「xrefLocation」フィールドに、相互参照ファイルのロケーションURIを入力します。

      「xrefLocation」フィールドの右側にある「参照」をクリックして、相互参照ファイルを選択します。「リソース・パレット」を使用して、MDSおよびMDSの共有ロケーションからもすでにデプロイされた相互参照を選択できます。

    2. 「referenceColumnName」フィールドに、相互参照列の名前を入力します。

      「referenceColumnName」フィールドの右側にある「参照」をクリックして、以前に選択した相互参照に定義されている列から列名を選択できます。

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

    4. 「columnName」フィールドに、相互参照列の名前を入力します。

      「columnName」フィールドの右側にある「参照」をクリックして、以前に選択した相互参照に定義されている列から列名を選択できます。

    5. 「needException」フィールドの右側にある「参照」をクリックします。「例外が必要」ダイアログが表示されます。値が見つからない場合に例外が発生するように指定するには、「はい」を選択します。それ以外の場合は「いいえ」を選択します。

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

    図49-11に、移入後の「関数の編集 – lookupXRef」ダイアログを示します。

    図49-11 移入後の「関数の編集 – lookupXRef」ダイアログ

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

49.7 相互参照表の値の削除

xref:markForDelete関数を使用すると、相互参照表の値を削除できます。列の値には、削除済のマークが付きます。この関数は、削除に成功した場合はtrueを返します。それ以外の場合はfalseを返します。

削除マークが付いている列値は、値が存在しないものとして処理されます。したがって、xref:populateXRefRow関数をADDモードで使用して同じ列を移入できます。


注意:

削除マークが付いた列値をxref:populateXRefRow関数のLINKモードで参照値として使用すると、エラーが発生します。


相互参照表行には最低2つのマッピングが必要です。1行に存在するマッピングが2つのみの場合、一方の値に削除マークを付けると、他方の列の値も削除されます。

例49-10に、xref:markForDelete関数の構文を示します。

例49-10 xref:markForDelete関数

xref:markForDelete(xrefTableName as string, xrefColumnName as string,
xrefValueToDelete as string) return as boolean

パラメータ

例外の原因

次の理由により、例外が発生する可能性があります。

49.7.1 相互参照表の値の削除方法

相互参照表の値を削除する手順は、次のとおりです。

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

  2. ソース要素をターゲット要素にドラッグ・アンド・ドロップします。

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

  4. 「XREF Functions」を選択します。

  5. ソース・オブジェクトをターゲット・オブジェクトに接続している線に、「markForDelete」関数をドラッグ・アンド・ドロップします。

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

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

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

    図49-12 「関数の編集 – markForDelete」ダイアログ

    図49-12の説明が続きます
    「図49-12 「関数の編集 – markForDelete」ダイアログ」の説明

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

    1. 「xrefLocation」フィールドに、相互参照ファイルのロケーションURIを入力します。

      「xrefLocation」フィールドの右側にある「検索」アイコンをクリックして、相互参照ファイルを選択します。「リソース・パレット」を使用して、MDSおよびMDSの共有ロケーションからもすでにデプロイされた相互参照を選択できます。

    2. 「columnName」フィールドに、相互参照表列の名前を入力します。

      「columnName」フィールドの右側にある「検索」アイコンをクリックして、以前に選択した相互参照に定義されている列から列名を選択できます。

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

    図49-13に、移入後の「関数の編集 – markForDelete」ダイアログを示します。

    図49-13 移入後の「関数の編集 – markForDelete」ダイアログ

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

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

49.8 相互参照ユースケースの作成および実行

この相互参照ユースケースは、Oracle EBS、SAPおよびSiebelインスタンス間の統合シナリオを実装します。このユースケースでは、SAP_01表で挿入、更新または削除操作を実行すると、EBSおよびSBL表で対応するデータが挿入または更新されます。図49-14に、このユースケースの概要を示します。

図49-14 SOAコンポジット・エディタのXrefCustAppユースケース

図49-14の説明が続きます
「図49-14 SOAコンポジット・エディタのXrefCustAppユースケース」の説明

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

49.8.1 ユース-ケースの作成方法

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

49.8.1.1 タスク1: Oracle Databaseおよびデータベース・アダプタの構成方法

Oracle Databaseおよびデータベース・アダプタを構成する手順は、次のとおりです。

  1. このユースケースには、SCOTTデータベース・アカウントとパスワードTIGERが必要です。SCOTTアカウントのロックが解除されている必要があります。

    SYSDBAでログインしてから、XrefOrderApp1M/sqlディレクトリにあるsetup_user.sqlスクリプトを実行してアカウントのロックを解除できます。

  2. XrefOrderApp1M/sqlディレクトリにあるcreate_schema.sqlスクリプトを実行して、このユースケースに必要な表を作成します。

  3. XrefOrderApp1M/sqlディレクトリにあるcreate_app_procedure.sqlスクリプトを実行して、この統合に組み込む様々なアプリケーションをシミュレートするプロシージャを作成します。

  4. OH/rcu/integration/soainfra/sql/xref/ディレクトリにあるcreateschema_xref_oracle.sqlスクリプトを実行し、ランタイムの相互参照データを格納する相互参照表を作成します。

  5. ra.xmlファイルとweblogic-ra.xmlファイルを、$BEAHOME/META-INFから、使用しているコンピュータで新規作成したMETA-INFディレクトリにコピーします。

  6. 次のとおり、$BEAHOME/META-INFディレクトリにあるweblogic-ra.xmlファイルを編集します。

    • 次のように、プロパティをxADataSourceNameに変更します。

      <property>
       <name>xADataSourceName</name>
       <value>jdbc/DBConnection1</value>
      </property>
      
    • jndi-nameを次のように変更します。

      <jndi-name> eis/DB/DBConnection1</jndi-name>
      

    このサンプルではeis/DB/DBConnection1を使用して新規メッセージのSAP表をポーリングし、Oracle EBSおよびSiebelインスタンスをシミュレートするプロシージャに接続します。

  7. ra.xmlファイルとweblogic-ra.xmlファイルをRARファイルとしてパッケージ化し、Oracle WebLogic Server管理コンソールを使用してそのRARファイルをデプロイします。

  8. Oracle WebLogic Server管理コンソールを使用して、次の値を持つデータ・ソースを作成します。

    • jndi-name=jdbc/DBConnection1

    • user=scott

    • password=tiger

    • url=jdbc:oracle:thin:@host:port:service

    • connection-factory factory-class=oracle.jdbc.pool.OracleDataSource

  9. Oracle WebLogic Server管理コンソールを使用して、次の値を持つデータ・ソースを作成します。

    • jndi-name=jdbc/xref

    • user=scott

    • password=tiger

    • url=jdbc:oracle:thin:@host:port:service

    • connection-factory factory-class=oracle.jdbc.pool.OracleDataSource

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

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

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

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

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

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

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

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

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

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

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

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

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

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

49.8.1.3 タスク3: 相互参照の作成方法

ユースケース用のアプリケーションおよびプロジェクトを作成した後は、相互参照表を作成する必要があります。

相互参照表を作成する手順は、次のとおりです。

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

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

  3. 「項目」リストで「相互参照(XREF)」を選択し、「OK」をクリックします。

    「相互参照(XREF)の作成」ダイアログが表示されます。

  4. 「ファイル名」フィールドで、customer.xrefと入力します。

  5. 「エンド・システム」フィールドで、SAP_01およびEBS_i76と入力します。

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

    相互参照エディタが表示されます。

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

    新しい行が追加されます。

  8. 新しく追加された行にエンド・システム名としてSBL_78を入力します。

  9. 「追加」をクリックし、エンド・システム名としてCommonを入力します。

    図49-15に示すように、相互参照エディタが表示されます。

    図49-15 顧客の相互参照

    図49-15の説明が続きます
    「図49-15 顧客の相互参照」の説明

  10. 「ファイル」メニューから、「すべて保存」を選択して、相互参照エディタを閉じます。

49.8.1.4 タスク4: データベース・アダプタ・サービスの作成方法

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

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

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

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

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

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

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

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

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

  6. 「アプリケーション接続」フィールドで、「DBConnection1」を選択します。

  7. 「JNDI名」フィールドに、eis/DB/DBConnection1と入力します。

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

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

  9. 「表の新規レコードまたは更新されたレコードをポーリング」を選択し、「次へ」をクリックします。

    「表の選択」ページが表示されます。

  10. 「表のインポート」をクリックします。

    「表のインポート」ダイアログが表示されます。

  11. 「スキーマ」から「Scott」を選択します。

  12. 「名前フィルタ」フィールドで%SAP%と入力し、「問合せ」をクリックします。

    「選択可能」フィールドにSAP_01表名が移入されます。

  13. 「SAP_01」をダブルクリックします。

    「選択済」フィールドに「SAP_01」が移入されます。

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

    ここで「表の選択」ページに「SAP_01」表が含まれます。

  15. 「SAP_01」を選択し、「次へ」をクリックします。

    「主キーの定義」ページが表示されます。

  16. 「ID」を主キーとして選択し、「次へ」をクリックします。

    「リレーションシップ」ページが表示されます。

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

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

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

    「読取り後」ページが表示されます。

  19. 「[SAP_01]表のフィールドの更新 (論理削除)」を選択し、「次へ」をクリックします。

    「論理削除」ページが表示されます。

  20. 「論理削除」フィールドで、「LOGICAL_DEL」を選択します。

  21. 「読取り値」フィールドで、Yと入力します。

  22. 「未読取り値」フィールドで、Nと入力します。

    図49-16は、アダプタ構成ウィザードの「論理削除」ページを示しています。

    図49-16 「論理削除」ページ: アダプタ構成ウィザード

    図49-16の説明が続きます
    「図49-16 「論理削除」ページ: アダプタ構成ウィザード」の説明

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

    「ポーリング・オプション」ページが表示されます。

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

    「選択条件の定義」ページが表示されます。

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

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

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

    図49-17に示すように、SAPという名前のデータベース・アダプタ・サービスが作成されます。

    図49-17 SOAコンポジット・エディタのSAPデータベース・アダプタ・サービス

    図49-17の説明が続きます
    「図49-17 SOAコンポジット・エディタのSAPデータベース・アダプタ・サービス」の説明

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

49.8.1.5 タスク5: EBSおよびSBL外部参照の作成方法

EBSおよびSBL外部参照を作成する手順は、次のとおりです。

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

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

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

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

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

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

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

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

  6. 「アプリケーション接続」フィールドで、「DBConnection1」を選択します。

  7. 「JNDI名」フィールドに、eis/DB/DBConnection1と入力します。

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

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

  9. 「ストアド・プロシージャまたはファンクションの呼出し」を選択し、「次へ」をクリックします。

    「ストアド・プロシージャの指定」ページが表示されます。

  10. 「スキーマ」から「Scott」を選択します。

  11. 「参照」をクリックします。

    「ストアド・プロシージャ」ダイアログが表示されます。

  12. 図49-18に示すように、「POPULATE_APP_INSTANCE」を選択します。

    図49-18 「ストアド・プロシージャ」ダイアログ

    図49-18の説明が続きます
    「図49-18 「ストアド・プロシージャ」ダイアログ」の説明

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

    図49-19に示すように、「ストアド・プロシージャの指定」ページが表示されます。

    図49-19 アダプタ構成ウィザードの「ストアド・プロシージャの指定」ページ

    図49-19の説明が続きます
    「図49-19 アダプタ構成ウィザードの「ストアド・プロシージャの指定」ページ」の説明

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

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

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

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

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

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

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

  17. ステップ2からステップ16を繰り返し、SBLという名前の外部参照をもう1つ作成します。

    このタスクを完了すると、図49-21に示すように、SOAコンポジット・エディタが表示されます。

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

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

49.8.1.6 タスク6: Loggerファイル・アダプタ外部参照の作成方法

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    図49-22 SOAコンポジット・エディタのLogger参照

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

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

49.8.1.7 タスク7: Oracle Mediatorサービス・コンポーネントの作成方法

Oracle Mediatorサービス・コンポーネントを作成する手順は、次のとおりです。

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

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

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

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

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

  4. 図49-23に示すように、「SAP」サービスを「Mediator1」に接続します。

    図49-23 SAPサービスのMediator1への接続

    図49-23の説明が続きます
    「図49-23 SAPサービスのMediator1への接続」の説明

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

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

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

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

  8. 「SOAPバインディングを持つコンポジット・サービスの作成」の選択を解除します。

  9. 「WSDLファイル」フィールドの右側にある「既存のWSDLを検索します。」をクリックします。

  10. Common.wsdlファイルに移動して選択します。Common.wsdlファイルは、Samplesフォルダにあります。

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

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

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

49.8.1.8 タスク8: Oracle Mediatorサービス・コンポーネントのルーティング・ルールの指定方法

次の操作のルーティング・ルールを指定する必要があります。

  • 挿入

  • 更新

  • ID更新

  • 削除

挿入操作のルーティング・ルールを作成する手順は、次のとおりです。

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

    メディエータ・エディタが表示されます。

  2. 「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。

    「ターゲット・タイプ」ダイアログが表示されます。

  3. 「サービス」を選択します。

    「ターゲット・サービス」ダイアログが表示されます。

  4. 「XrefCustApp」「メディエータ」「Common」「サービス」「Common」の順に移動します。

  5. 「insert」を選択し、「OK」をクリックします。

  6. 「フィルタ」アイコンをクリックします。

    「式ビルダー」ダイアログが表示されます。

  7. 「式」フィールドに、次の式を入力します。

    $in.Sap01Collection/top:Sap01Collection/top:Sap01/top:operation='INSERT'
    
  8. 「OK」をクリックします。

  9. 「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。

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

  10. 「新規マッパー・ファイルの作成」を選択し、SAP_TO_COMMON_INSERT.xslと入力します。

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

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

  12. 「top:SAP01」ソース要素を「inp1:Customer」ターゲット要素にドラッグ・アンド・ドロップします。

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

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

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

    図49-24に示すように、トランスフォーメーションが作成されます。

    図49-24 SAP_TO_COMMON_INSERT.xslトランスフォーメーション

    図49-24の説明が続きます
    「図49-24 SAP_TO_COMMON_INSERT.xslトランスフォーメーション」の説明

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

  16. 「XREF Functions」を選択します。

  17. 「コンポーネント・パレット」からtop:id要素とinp1:id要素を接続している線まで「populateXRefRow」関数をドラッグ・アンド・ドロップします。

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

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

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

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

  20. 「customer.xref」を選択し、「OK」をクリックします。

  21. 「referenceColumnName」フィールドで"SAP_01"と入力するか、または「検索」をクリックして列名を選択します。

  22. 「referenceValue」列に、/top:Sap01Collection/top:Sap01/top:idと入力します。

  23. 「columnName」フィールドで"Common"と入力するか、「検索」をクリックして列名を選択します。

  24. 「value」フィールドに、oraext:generate-guid()と入力します。

  25. 「mode」フィールドで"Add"と入力するか、「検索」をクリックして、このモードを選択します。

    図49-25は、移入後の「関数の編集 – populateXRefRow」ダイアログを示しています。

    図49-25 「関数の編集 – populateXRefRow」ダイアログ: XrefCustAppユースケース

    図49-25の説明が続きます
    「図49-25 「関数の編集 – populateXRefRow」ダイアログ: XrefCustAppユースケース」の説明

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

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

    図49-26に示すように、「ルーティング・ルール」セクションが表示されます。

    図49-26 挿入操作を行う「ルーティング・ルール」セクション

    図49-26の説明が続きます
    「図49-26 挿入操作を行う「ルーティング・ルール」セクション」の説明

更新操作のルーティング・ルールを作成する手順は、次のとおりです。

  1. 「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。

    「ターゲット・タイプ」ダイアログが表示されます。

  2. 「サービス」を選択します。

    「ターゲット・サービス」ダイアログが表示されます。

  3. 「XrefCustApp」「メディエータ」「Common」「サービス」「Common」の順に移動します。

  4. 「update」を選択し、「OK」をクリックします。

  5. 「フィルタ」アイコンをクリックします。

    「式ビルダー」ダイアログが表示されます。

  6. 「式」フィールドに、次の式を入力します。

    $in.Sap01Collection/top:Sap01Collection/top:Sap01/top:operation='UPDATE'
    
  7. 「OK」をクリックします。

  8. 「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。

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

  9. 「新規マッパー・ファイルの作成」を選択し、SAP_TO_COMMON_UPDATE.xslと入力します。

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

    「SAP_TO_COMMON_UPDATE.xsl」ファイルが表示されます。

  11. 「top:Sap01」ソース要素を「inp1:Customer」ターゲット要素にドラッグ・アンド・ドロップします。

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

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

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

  14. 「XREF Functions」を選択します。

  15. 「コンポーネント・パレット」からtop:id要素とinp1:id要素を接続している線まで「lookupXRef」関数をドラッグ・アンド・ドロップします。

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

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

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

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

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

  19. 「referenceColumnName」フィールドで"SAP_01"と入力するか、または「検索」をクリックして列名を選択します。

  20. 「referenceValue」列に、/top:Sap01Collection/top:Sap01/top:idと入力します。

  21. 「columnName」フィールドで"COMMON"と入力するか、「検索」をクリックして列名を選択します。

  22. 「needException」フィールドでtrue()と入力するか、「検索」をクリックして、このモードを選択します。

    図49-27は、移入後の「関数の編集 – lookupXRef」ダイアログを示しています。

    図49-27 「関数の編集 – lookupXRef」ダイアログ: XrefCustAppユースケース

    図49-27の説明が続きます
    「図49-27 「関数の編集 – lookupXRef」ダイアログ: XrefCustAppユースケース」の説明

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

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

    図49-28に示すように、「ルーティング・ルール」セクションが表示されます。

    図49-28 挿入操作と更新操作

    図49-28の説明が続きます
    「図49-28 挿入操作と更新操作」の説明

ID更新操作のルーティング・ルールを作成する手順は、次のとおりです。

次のタスクを実行して、updateID操作のルーティング・ルールを作成します。

  1. 「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。

    「ターゲット・タイプ」ダイアログが表示されます。

  2. 「サービス」を選択します。

    「ターゲット・サービス」ダイアログが表示されます。

  3. 「XrefCustApp」「メディエータ」「Common」「サービス」「Common」の順に移動します。

  4. 「updateid」を選択し、「OK」をクリックします。

  5. 「フィルタ」アイコンをクリックします。

    「式ビルダー」ダイアログが表示されます。

  6. 「式」フィールドに、次の式を入力します。

    $in.Sap01Collection/top:Sap01Collection/top:Sap01/top:operation = 'UPDATEID'
    
  7. 「OK」をクリックします。

  8. 「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。

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

  9. 「新規マッパー・ファイルの作成」を選択し、SAP_TO_COMMON_UPDATEID.xslと入力します。

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

    「SAP_TO_COMMON_UPDATEID.xsl」ファイルが表示されます。

  11. 「top:Sap01」ソース要素を「inp1:Customer」ターゲット要素にドラッグ・アンド・ドロップします。

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

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

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

  14. 「XREF Functions」を選択します。

  15. 「コンポーネント・パレット」からtop:id要素とinp1:id要素を接続している線まで「populateXRefRow」関数をドラッグ・アンド・ドロップします。

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

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

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

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

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

  19. 「referenceColumnName」フィールドで"SAP_01"と入力するか、または「検索」をクリックして列名を選択します。

  20. 「referenceValue」列に、/top:Sap01Collection/top:Sap01/top:refIdと入力します。

  21. 「columnName」フィールドで"SAP_01"と入力するか、「検索」をクリックして列名を選択します。

  22. 「value」フィールドに、/top:Sap01Collection/top:Sap01/top:Idと入力します。

  23. 「mode」フィールドで"UPDATE"と入力するか、「検索」をクリックして、このモードを選択します。

    図49-29は、移入後の「関数の編集 – populateXRefRow」ダイアログを示しています。

    図49-29 「関数の編集 – populateXRefRow」ダイアログ: XrefCustAppユースケース

    図49-29の説明が続きます
    「図49-29 「関数の編集 – populateXRefRow」ダイアログ: XrefCustAppユースケース」の説明

  24. 「コンポーネント・パレット」からtop:id要素とinp1:id要素を接続している線まで「lookupXRef」関数をドラッグ・アンド・ドロップします。

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

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

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

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

  27. 「customer.xref」を選択し、「OK」をクリックします。

  28. 「referenceColumnName」フィールドで"SAP_01"と入力するか、または「検索」をクリックして列名を選択します。

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

    xref:populateXRefRow("customer.xref","SAP_
    01",/top:Sap01Collection/top:Sap01/top:refId,"SAP_
    01",/top:Sap01Collection/top:Sap01/top:id,"UPDATE").
    
  30. 「columnName」フィールドで"COMMON"と入力するか、「検索」をクリックして列名を選択します。

  31. 「needException」フィールドでfalse()と入力するか、「検索」をクリックして、このモードを選択します。

    図49-30は、移入後の「関数の編集 – lookupXRef」ダイアログを示しています。

    図49-30 「関数の編集 – lookupXRef」ダイアログ: XrefCustAppユースケース

    図49-30の説明が続きます
    「図49-30 「関数の編集 – lookupXRef」ダイアログ: XrefCustAppユースケース」の説明

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

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

    図49-31に示すように、「ルーティング・ルール」セクションが表示されます。

    図49-31 挿入操作、更新操作およびID更新操作

    図49-31の説明が続きます
    「図49-31 挿入操作、更新操作およびID更新操作」の説明

削除操作のルーティング・ルールを作成する手順は、次のとおりです。

  1. 「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。

    「ターゲット・タイプ」ダイアログが表示されます。

  2. 「サービス」を選択します。

    「ターゲット・サービス」ダイアログが表示されます。

  3. 「XrefCustApp」「メディエータ」「Common」「サービス」「Common」の順に移動します。

  4. 「delete」を選択し、「OK」をクリックします。

  5. 「フィルタ」アイコンをクリックします。

    「式ビルダー」ダイアログが表示されます。

  6. 「式」フィールドに、次の式を入力します。

    $in.Sap01Collection/top:Sap01Collection/top:Sap01/top:operation = 'DELETE'
    
  7. 「OK」をクリックします。

  8. 「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。

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

  9. 「新規マッパー・ファイルの作成」を選択し、SAP_TO_COMMON_DELETE.xslと入力します。

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

    「SAP_TO_COMMON_DELETE.xsl」ファイルが表示されます。

  11. <sources>を右クリックし、「パラメータの追加」を選択します。

    「パラメータの追加」ダイアログが表示されます。

  12. 「ローカル名」フィールドに、COMMONIDと入力します。

  13. 「デフォルト値の設定」を選択します。

  14. 「式」を選択します。

  15. 「XPath式」フィールドに、次の式を入力します。

    xref:lookupXRef("customer.xref","SAP_
    01",/top:Sap01Collection/top:Sap01/top:id,"COMMON",false()).
    
  16. 「OK」をクリックします。

  17. 「top:Sap01」ソース要素を「inp1:Customer」ターゲット要素にドラッグ・アンド・ドロップします。

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

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

  19. 「top:id」「inp1:id」を接続している線を削除します。

  20. 「COMMONID」「inp1:id」に接続します。

  21. 「inp1:id」を右クリックして「XSLノードの追加」を選択してから、「if」を選択します。

    新しいノード「if」が、「inp1:customer」「inp1:id」の間に挿入されます。

  22. 「top:id」「if」ノードに接続します。

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

  24. 「XREF Functions」を選択します。

  25. 「コンポーネント・パレット」からtop:idノードとifノードを接続している線まで「markForDelete」関数をドラッグ・アンド・ドロップします。

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

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

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

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

  28. 「customer.xref」を選択し、「OK」をクリックします。

  29. 「columnName」フィールドで"SAP_01"と入力するか、「検索」をクリックして列名を選択します。

  30. 「value」フィールドに、/top:Sap01Collection/top:Sap01/top:Idと入力します。

    図49-32は、移入後の「関数の編集 – markForDelete」ダイアログを示しています。

    図49-32 「関数の編集 – markForDelete」ダイアログ: XrefCustAppユースケース

    図49-32の説明が続きます
    「図49-32 「関数の編集 – markForDelete」ダイアログ: XrefCustAppユースケース」の説明

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

    図49-33に示すように、「SAP_TO_COMMON_DELETE.xsl」ファイルが表示されます。

    図49-33 SAP_TO_COMMON_DELETE.xsl

    図49-33の説明が続きます
    「図49-33 SAP_TO_COMMON_DELETE.xsl」の説明

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

    図49-34に示すように、「ルーティング・ルール」セクションが表示されます。

    図49-34 挿入操作、更新操作、ID更新操作および削除操作

    図49-34の説明が続きます
    「図49-34 挿入操作、更新操作、ID更新操作および削除操作」の説明

49.8.1.9 タスク9: 「Common」Oracle Mediatorのルーティング・ルールの指定方法

「Common」Oracle Mediatorの次の操作についてルーティング・ルールを指定する必要があります。

  • 挿入

  • 削除

  • 更新

  • ID更新

挿入操作のルーティング・ルールを作成する手順は、次のとおりです。

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

    メディエータ・エディタが表示されます。

  2. 「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。

    「ターゲット・タイプ」ダイアログが表示されます。

  3. 「サービス」を選択します。

    「ターゲット・サービス」ダイアログが表示されます。

  4. 「XrefCustApp」「参照」「SBL」の順に移動します。

  5. 「SBL」を選択し、「OK」をクリックします。

  6. 「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。

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

  7. 「新規マッパー・ファイルの作成」を選択し、COMMON_TO_SBL_INSERT.xslと入力します。

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

    「COMMON_TO_SBL_INSERT.xsl」ファイルが表示されます。

  9. 「inp1:Customers」ソース要素を「db:InputParameters」ターゲット要素にドラッグ・アンド・ドロップします。

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

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

    図49-35に示すように、トランスフォーメーションが作成されます。

    図49-35 COMMON_TO_SBL_INSERT.xslトランスフォーメーション

    図49-35の説明が続きます
    「図49-35 COMMON_TO_SBL_INSERT.xslトランスフォーメーション」の説明

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

  12. 「同期リプライ」セクションで、「ターゲット・サービス操作を参照します。」をクリックします。

    「ターゲット・タイプ」ダイアログが表示されます。

  13. 「サービス」を選択します。

    「ターゲット・サービス」ダイアログが表示されます。

  14. 「XrefCustApp」「参照」「Logger」の順に移動します。

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

  16. 「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。

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

  17. 「新規マッパー・ファイルの作成」を選択し、SBL_TO_COMMON_INSERT.xslと入力します。

  18. 「リクエストをリプライ・ペイロードに含める」を選択します。

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

    「SBL_TO_COMMON_INSERT.xsl」ファイルが表示されます。

  20. 「inp1:Customers」ソース要素を「db:X:APP_ID」に接続します。

  21. 「コンポーネント・パレット」から接続線上に「populateXRefRow」関数をドラッグ・アンド・ドロップします。

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

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

  23. 表示されたフィールドに次の情報を入力します。

    • xrefLocation: "customer.xref"

    • referenceColumnName: "Common"

    • referenceValue: $initial.Customers/inp1:Customers/inp1:Customer/inp1:Id

    • columnName: "SBL_78"

    • value: /db:OutputParameters/db:X_APP_ID

    • mode: "LINK"

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

    図49-36に示すように、「SBL_TO_COMMON_INSERT.xsl」ファイルが表示されます。

    図49-36 SBL_TO_COMMON_INSERT.xslトランスフォーメーション

    図49-36の説明が続きます
    「図49-36 SBL_TO_COMMON_INSERT.xslトランスフォーメーション」の説明

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

  26. 「同期リプライ」セクションで、「値の割当て」アイコンをクリックします。

    「値の割当て」ダイアログが表示されます。

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

    「値の割当て」ダイアログが表示されます。

  28. 「From」セクションで、「式」を選択します。

  29. 「式ビルダーの起動」アイコンをクリックします。

    「式ビルダー」ダイアログが表示されます。

  30. 「式」フィールドに次の式を入力し、「OK」をクリックします。

    concat('INSERT-',$in.OutputParameters/db:OutputParameters/db:X_APP_ID,'.xml')
    
  31. 「To」セクションで、「プロパティ」を選択します。

  32. 「jca.file.FileName」プロパティを選択し、「OK」をクリックします。

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

    図49-37に示すように、「insert」操作セクションが表示されます。

    図49-37 SBLターゲット・サービスで行う挿入操作

    図49-37の説明が続きます
    「図49-37 SBLターゲット・サービスで行う挿入操作」の説明

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

  35. ステップ2からステップ34を繰り返し、EBSというもう1つのターゲット・サービスおよびそのルーティング・ルールを指定します。

    図49-38に、SBLおよびEBSターゲット・サービスの「insert」操作セクションを示します。

    図49-38 SBLターゲット・サービスとEBSターゲット・サービスで行う挿入操作

    図49-38の説明が続きます
    「図49-38 SBLターゲット・サービスとEBSターゲット・サービスで行う挿入操作」の説明

削除操作のルーティング・ルールを作成する手順は、次のとおりです。

次のタスクを実行して、削除操作のルーティング・ルールを作成します。

  1. 「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。

    「ターゲット・タイプ」ダイアログが表示されます。

  2. 「サービス」を選択します。

    「ターゲット・サービス」ダイアログが表示されます。

  3. 「XrefCustApp」「参照」「SBL」の順に移動します。

  4. 「SBL」を選択し、「OK」をクリックします。

  5. 「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。

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

  6. 「新規マッパー・ファイルの作成」を選択し、COMMON_TO_SBL_DELETE.xslと入力します。

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

    「COMMON_TO_SBL_DELETE.xsl」ファイルが表示されます。

  8. 「inp1:Customers」ソース要素を「db:InputParameters」ターゲット要素にドラッグ・アンド・ドロップします。

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

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

    図49-39に示すように、トランスフォーメーションが作成されます。

    図49-39 COMMON_TO_SBL_DELETE.xslトランスフォーメーション

    図49-39の説明が続きます
    「図49-39 COMMON_TO_SBL_DELETE.xslトランスフォーメーション」の説明

  10. 「コンポーネント・パレット」からinp1:iddb:XCUSTOMER_IDを接続している線まで「lookupXRef」関数をドラッグ・アンド・ドロップします。

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

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

  12. 表示されたフィールドに次の情報を入力します。

    • xrefLocation: "customer.xref"

    • referenceColumnName: "Common"

    • referenceValue: /inp1:Customers/inp1:Customer/inp1:Id

    • columnName: "SBL_78"

    • needException: false()

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

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

  15. 「同期リプライ」セクションで、「ターゲット・サービス操作を参照します。」をクリックします。

    「ターゲット・タイプ」ダイアログが表示されます。

  16. 「サービス」を選択します。

    「ターゲット・サービス」ダイアログが表示されます。

  17. 「XrefCustApp」「参照」「Logger」の順に移動します。

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

  19. 「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。

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

  20. 「新規マッパー・ファイルの作成」を選択し、SBL_TO_COMMON_DELETE.xslと入力します。

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

    「SBL_TO_COMMON_DELETE.xsl」ファイルが表示されます。

  22. 「db:X_APP_ID」ソース要素を「db:X:APP_ID」ターゲットに接続します。

  23. 「コンポーネント・パレット」から接続線上に「markForDelete」関数をドラッグ・アンド・ドロップします。

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

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

  25. 表示されたフィールドに次の情報を入力します。

    • xrefLocation: "customer.xref"

    • columnName: "SBL_78"

    • value: /db:OutputParameters/db:X_APP_ID

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

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

  28. 「同期リプライ」セクションで、「値の割当て」アイコンをクリックします。

    「値の割当て」ダイアログが表示されます。

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

    「値の割当て」ダイアログが表示されます。

  30. 「From」セクションで、「式」を選択します。

  31. 「式ビルダーの起動」アイコンをクリックします。

    「式ビルダー」ダイアログが表示されます。

  32. 「式」フィールドに次の式を入力し、「OK」をクリックします。

    concat('DELETE-',$in.OutputParameters/db:OutputParameters/db:X_APP_ID,'.xml')
    
  33. 「To」セクションで、「プロパティ」を選択します。

  34. 「jca.file.FileName」プロパティを選択し、「OK」をクリックします。

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

    図49-40に示すように、「delete」操作セクションが表示されます。

    図49-40 SBLターゲット・サービスで行う削除操作

    図49-40の説明が続きます
    「図49-40 SBLターゲット・サービスで行う削除操作」の説明

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

  37. ステップ1からステップ36を繰り返し、EBSというもう1つのターゲット・サービスおよびルーティング・ルールを指定します。

    図49-41に、SBLおよびEBSターゲット・サービスの「delete」操作セクションを示します。

    図49-41 SBLターゲット・サービスとEBSターゲット・サービスで行う削除操作

    図49-41の説明が続きます
    「図49-41 SBLターゲット・サービスとEBSターゲット・サービスで行う削除操作」の説明

更新操作のルーティング・ルールを作成する手順は、次のとおりです。

次のタスクを実行して、更新操作のルーティング・ルールを作成します。

  1. 「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。

    「ターゲット・タイプ」ダイアログが表示されます。

  2. 「サービス」を選択します。

    「ターゲット・サービス」ダイアログが表示されます。

  3. 「XrefCustApp」「参照」「SBL」の順に移動します。

  4. 「SBL」を選択し、「OK」をクリックします。

  5. 「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。

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

  6. 「新規マッパー・ファイルの作成」を選択し、COMMON_TO_SBL_UPDATE.xslと入力します。

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

    「COMMON_TO_SBL_UPDATE.xsl」ファイルが表示されます。

  8. 「inp1:Customers」ソース要素を「db:InputParameters」ターゲット要素にドラッグ・アンド・ドロップします。

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

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

    図49-39に示すように、トランスフォーメーションが作成されます。

  10. 「コンポーネント・パレット」からinp1:iddb:XCUSTOMER_IDを接続している線まで「lookupXRef」関数をドラッグ・アンド・ドロップします。

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

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

  12. 表示されたフィールドに次の情報を入力します。

    • xrefLocation: "customer.xref"

    • referenceColumnName: "Common"

    • referenceValue: /inp1:Customers/inp1:Customer/inp1:Id

    • columnName: "SBL_78"

    • needException: true()

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

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

  15. 「同期リプライ」セクションで、「ターゲット・サービス操作を参照します。」をクリックします。

    「ターゲット・タイプ」ダイアログが表示されます。

  16. 「サービス」を選択します。

    「ターゲット・サービス」ダイアログが表示されます。

  17. 「XrefCustApp」「参照」「Logger」の順に移動します。

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

  19. 「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。

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

  20. 「新規マッパー・ファイルの作成」を選択し、SBL_TO_COMMON_UPDATE.xslと入力します。

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

    「SBL_TO_COMMON_UPDATE.xsl」ファイルが表示されます。

  22. 「db:X:APP_ID」ソース要素を「db:X:APP_ID」に接続します。

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

  24. 「同期リプライ」セクションで、「値の割当て」アイコンをクリックします。

    「値の割当て」ダイアログが表示されます。

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

    「値の割当て」ダイアログが表示されます。

  26. 「From」セクションで、「式」を選択します。

  27. 「式ビルダーの起動」アイコンをクリックします。

    「式ビルダー」ダイアログが表示されます。

  28. 「式」フィールドに次の式を入力し、「OK」をクリックします。

    concat('UPDATE-',$in.OutputParameters/db:OutputParameters/db:X_APP_ID,'.xml')
    
  29. 「To」セクションで、「プロパティ」を選択します。

  30. 「jca.file.FileName」プロパティを選択し、「OK」をクリックします。

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

    図49-42に示すように、「update」操作セクションが表示されます。

    図49-42 SBLターゲット・サービスで行う更新操作

    図49-42の説明が続きます
    「図49-42 SBLターゲット・サービスで行う更新操作」の説明

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

  33. ステップ1からステップ32を繰り返し、EBSというもう1つのターゲット・サービスおよびそのルーティング・ルールを指定します。

    図49-43に、SBLおよびEBSターゲット・サービスの「update」操作セクションを示します。

    図49-43 SBLターゲット・サービスとEBSターゲット・サービスで行う更新操作

    図49-43の説明が続きます
    「図49-43 SBLターゲット・サービスとEBSターゲット・サービスで行う更新操作」の説明

ID更新操作のルーティング・ルールを作成する手順は、次のとおりです。

次のタスクを実行して、ID更新操作のルーティング・ルールを作成します。

  1. 「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。

    「ターゲット・タイプ」ダイアログが表示されます。

  2. 「サービス」を選択します。

    「ターゲット・サービス」ダイアログが表示されます。

  3. 「XrefCustApp」「参照」「SBL」の順に移動します。

  4. 「SBL」を選択し、「OK」をクリックします。

  5. 「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。

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

  6. 「新規マッパー・ファイルの作成」を選択し、COMMON_TO_SBL_UPDATEID.xslと入力します。

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

    「COMMON_TO_SBL_UPDATEID.xsl」ファイルが表示されます。

  8. 「inp1:Customers」ソース要素を「db:InputParameters」ターゲット要素にドラッグ・アンド・ドロップします。

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

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

    図49-39に示すように、トランスフォーメーションが作成されます。

  10. 「コンポーネント・パレット」からinp1:iddb:X_CUSTOMER_IDを接続している線まで「lookupXRef」関数をドラッグ・アンド・ドロップします。

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

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

  12. 表示されたフィールドに次の情報を入力します。

    • xrefLocation: customer.xref

    • referenceColumnName: Common

    • referenceValue: /inp1:Customers/inp1:Customer/inp1:Id

    • columnName: SBL_78

    • needException: false()

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

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

  15. 「同期リプライ」セクションで、「ターゲット・サービス操作を参照します。」をクリックします。

    「ターゲット・タイプ」ダイアログが表示されます。

  16. 「サービス」を選択します。

    「ターゲット・サービス」ダイアログが表示されます。

  17. 「XrefCustApp」「参照」「Logger」の順に移動します。

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

  19. 「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。

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

  20. 「リクエストをリプライ・ペイロードに含める」を選択します。

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

    「SBL_TO_COMMON_UPDATEID.xsl」ファイルが表示されます。

  22. 「inp1:Customers」ソース要素を「db:X:APP_ID」に接続します。

  23. 「コンポーネント・パレット」から接続線上に「populateXRefRow」関数をドラッグ・アンド・ドロップします。

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

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

  25. 表示されたフィールドに次の情報を入力します。

    • xrefLocation: customer.xref

    • referenceColumnName: Common

    • referenceValue: $initial.Customers/inp1:Customers/inp1:Customer/inp1:Id

    • columnName: SBL_78

    • value: /db:OutputParameters/db:X_APP_ID

    • mode: UPDATE

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

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

  28. 「同期リプライ」セクションで、「値の割当て」アイコンをクリックします。

    「値の割当て」ダイアログが表示されます。

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

    「値の割当て」ダイアログが表示されます。

  30. 「From」セクションで、「式」を選択します。

  31. 「式ビルダーの起動」アイコンをクリックします。

    「式ビルダー」ダイアログが表示されます。

  32. 「式」フィールドに次の式を入力し、「OK」をクリックします。

    concat('UPDATEID-',$in.OutputParameters/db:OutputParameters/db:X_APP_ID,'.xml')
    
  33. 「To」セクションで、「プロパティ」を選択します。

  34. 「jca.file.FileName」プロパティを選択し、「OK」をクリックします。

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

    図49-44に示すように、「updateid」操作セクションが表示されます。

    図49-44 SBLターゲット・サービスで行うID更新操作

    図49-44の説明が続きます
    「図49-44 SBLターゲット・サービスで行うID更新操作」の説明

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

  37. ステップ1からステップ36を繰り返し、EBSというもう1つのターゲット・サービスおよびルーティング・ルールを指定します。

    図49-45に、SBLおよびEBSターゲット・サービスの「updateid」操作セクションを示します。

    図49-45 SBLターゲット・サービスとEBSターゲット・サービスで行うID更新操作

    図49-45の説明が続きます
    「図49-45 SBLターゲット・サービスとEBSターゲット・サービスで行うID更新操作」の説明

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

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

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

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

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

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

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

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

デプロイしたXrefCustAppアプリケーションは、XrefCustApp/sqlフォルダのinsert_sap_record.sqlファイルから任意のコマンドを使用することで実行できます。正常に完了すると、レコードがEBSおよびSBL表に挿入および更新され、Logger参照がoutput.xmlファイルに出力を書き出します。

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

http://hostname:port_number/em

ここで、hostnameは、Oracle SOA Suiteインフラストラクチャをインストールしたホストです。port_numberはサービスを実行するポートです。

49.9 1M関数の相互参照の作成および実行

相互参照ユースケースは、2つのエンド・システム(Oracle EBSインスタンスおよびSAPインスタンス)間の統合シナリオを実装します。このユースケースでは、注文はSAPからEBSに渡されます。SAPでは注文は一意のIDで表されますが、EBSではこの注文がID1とID2の2つの注文に分割されます。このシナリオはデータベース・アダプタを使用して作成されます。SAP表の更新レコードまたは新規レコードをポーリングすると、SAPインスタンスが作成されます。EBSでは、このインスタンスがプロシージャによってシミュレートされ、表に移入されます。図49-46に、このユースケースの概要を示します。

図49-46 SOAコンポジット・エディタのXrefOrderAppユースケース

図49-46の説明が続きます
「図49-46 SOAコンポジット・エディタのXrefOrderAppユースケース」の説明

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

49.9.1 ユース-ケースの作成方法

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

49.9.1.1 タスク1: Oracle Databaseおよびデータベース・アダプタの構成方法

Oracle Databaseおよびデータベース・アダプタを構成する手順は、次のとおりです。

  1. このユースケースには、SCOTTデータベース・アカウントとパスワードTIGERが必要です。SCOTTアカウントのロックが解除されている必要があります。

    SYSDBAでログインしてから、XrefOrderApp1M/sqlフォルダにあるsetup_user.sqlスクリプトを実行してアカウントのロックを解除できます。

  2. XrefOrderApp1M/sqlフォルダにあるcreate_schema.sqlスクリプトを実行して、このユースケースに必要な表を作成します。

  3. XrefOrderApp1M/sqlフォルダにあるcreate_app_procedure.sqlスクリプトを実行して、この統合に組み込む様々なアプリケーションをシミュレートするプロシージャを作成します。

  4. Oracle_Home/rcu/integration/soainfra/sql/xref/フォルダにあるcreateschema_xref_oracle.sqlスクリプトを実行し、ランタイムの相互参照データを格納する相互参照表を作成します。

  5. ra.xmlファイルとweblogic-ra.xmlファイルを、$BEAHOME/META-INFから、使用しているコンピュータで新規作成したMETA-INFディレクトリにコピーします。

  6. weblogic-ra.xmlファイルを編集します。このファイルは、SOAアプリケーションの$BEAHOME/src/oracle/tip/adapter/db/test/deploy/weblogic/META-INFフォルダにあります。

    • 次のように、プロパティをxADataSourceNameに変更します。

      <property>
       <name>xADataSourceName</name>
       <value>jdbc/DBConnection1</value>
      </property>
      
    • jndi-nameを次のように変更します。

      <jndi-name> eis/DB/DBConnection1</jndi-name>
      

    このサンプルではeis/DB/DBConnection1を使用して新規メッセージのSAP表をポーリングし、Oracle EBSおよびSiebelインスタンスをシミュレートするプロシージャに接続します。

  7. ra.xmlファイルとweblogic-ra.xmlファイルをRARファイルとしてパッケージ化し、Oracle WebLogic Server管理コンソールを使用してそのRARファイルをデプロイします。

  8. Oracle WebLogic Server管理コンソールを使用して、次の値を持つデータ・ソースを作成します。

    • jndi-name=jdbc/DBConnection1

    • user=scott

    • password=tiger

    • url=jdbc:oracle:thin:@host:port:service

    • connection-factory factory-class=oracle.jdbc.pool.OracleDataSource

  9. Oracle WebLogic Server管理コンソールを使用して、次の値を持つデータ・ソースを作成します。

    • jndi-name=jdbc/xref

    • user=scott

    • password=tiger

    • url=jdbc:oracle:thin:@host:port:service

    • connection-factory factory-class=oracle.jdbc.pool.OracleDataSource

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

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

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

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

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

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

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

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

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

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

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

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

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

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

49.9.1.3 タスク3: 相互参照の作成方法

ユースケース用のアプリケーションおよびプロジェクトを作成した後は、相互参照表を作成する必要があります。

相互参照表を作成する手順は、次のとおりです。

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

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

  3. 「項目」リストで「相互参照(XREF)」を選択し、「OK」をクリックします。

    「相互参照(XREF)の作成」ダイアログが表示されます。

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

  5. 「エンド・システム」フィールドで、SAP_05およびEBS_i75と入力します。

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

    相互参照エディタが表示されます。

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

    新しい行が追加されます。

  8. 「エンド・システム」名としてCOMMONを入力します。

    図49-47に示すように、相互参照エディタが表示されます。

    図49-47 顧客の相互参照

    図49-47の説明が続きます
    「図49-47 顧客の相互参照」の説明

  9. 「ファイル」メニューから、「すべて保存」を選択して、相互参照エディタを閉じます。

49.9.1.4 タスク4: データベース・アダプタ・サービスの作成方法

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

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

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

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

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

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

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

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

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

  6. 「接続」フィールドで、「DBConnection1」を選択します。

  7. 「JNDI名」フィールドに、eis/DB/DBConnection1と入力します。

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

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

  9. 「表の新規レコードまたは更新されたレコードをポーリング」を選択し、「次へ」をクリックします。

    「表の選択」ページが表示されます。

  10. 「表のインポート」をクリックします。

    「表のインポート」ダイアログが表示されます。

  11. 「スキーマ」から「Scott」を選択します。

  12. 「名前フィルタ」フィールドで%SAP%と入力し、「問合せ」をクリックします。

    「選択可能」フィールドに「SAP_05」表名が移入されます。

  13. 「SAP_05」をダブルクリックします。

    「選択済」フィールドに「SAP_05」が移入されます。

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

    ここで「表の選択」ページに「SAP_05」表が含まれます。

  15. 「SAP_05」を選択し、「次へ」をクリックします。

    「主キーの定義」ページが表示されます。

  16. 「ID」を主キーとして選択し、「次へ」をクリックします。

    「リレーションシップ」ページが表示されます。

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

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

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

    「読取り後」ページが表示されます。

  19. 「[SAP_05]表のフィールドの更新 (論理削除)」を選択し、「次へ」をクリックします。

    「論理削除」ページが表示されます。

  20. 「論理削除」フィールドで、「LOGICAL_DEL」を選択します。

  21. 「読取り値」フィールドで、Yと入力します。

  22. 「未読取り値」フィールドで、Nと入力します。

    図49-16は、アダプタ構成ウィザードの「論理削除」ページを示しています。

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

    「ポーリング・オプション」ページが表示されます。

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

    「選択条件の定義」ページが表示されます。

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

    「詳細オプション」ページが表示されます。

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

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

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

    図49-48に示すように、SAPという名前のデータベース・アダプタ・サービスが作成されます。

    図49-48 SOAコンポジット・エディタのSAPデータベース・アダプタ・サービス

    図49-48の説明が続きます
    「図49-48 SOAコンポジット・エディタのSAPデータベース・アダプタ・サービス」の説明

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

49.9.1.5 タスク5: EBS外部参照の作成方法

EBS外部参照を作成する手順は、次のとおりです。

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

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

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

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

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

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

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

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

  6. 「接続」フィールドで、「DBConnection1」を選択します。

  7. 「JNDI名」フィールドに、eis/DB/DBConnection1と入力します。

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

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

  9. 「ストアド・プロシージャまたはファンクションの呼出し」を選択し、「次へ」をクリックします。

    「ストアド・プロシージャの指定」ページが表示されます。

  10. 「スキーマ」から「Scott」を選択します。

  11. 「参照」をクリックします。

    「ストアド・プロシージャ」ダイアログが表示されます。

  12. 図49-49に示すように、「POPULATE_APP_INSTANCE_IM」を選択します。

    図49-49 「ストアド・プロシージャ」ダイアログ

    図49-49の説明が続きます
    「図49-49 「ストアド・プロシージャ」ダイアログ」の説明

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

    図49-50に示すように、「ストアド・プロシージャの指定」ページが表示されます。

    図49-50 アダプタ構成ウィザードの「ストアド・プロシージャの指定」ページ

    図49-50の説明が続きます
    「図49-50 アダプタ構成ウィザードの「ストアド・プロシージャの指定」ページ」の説明

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

    「詳細オプション」ページが表示されます。

  15. 「次へ」をクリックします。「終了」ページが表示されます。

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

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

    図49-51 SOAコンポジット・エディタのEBS参照

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

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

49.9.1.6 タスク6: Loggerファイル・アダプタ外部参照の作成方法

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    図49-52 SOAコンポジット・エディタのLogger参照

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

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

49.9.1.7 タスク7: Oracle Mediatorサービス・コンポーネントの作成方法

Oracle Mediatorサービス・コンポーネントを作成する手順は、次のとおりです。

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

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

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

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

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

  4. 図49-53に示すように、「SAP」サービスを「Mediator2」に接続します。

    図49-53 SAPサービスのMediator2への接続

    図49-53の説明が続きます
    「図49-53 SAPサービスのMediator2への接続」の説明

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

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

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

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

  8. 「SOAPバインディングを持つコンポジット・サービスの作成」の選択を解除します。

  9. 「WSDLファイル」フィールドの右側にある「既存のWSDLを検索します。」をクリックします。

  10. Common.wsdlファイルに移動して選択します。Common.wsdlファイルは、Samplesフォルダにあります。

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

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

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

49.9.1.8 タスク8: Oracle Mediatorコンポーネントのルーティング・ルールの指定方法

次の操作のルーティング・ルールを指定する必要があります。

  • 挿入

  • 更新

挿入操作のルーティング・ルールを作成する手順は、次のとおりです。

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

    メディエータ・エディタが表示されます。

  2. 「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。

    「ターゲット・タイプ」ダイアログが表示されます。

  3. 「サービス」を選択します。

    「ターゲット・サービス」ダイアログが表示されます。

  4. 「XrefOrderApp」「メディエータ」「Common」「サービス」「Common」の順に移動します。

  5. 「insert」を選択し、「OK」をクリックします。

  6. 「フィルタ」アイコンをクリックします。

    「式ビルダー」ダイアログが表示されます。

  7. 「式」フィールドに、次の式を入力します。

    $in.Sap05Collection/top:Sap05Collection/top:Sap05/top:operation='INSERT'
    
  8. 「OK」をクリックします。

  9. 「トランスフォーメーションの使用」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。

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

  10. 「新規マッパー・ファイルの作成」を選択し、SAP_TO_COMMON_INSERT.xslと入力します。

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

    「SAP_TO_COMMON_INSERT.xsl」ファイルが表示されます。

  12. 「top:SAP05」ソース要素を「inp1:Order」ターゲット要素にドラッグ・アンド・ドロップします。

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

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

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

    図49-54に示すように、トランスフォーメーションが作成されます。

    図49-54 SAP_TO_COMMON_INSERT.xslトランスフォーメーション

    図49-54の説明が続きます
    「図49-54 SAP_TO_COMMON_INSERT.xslトランスフォーメーション」の説明

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

  16. 「XREF Functions」を選択します。

  17. 「コンポーネント・パレット」からtop:id要素とinp1:id要素を接続している線まで「populateXRefRow1M」関数をドラッグ・アンド・ドロップします。

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

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

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

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

  20. 「Order.xref」を選択し、「OK」をクリックします。

  21. 「referenceColumnName」フィールドで"SAP_05"と入力するか、または「検索」をクリックして列名を選択します。

  22. 「referenceValue」列に、/top:Sap05Collection/top:Sap05/top:idと入力します。

  23. 「columnName」フィールドで"Common"と入力するか、「検索」をクリックして列名を選択します。

  24. 「value」フィールドに、orcl:generate-guid()と入力します。

  25. 「mode」フィールドで"Add"と入力するか、「検索」をクリックして、このモードを選択します。

    図49-55は、移入後の「関数の編集 – populateXRefRow1M」ダイアログを示しています。

    図49-55 「関数の編集 – populateXRefRow1M」ダイアログ: XrefOrderAppユースケース

    図49-55の説明が続きます
    「図49-55 「関数の編集 – populateXRefRow1M」ダイアログ: XrefOrderAppユースケース」の説明

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

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

    図49-56に示すように、「ルーティング・ルール」セクションが表示されます。

    図49-56 挿入操作を行う「ルーティング・ルール」セクション

    図49-56の説明が続きます
    「図49-56 挿入操作を行う「ルーティング・ルール」セクション」の説明

更新操作のルーティング・ルールを作成する手順は、次のとおりです。

次のタスクを実行して、更新操作のルーティング・ルールを作成します。

  1. 「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。

    「ターゲット・タイプ」ダイアログが表示されます。

  2. 「サービス」を選択します。

    「ターゲット・サービス」ダイアログが表示されます。

  3. 「XrefOrderApp」「メディエータ」「Common」「サービス」「Common」の順に移動します。

  4. 「update」を選択し、「OK」をクリックします。

  5. 「フィルタ」アイコンをクリックします。

    「式ビルダー」ダイアログが表示されます。

  6. 「式」フィールドに、次の式を入力します。

    $in.Sap05Collection/top:Sap05Collection/top:Sap05/top:operation='UPDATE'
    
  7. 「OK」をクリックします。

  8. 「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。

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

  9. 「新規マッパー・ファイルの作成」を選択し、SAP_TO_COMMON_UPDATE.xslと入力します。

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

    「SAP_TO_COMMON_UPDATE.xsl」ファイルが表示されます。

  11. 「top:Sap05」ソース要素を「inp1:Order」ターゲット要素にドラッグ・アンド・ドロップします。

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

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

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

  14. 「XREF Functions」を選択します。

  15. 「コンポーネント・パレット」からtop:id要素とinp1:id要素を接続している線まで「lookupXRef」関数をドラッグ・アンド・ドロップします。

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

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

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

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

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

  19. 「referenceColumnName」フィールドで"SAP_05"と入力するか、または「検索」をクリックして列名を選択します。

  20. 「referenceValue」列に、/top:Sap05Collection/top:Sap05/top:idと入力します。

  21. 「columnName」フィールドで"COMMON"と入力するか、「検索」をクリックして列名を選択します。

  22. 「needException」フィールドでtrue()と入力するか、「検索」をクリックして、このモードを選択します。

    図49-57は、移入後の「関数の編集 – lookupXRef」ダイアログを示しています。

    図49-57 「関数の編集 – lookupXRef」ダイアログ: XRefOrderAppユースケース

    図49-57の説明が続きます
    「図49-57 「関数の編集 – lookupXRef」ダイアログ: XRefOrderAppユースケース」の説明

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

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

    図49-58に示すように、「ルーティング・ルール」セクションが表示されます。

    図49-58 挿入操作と更新操作

    図49-58の説明が続きます
    「図49-58 挿入操作と更新操作」の説明

49.9.1.9 タスク9: 「Common」Oracle Mediatorのルーティング・ルールの指定方法

「Common」Oracle Mediatorの次の操作についてルーティング・ルールを指定する必要があります。

  • 挿入

  • 更新

挿入操作のルーティング・ルールを作成する手順は、次のとおりです。

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

    メディエータ・エディタが表示されます。

  2. 「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。

    「ターゲット・タイプ」ダイアログが表示されます。

  3. 「サービス」を選択します。

    「ターゲット・サービス」ダイアログが表示されます。

  4. 「XrefOrderApp」「参照」「EBS」の順に移動します。

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

  6. 「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。

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

  7. 「新規マッパー・ファイルの作成」を選択し、COMMON_TO_EBS_INSERT.xslと入力します。

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

    「COMMON_TO_EBS_INSERT.xsl」ファイルが表示されます。

  9. 「inp1:Order」ソース要素を「db:InputParameters」ターゲット要素にドラッグ・アンド・ドロップします。

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

  10. 右側の「db:X_APP_INSTANCE」ノードの値をEBS_i75に設定します。

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

    図49-59に示すように、トランスフォーメーションが作成されます。

    図49-59 COMMON_TO_EBS_INSERT.xslトランスフォーメーション

    図49-59の説明が続きます
    「図49-59 COMMON_TO_EBS_INSERT.xslトランスフォーメーション」の説明

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

  12. 「同期リプライ」セクションで、「ターゲット・サービス操作を参照します。」をクリックします。

    「ターゲット・タイプ」ダイアログが表示されます。

  13. 「サービス」を選択します。

    「ターゲット・サービス」ダイアログが表示されます。

  14. 「XrefOrderApp」「参照」「Logger」の順に移動します。

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

  16. 「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。

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

  17. 「新規マッパー・ファイルの作成」を選択し、EBS_TO_COMMON_INSERT.xslと入力します。

  18. 「リクエストをリプライ・ペイロードに含める」を選択します。

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

    「EBS_TO_COMMON_INSERT.xsl」ファイルが表示されます。

  20. 「inp1:Order」ソース要素を「db:X:APP_ID」に接続します。

  21. 「コンポーネント・パレット」から接続線上に「populateXRefRow」関数をドラッグ・アンド・ドロップします。

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

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

  23. 表示されたフィールドに次の情報を入力します。

    • xrefLocation: order.xref

    • referenceColumnName: Common

    • referenceValue: $initial.Customers/inp1:Customers/inp1:Order/inp1:Id

    • columnName: EBS_75

    • value: /db:OutputParameters/db:X_APP_ID

    • mode: LINK

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

    図49-60に示すように、「EBS_TO_COMMON_INSERT.xsl」ファイルが表示されます。

    図49-60 EBS_TO_COMMON_INSERT.xslトランスフォーメーション

    図49-60の説明が続きます
    「図49-60 EBS_TO_COMMON_INSERT.xslトランスフォーメーション」の説明

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

  26. 「同期リプライ」セクションで、「値の割当て」アイコンをクリックします。

    「値の割当て」ダイアログが表示されます。

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

    「値の割当て」ダイアログが表示されます。

  28. 「From」セクションで、「式」を選択します。

  29. 「式ビルダーの起動」アイコンをクリックします。

    「式ビルダー」ダイアログが表示されます。

  30. 「式」フィールドに次の式を入力し、「OK」をクリックします。

    concat('INSERT-',$in.OutputParameters/db:OutputParameters/db:X_APP_ID,'.xml')
    
  31. 「To」セクションで、「プロパティ」を選択します。

  32. 「jca.file.FileName」プロパティを選択し、「OK」をクリックします。

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

    図49-61に示すように、「insert」操作セクションが表示されます。

    図49-61 EBSターゲット・サービスで行う挿入操作

    図49-61の説明が続きます
    「図49-61 EBSターゲット・サービスで行う挿入操作」の説明

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

更新操作のルーティング・ルールを作成する手順は、次のとおりです。

次のタスクを実行して、更新操作のルーティング・ルールを作成します。

  1. 「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。

    「ターゲット・タイプ」ダイアログが表示されます。

  2. 「サービス」を選択します。

    「ターゲット・サービス」ダイアログが表示されます。

  3. 「XrefOrderApp」「参照」「EBS」の順に移動します。

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

  5. 「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。

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

  6. 「新規マッパー・ファイルの作成」を選択し、COMMON_TO_EBS_UPDATE.xslと入力します。

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

    「COMMON_TO_EBS_UPDATE.xsl」ファイルが表示されます。

  8. 「inp1:Orders」ソース要素を「db:InputParameters」ターゲット要素にドラッグ・アンド・ドロップします。

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

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

    図49-39に示すように、トランスフォーメーションが作成されます。

  10. 「コンポーネント・パレット」からinp1:iddb:X_APP_IDを接続している線まで「lookupXRef」関数をドラッグ・アンド・ドロップします。

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

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

  12. 表示されたフィールドに次の情報を入力します。

    • xrefLocation: order.xref

    • referenceColumnName: Common

    • referenceValue: /inp1:Customers/inp1:Order/inp1:Id

    • columnName: EBS_i75

    • needException: true()

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

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

  15. 「同期リプライ」セクションで、「ターゲット・サービス操作を参照します。」をクリックします。

    「ターゲット・タイプ」ダイアログが表示されます。

  16. 「サービス」を選択します。

    「ターゲット・サービス」ダイアログが表示されます。

  17. 「XrefOrderApp」「参照」「Logger」の順に移動します。

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

  19. 「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。

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

  20. 「新規マッパー・ファイルの作成」を選択し、EBS_TO_COMMON_UPDATE.xslと入力します。

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

    「EBS_TO_COMMON_UPDATE.xsl」ファイルが表示されます。

  22. 「db:X:APP_ID」ソース要素を「db:X:APP_ID」に接続します。

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

  24. 「同期リプライ」セクションで、「値の割当て」アイコンをクリックします。

    「値の割当て」ダイアログが表示されます。

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

    「値の割当て」ダイアログが表示されます。

  26. 「From」セクションで、「式」を選択します。

  27. 「式ビルダーの起動」アイコンをクリックします。

    「式ビルダー」ダイアログが表示されます。

  28. 「式」フィールドに次の式を入力し、「OK」をクリックします。

    concat('UPDATE-',$in.OutputParameters/db:OutputParameters/db:X_APP_ID,'.xml')
    
  29. 「To」セクションで、「プロパティ」を選択します。

  30. 「jca.file.FileName」プロパティを選択し、「OK」をクリックします。

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

    図49-62に示すように、「update」操作セクションが表示されます。

    図49-62 EBSターゲット・サービスで行う更新操作

    図49-62の説明が続きます
    「図49-62 EBSターゲット・サービスで行う更新操作」の説明

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

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

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

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

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

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

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

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