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

戻る
戻る
 
次へ
次へ
 

47 相互参照の使用

この章では、Oracle SOA Suiteの相互参照機能を使用して、別のアプリケーションで作成された同等のエンティティの識別子を関連付ける方法を説明します。

項目は次のとおりです。

47.1 相互参照の概要

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


注意:

相互参照機能ではアプリケーション間の値を動的に統合できるのに対し、ドメイン値マップでは設計時に値を指定できます。 ドメイン値マップの詳細は、第46章「ドメイン値マップの使用」を参照してください。

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

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

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

SAP EBS SBL

SAP_001

EBS_1001

SBL001

SAP_002

EBS_1002

SBL002


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

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

SAP EBS SBL Common

SAP_001

EBS_1001

SBL001

CM001

SAP_002

EBS_1002

SBL002

CM002


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

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

図47-1の説明は次にあります。
「図47-1 共通値統合パターンの例」の説明

相互参照表は、メタデータと実際のデータという2つの部分で構成されています。 メタデータはOracle JDeveloperで作成された.xrefファイルで、XMLファイルとしてメタデータ・サービス(MDS)に格納されています。 実際のデータは、デフォルトでSOAインフラストラクチャ・データベース・スキーマにあるデータベースのXREF_DATA表に格納されます。

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

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

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

図47-2の説明は次にあります。
「図47-2 「式ビルダー」ダイアログに相互参照関数が表示されている状態」の説明

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

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

図47-3の説明は次にあります。
「図47-3 XSLTマッパー・ダイアログに相互参照関数が表示されている状態」の説明

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

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

47.2.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)の作成」ダイアログのサンプルは、図47-4に表示されています。

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

    図47-4の説明は次にあります。
    「図47-4 「相互参照(XREF)の作成」ダイアログ」の説明

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

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

    図47-5 相互参照エディタ

    図47-5の説明は次にあります。
    「図47-5 相互参照エディタ」の説明

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

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

例47-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>

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

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

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

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

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

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

47.3 相互参照表の移入

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


注意:

次の方法でデータ・ソースを構成することで、データを異なるデータベース・スキーマに格納することもできます。
  • データ・ソースのJNDI名をjdbc/xrefと指定します。

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


47.3.1 xref:populateXRefRow関数

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

表47-3 列に1つの値がある相互参照表

EBS Common SBL

E100

100

SBL_001


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を指定できます。 表47-4に、これらのモードを示します。

表47-4 xref:populateXRefRow関数のモード

モード 説明 例外の原因

ADD

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

たとえば、xref:populateXRefRow("customers.xref","EBS","EBS100", "Common","CM001","ADD")では、EBS参照列に参照値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パラメータ値には大/小文字区別があり、表47-4のように大文字のみで指定する必要があります。

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

表47-5 xref:populateXRefRow関数のモードと結果

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

ADD

なし

あり

あり

なし

なし

あり

成功

例外

例外

LINK

なし

あり

あり

なし

なし

あり

例外

成功

例外

UPDATE

なし

あり

あり

なし

なし

あり

例外

例外

成功


47.3.2 xref:populateXRefRow1M関数

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

表47-6 列に複数の値がある相互参照表

SAP EBS SBL

SAP_001

SAP_0011

EBS_1001

SBL001

SAP_002

EBS_1002

SBL002


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のいずれかの値を指定できます。 表47-7に、これらのモードを示します。

表47-7 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にリンクされます。

次の原因で例外が発生する可能性があります。

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

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

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

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

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


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

表47-8 xref:populateXRefRow1M関数のモードと結果

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

ADD

なし

あり

あり

なし

なし

あり

成功

例外

例外

LINK

なし

あり

あり

なし

なし

あり

例外

成功

例外


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

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

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

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

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

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

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

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

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

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

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

    図47-6の説明は次にあります。
    「図47-6 「関数の編集 – 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」をクリックします。

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

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

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

47.4 相互参照表の参照

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

47.4.1 xref:lookupXRef関数

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

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

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に設定されると、値が見つからない場合に例外がスローされ、そうでない場合は空の値が返されます。

例外の原因

実行時に、次の原因で例外が発生する可能性があります。

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

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

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

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

47.4.2 xref:lookupXRef1M関数

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

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

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

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に設定されると、参照値が見つからない場合に例外がスローされます。trueに設定されていない場合は、空のノードセットが返されます。

Siebel、Billing1およびBilling2の3つの列があるOrder表について考えてみます。

表47-9 Order表

Siebel Billing1 Billing2

100

101

102

110


111

112


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

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

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

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

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

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

例外の原因

次の原因で例外が発生する可能性があります。

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

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

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

47.4.3 xref:lookupPopulatedColumns関数

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

xref:LookupPopulatedColumns関数の構文は、次のとおりです。

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

パラメータ

  • xrefTableName: 参照表の名前。

  • xrefColumnName: 参照列の名前。

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

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

例外の原因

次の原因で例外が発生する可能性があります。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

47.5 相互参照表の値の削除

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

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


注意:

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

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

xref:markForDelete関数の構文は、次のとおりです。

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

パラメータ

例外の原因

次の原因で例外が発生する可能性があります。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

図47-12の説明は次にあります。
「図47-12 SOAコンポジット・エディタのXrefCustAppユースケース」の説明

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

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

47.6.1 ユースケースの作成手順

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

47.6.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ファイルとしてパッケージ化し、Weblogicコンソールを使用してそのRARファイルをデプロイします。

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

    • jndi-name=jdbc/DBConnection1

    • user=scott

    • password=tiger

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

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

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

    • jndi-name=jdbc/xref

    • user=scott

    • password=tiger

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

47.6.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を入力します。

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

    図47-13 顧客の相互参照

    図47-13の説明は次にあります。
    「図47-13 顧客の相互参照」の説明

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

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

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

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

    図47-14の説明は次にあります。
    「図47-14 「論理削除」ページ: アダプタ構成ウィザード」の説明

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

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

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

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

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

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

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

    図47-15に示すように、データベース・アダプタ・サービスSAPが作成されます。

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

    図47-15の説明は次にあります。
    「図47-15 SOAコンポジット・エディタのSAPデータベース・アダプタ・サービス」の説明

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

47.6.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. 図47-16に示すように、「POPULATE_APP_INSTANCE」を選択します。

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

    図47-16の説明は次にあります。
    「図47-16 「ストアド・プロシージャ」ダイアログ」の説明

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

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

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

    図47-17の説明は次にあります。
    「図47-17 アダプタ構成ウィザードの「ストアド・プロシージャの指定」ページ」の説明

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

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

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

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

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

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

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

  17. 手順2〜手順16を繰り返し、外部参照名SBLをもう1つ作成します。

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

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

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

47.6.1.6 タスク6: 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. 「終了」をクリックします。

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

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

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

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

47.6.1.7 タスク7: メディエータ・コンポーネントの作成

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

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

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

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

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

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

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

    図47-21 SAPサービスのMediator1への接続

    図47-21の説明は次にあります。
    「図47-21 SAPサービスのMediator1への接続」の説明

  5. 「すべて保存」をクリックします。

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

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

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

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

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

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

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

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

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

47.6.1.8 タスク8: メディエータ・コンポーネントのルーティング・ルールの指定

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

  • 挿入

  • 更新

  • ID更新

  • 削除

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

  1. Mediator1メディエータをダブルクリックします。

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

  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」をクリックします。

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

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

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

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

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

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

    図47-22 SAP_TO_COMMON_INSERT.xslトランスフォーメーション

    図47-22の説明は次にあります。
    「図47-22 SAP_TO_COMMON_INSERT.xslトランスフォーメーション」の説明

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

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

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

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

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

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

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

  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と入力するか、「検索」をクリックして、このモードを選択します。

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

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

    図47-23の説明は次にあります。
    「図47-23 「関数の編集 – populateXRefRow」ダイアログ: XrefCustAppユースケース」の説明

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

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

    図47-24に示すように、「ルーティング・ルール」パネルが表示されます。

    図47-24 挿入操作を行う「ルーティング・ルール」パネル

    図47-24の説明は次にあります。
    「図47-24 挿入操作を行う「ルーティング・ルール」パネル」の説明

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

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

  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」フィールドの右側にある「検索」をクリックします。

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

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

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

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

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

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

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

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

    図47-25の説明は次にあります。
    「図47-25 「関数の編集 – lookupXRef」ダイアログ: XrefCustAppユースケース」の説明

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

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

    図47-26に示すように、「ルーティング・ルール」パネルが表示されます。

    図47-26 挿入操作と更新操作

    図47-26の説明は次にあります。
    「図47-26 挿入操作と更新操作」の説明

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」フィールドの右側にある「検索」をクリックします。

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

  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と入力するか、「検索」をクリックして、このモードを選択します。

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

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

    図47-27の説明は次にあります。
    「図47-27 「関数の編集 – populateXRefRow」ダイアログ: XrefCustAppユースケース」の説明

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

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

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

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

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

  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()と入力するか、「検索」をクリックして、このモードを選択します。

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

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

    図47-28の説明は次にあります。
    「図47-28 「関数の編集 – lookupXRef」ダイアログ: XrefCustAppユースケース」の説明

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

  33. 「すべて保存」をクリックして、「SAP_TO_COMMON_UPDATEID.xsl」ウィンドウを閉じます。

    図47-29に示すように、「ルーティング・ルール」パネルが表示されます。

    図47-29 挿入操作、更新操作およびID更新操作

    図47-29の説明は次にあります。
    「図47-29 挿入操作、更新操作および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」フィールドの右側にある「検索」をクリックします。

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

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

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

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

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

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

    図47-30の説明は次にあります。
    「図47-30 「関数の編集 – markForDelete」ダイアログ: XrefCustAppユースケース」の説明

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

    図47-31に示すように、「SAP_TO_COMMON_DELETE.xsl」が表示されます。

    図47-31 SAP_TO_COMMON_DELETE.xsl

    図47-31の説明は次にあります。
    「図47-31 SAP_TO_COMMON_DELETE.xsl」の説明

  32. 「すべて保存」をクリックし、「SAP_TO_COMMON_DELETE.xsl」タブを閉じます。

    図47-32に示すように、「ルーティング・ルール」パネルが表示されます。

    図47-32 挿入操作、更新操作、ID更新操作および削除操作

    図47-32の説明は次にあります。
    「図47-32 挿入操作、更新操作、ID更新操作および削除操作」の説明

47.6.1.9 タスク9: Commonメディエータのルーティング・ルールの指定

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

  • 挿入

  • 削除

  • 更新

  • ID更新

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

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

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

  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」をクリックします。

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

    図47-33 COMMON_TO_SBL_INSERT.xslトランスフォーメーション

    図47-33の説明は次にあります。
    「図47-33 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」をクリックします。

    図47-34に示すように、「SBL_TO_COMMON_INSERT.xsl」が表示されます。

    図47-34 SBL_TO_COMMON_INSERT.xslトランスフォーメーション

    図47-34の説明は次にあります。
    「図47-34 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」をクリックします。

    図47-35に示すように、insert操作パネルが表示されます。

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

    図47-35の説明は次にあります。
    「図47-35 SBLターゲット・サービスで行う挿入操作」の説明

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

  35. 手順2〜手順34を繰り返し、その他のターゲット・サービスEBSおよびそのルーティング・ルールを指定します。

    図47-36に、SBLおよびEBSターゲット・サービスのinsert操作パネルを示します。

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

    図47-36の説明は次にあります。
    「図47-36 SBLターゲット・サービスとEBSターゲット・サービスで行う挿入操作」の説明

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

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

  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」をクリックします。

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

    図47-37 COMMON_TO_SBL_DELETE.xslトランスフォーメーション

    図47-37の説明は次にあります。
    「図47-37 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」をクリックします。

    図47-38に示すように、delete操作パネルが表示されます。

    図47-38 SBLターゲット・サービスで行う削除操作

    図47-38の説明は次にあります。
    「図47-38 SBLターゲット・サービスで行う削除操作」の説明

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

  37. 手順1〜手順36を繰り返し、その他のターゲット・サービスEBSやルーティング・ルールを指定します。

    図47-39に、SBLおよびEBSターゲット・サービスのdelete操作パネルを示します。

    図47-39 SBLターゲット・サービスとEBSターゲット・サービスで行う削除操作

    図47-39の説明は次にあります。
    「図47-39 SBLターゲット・サービスとEBSターゲット・サービスで行う削除操作」の説明

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

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

  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」をクリックします。

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

  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」をクリックします。

    図47-40に示すように、update操作パネルが表示されます。

    図47-40 SBLターゲット・サービスで行う更新操作

    図47-40の説明は次にあります。
    「図47-40 SBLターゲット・サービスで行う更新操作」の説明

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

  33. 手順1〜手順32を繰り返し、その他のターゲット・サービスEBSおよびそのルーティング・ルールを指定します。

    図47-41に、SBLおよびEBSターゲット・サービスのupdate操作パネルを示します。

    図47-41 SBLターゲット・サービスとEBSターゲット・サービスで行う更新操作

    図47-41の説明は次にあります。
    「図47-41 SBLターゲット・サービスとEBSターゲット・サービスで行う更新操作」の説明

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

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

  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」をクリックします。

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

  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」をクリックします。

    図47-42に示すように、updateid操作パネルが表示されます。

    図47-42 SBLターゲット・サービスで行うID更新操作

    図47-42の説明は次にあります。
    「図47-42 SBLターゲット・サービスで行うID更新操作」の説明

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

  37. 手順1〜手順36を繰り返し、その他のターゲット・サービスEBSやルーティング・ルールを指定します。

    図47-43に、SBLおよびEBSターゲット・サービスのupdateid操作パネルを示します。

    図47-43 SBLターゲット・サービスとEBSターゲット・サービスで行うID更新操作

    図47-43の説明は次にあります。
    「図47-43 SBLターゲット・サービスとEBSターゲット・サービスで行うID更新操作」の説明

47.6.1.10 タスク10: Oracle Application Server接続の構成

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

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

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

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

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

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

47.6.2 XrefCustAppアプリケーションの実行と監視

デプロイしたXrefCustAppアプリケーションは、XrefCustApp/sqlフォルダのinsert_sap_record.sqlファイルから任意のコマンドを使用することで実行できます。正常に完了すると、レコードがEBSおよびSBL表に挿入および更新され、Logger参照がoutput.xmlファイルに出力を書き出します。

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

http://hostname:portnumber/em

ここで、hostnameは、Oracle SOA Suiteインフラストラクチャをインストールしたホストです。portnumberはサービスを実行するポートです。

47.7 1M関数の相互参照の作成および実行

相互参照ユースケースは、2つのエンド・システム(Oracle EBSインスタンスおよびSAPインスタンス)間の統合シナリオを実装します。このユースケースでは、注文はSAPからEBSに渡されます。SAPでは注文は一意のIDで表されますが、EBSではこの注文がID1とID2の2つの注文に分割されます。 このシナリオはデータベース・アダプタを使用して作成されます。SAP表の更新レコードまたは新規レコードをポーリングすると、SAPインスタンスが作成されます。EBSでは、このインスタンスがプロシージャによってシミュレートされ、表に移入されます。 図47-44に、このユースケースの概要を示します。

図47-44 SOAコンポジット・エディタのXrefOrderAppユースケース

図47-44の説明は次にあります。
「図47-44 SOAコンポジット・エディタのXrefOrderAppユースケース」の説明

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

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

47.7.1 ユースケースの作成手順

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

47.7.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/src/oracle/tip/adapter/db/test/deploy/weblogic/META-INFフォルダにあるweblogic-ra.xmlファイルを、SOAアプリケーションに使用しているADEラベルから次のように編集します。

    • 次のように、プロパティを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ファイルとしてパッケージ化し、Weblogicコンソールを使用してそのRARファイルをデプロイします。

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

    • jndi-name=jdbc/DBConnection1

    • user=scott

    • password=tiger

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

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

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

    • jndi-name=jdbc/xref

    • user=scott

    • password=tiger

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

47.7.1.3 タスク3: 相互参照の作成

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

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

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

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

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

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

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

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

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

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

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

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

  8. エンド・システム名としてCOMMONと入力します。

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

    図47-45 顧客の相互参照

    図47-45の説明は次にあります。
    「図47-45 顧客の相互参照」の説明

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

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

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

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

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

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

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

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

    「詳細オプション」ページが表示されます。

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

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

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

    図47-46に示すように、データベース・アダプタ・サービスSAPが作成されます。

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

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

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

47.7.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. 図47-47に示すように、「POPULATE_APP_INSTANCE_IM」を選択します。

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

    図47-47の説明は次にあります。
    「図47-47 「ストアド・プロシージャ」ダイアログ」の説明

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

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

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

    図47-48の説明は次にあります。
    「図47-48 アダプタ構成ウィザードの「ストアド・プロシージャの指定」ページ」の説明

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

    「詳細オプション」ページが表示されます。

  15. 「次へ」をクリックします。「終了」ページが表示されます。

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

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

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

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

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

47.7.1.6 タスク6: 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. 「終了」をクリックします。

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

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

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

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

47.7.1.7 タスク7: メディエータ・コンポーネントの作成

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

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

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

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

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

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

  4. 図47-51に示すように、「SAP」サービスを「Mediator2」に接続します。

    図47-51 SAPサービスのMediator2への接続

    図47-51の説明は次にあります。
    「図47-51 SAPサービスのMediator2への接続」の説明

  5. 「すべて保存」をクリックします。

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

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

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

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

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

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

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

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

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

47.7.1.8 タスク8: メディエータ・コンポーネントのルーティング・ルールの指定

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

  • 挿入

  • 更新

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

  1. Mediator2メディエータをダブルクリックします。

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

  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」をクリックします。

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

    図47-52 SAP_TO_COMMON_INSERT.xslトランスフォーメーション

    図47-52の説明は次にあります。
    「図47-52 SAP_TO_COMMON_INSERT.xslトランスフォーメーション」の説明

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

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

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

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

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

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

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

  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と入力するか、「検索」をクリックして、このモードを選択します。

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

    図47-53 「関数の編集 – populateXRefRow1M」ダイアログ: XrefOrderAppユースケース

    図47-53の説明は次にあります。
    「図47-53 「関数の編集 – populateXRefRow1M」ダイアログ: XrefOrderAppユースケース」の説明

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

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

    図47-54に示すように、「ルーティング・ルール」パネルが表示されます。

    図47-54 挿入操作を行う「ルーティング・ルール」パネル

    図47-54の説明は次にあります。
    「図47-54 挿入操作を行う「ルーティング・ルール」パネル」の説明

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

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

  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」フィールドの右側にある「検索」をクリックします。

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

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

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

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

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

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

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

    図47-55 「関数の編集 – lookupXRef」ダイアログ: XRefOrderAppユースケース

    図47-55の説明は次にあります。
    「図47-55 「関数の編集 – lookupXRef」ダイアログ: XRefOrderAppユースケース」の説明

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

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

    図47-56に示すように、「ルーティング・ルール」パネルが表示されます。

    図47-56 挿入操作と更新操作

    図47-56の説明は次にあります。
    「図47-56 挿入操作と更新操作」の説明

47.7.1.9 タスク9: Commonメディエータのルーティング・ルールの指定

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

  • 挿入

  • 更新

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

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

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

  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」をクリックします。

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

    図47-57 COMMON_TO_EBS_INSERT.xslトランスフォーメーション

    図47-57の説明は次にあります。
    「図47-57 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」をクリックします。

    「AN 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」をクリックします。

    図47-58に示すように、「EBS_TO_COMMON_INSERT.xsl」が表示されます。

    図47-58 EBS_TO_COMMON_INSERT.xslトランスフォーメーション

    図47-58の説明は次にあります。
    「図47-58 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」をクリックします。

    図47-59に示すように、insert操作パネルが表示されます。

    図47-59 EBSターゲット・サービスで行う挿入操作

    図47-59の説明は次にあります。
    「図47-59 EBSターゲット・サービスで行う挿入操作」の説明

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

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

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

  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」をクリックします。

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

  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」をクリックします。

    図47-60に示すように、update操作パネルが表示されます。

    図47-60 EBSターゲット・サービスで行う更新操作

    図47-60の説明は次にあります。
    「図47-60 EBSターゲット・サービスで行う更新操作」の説明

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

47.7.1.10 タスク10: Oracle Application Server接続の構成

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

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

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

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

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

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