この章の内容は次のとおりです。
相互参照を使用すると、別のアプリケーションで作成された同等のエンティティの値を動的にマップできます。
注意:
相互参照機能ではアプリケーション間の値を動的に統合できるのに対し、ドメイン値マップでは設計時に値を指定して実行時に値を編集できます。ドメイン値マップの詳細は、「ドメイン値マップの使用」および「ドメイン値マップでのOracle SOAコンポーザの使用」を参照してください。
あるアプリケーションでオブジェクトを作成または更新した場合は、その変更内容を別のアプリケーションにも伝播させる必要があります。たとえば、SAPアプリケーションで新規顧客が作成された場合、同じ顧客に関するエントリをOracle E-Business Suiteアプリケーション(EBS)でも作成する場合があります。ただし、統合対象の各アプリケーションでは、同じ情報の表現に異なるエンティティを使用している可能性があります。たとえば、SAPアプリケーションでの新規顧客の場合、Customer
データベースにはSAP_001
などの一意IDとともに新規の1行が挿入されます。この情報がOracle E-Business SuiteアプリケーションとSiebelアプリケーションに伝播するときには、EBS_1001
やSBL001
などの異なるIDとともに新規の1行が挿入される必要があります。このような場合、異なるアプリケーションで同一エンティティを参照するIDとして解釈できるように、各IDを相互にマップするなんらかの機能が必要になります。相互参照を使用すると、このマッピングを実行できます。
相互参照は表形式で保存されます。表43-1 に、様々なアプリケーションの顧客IDに関する情報を含む相互参照表を示します。
表43-1 相互参照表サンプル
SAP | EBS | SBL |
---|---|---|
|
|
|
|
|
|
あるアプリケーションで顧客情報が更新され、変更内容を他のアプリケーションに伝播させる必要がある場合にも、IDマッピングが必要になります。異なるIDを統合するには、相互参照表の全IDにマップする共通値統合パターンを使用する方法があります。たとえば、表43-1 の相互参照表に、さらにCommon
という1列を追加できます。その後、更新された相互参照表は、表43-2 のように表示されます。
表43-2 Common列が追加された相互参照表
SAP | EBS | SBL | 共通 |
---|---|---|---|
|
|
|
|
|
|
|
|
図43-1 に、共通値統合パターンを使用して様々なアプリケーションのIDをマップする方法を示します。
相互参照表は、メタデータと実際のデータという2つの部分で構成されています。メタデータはOracle JDeveloperで作成された.xref
ファイルとして保存され、XMLファイルとしてメタデータ・サービス(MDS)リポジトリに格納されています。実際のデータは、デフォルトでSOAインフラストラクチャ・データベース・スキーマにあるデータベースのXREF_DATA
表に格納されます。相互参照エンティティごとにカスタム・データベース表を生成することもできます。データベース表は、相互参照エンティティのメタデータによって異なります。
次の2つの相互参照エンティティを考えてみます。
表43-3 ORDER表
列名 | SIEBEL | COMMON | EBS |
---|---|---|---|
|
|
|
|
|
|
|
表43-4 CUSTOMER表
列名 | EBS | COMMON | PORTAL |
---|---|---|---|
|
|
|
|
1つの汎用表にすべてのランタイム・データを保存するように選択すると、表43-5 に示すように、データはXREF_DATA
コード表に保存されます。
表43-5 XREF_DATA表
XREF_TABLE_NAME | XREF_COLUMN_NAME | ROW_NUMBER | VALUE | IS_DELETED |
---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
このアプローチには、次のメリットがあります。
相互参照エンティティの列を追加、削除および変更するプロセスが単純です。
アプリケーションに対して相互参照エンティティを作成および削除するプロセスが明快です。
一方、このアプローチには次のデメリットがあります。
各相互参照セルはデータベースの異なる行にマップされるため、データベースに多数の行が生成されます。そのため、問合せのパフォーマンスが低下します。
汎用表では、XREF_TABLE_NAME
列およびXREF_COLUMN_NAME
列のデータが多数の行で繰り返されます。
これらの問題を解決するために、相互参照エンティティごとにカスタム・データベース表を生成できます。カスタム・データベース表は、相互参照エンティティのメタデータによって異なります。たとえば、XREF_ORDER
表およびXREF_CUSTOMER
表には、表43-6 および表43-7 に示すようなカスタム・データベース表を生成できます。
表43-6 XREF_ORDER表
ROW_ID | SIEBEL | COMMON | EBS |
---|---|---|---|
|
|
|
|
|
|
|
表43-7 XREF_CUSTOMER表
ROW_ID | EBS | COMMON | PORTAL |
---|---|---|---|
|
|
|
|
このアプローチでは、データ定義言語(DDL)スクリプトを実行してカスタム・データベース表を生成する必要があります。カスタム・データベース表の詳細は、「カスタム・データベース表の作成方法」を参照してください。
Oracle Data Integrator (ODI)はE-LT(抽出、ロード、変換)モデルを使用してデータ統合を実現します。ODIを使用して、相互参照のニーズに役立てることができます。ODIには、次の機能を実行するSOA相互参照を処理するための3つのナレッジ・モジュールが用意されています。相互参照表の移入、ターゲット表の共通IDの作成、相互参照表への共通IDおよびソース主キーのプッシュ、およびソース主キーと共通ID間の相互参照を作成する一意の行番号の作成とプッシュ。モジュールを使用して、複数のソース表からターゲット表へのロードと、ソースの1つとターゲットとの間の相互参照の処理の両方を行う統合インタフェースを作成できます。
ODIおよび相互参照の詳細は、『Oracle Fusion Middleware Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』のOracle SOA Suiteの相互参照に関する項を参照してください。
相互参照表はSOAコンポジット・アプリケーションで作成し、トランスフォーメーション中にBPELプロセス・サービス・コンポーネントまたはOracle Mediatorサービス・コンポーネントで使用できます。
注意:
また、Service Busプロジェクトに相互参照表を作成し、トランスフォーメーション中にそれをメッセージ・フローで使用できます。
拡張子.xref
の付いたファイルが作成され、「アプリケーション」ウィンドウに表示されます。すべての.xref
ファイルは、次の例に示すスキーマ定義(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>
前述されているように、すべてのランタイム・データはデフォルトでXREF_DATA
表に格納されます。カスタム・データベース表を作成する場合は、次の手順を実行します。
カスタム・データベース表を作成する手順は、次のとおりです。
カスタム・データベース表では、mode
およびdbtable
の2つの追加の属性が、「相互参照作成時の処理内容」に記載されているスキーマ定義に追加されます。これらの属性は、次のように記述されてtable
要素に追加されます。
<attribute name="mode" type="string" default="generic" /> <attribute name="dbtable" type="string" default="xref_data"/>
Oracle JDeveloperのSOAコンポジット・アプリケーションで相互参照表を作成し、これを使用して実行時に列の値を参照できます。ただし、相互参照を使用して特定の値を参照するには、実行時に相互参照を移入する必要があります。相互参照表は、相互参照XPath関数を使用して移入できます。XPath関数を使用すると、相互参照列の移入、参照の実行および列の値の削除ができます。これらのXPath関数を「式ビルダー」ダイアログで使用して式を作成するか、またはXSLTマッパーで使用してトランスフォーメーションを作成できます。たとえば、xref:populateXRefRow
関数を使用して1つの値を相互参照列に移入するか、またはxref:populateXRefRow1M
関数を使用して複数の値を相互参照列に移入できます。
「式ビルダー」ダイアログには、BPELプロセス・サービス・コンポーネントまたはOracle Mediatorサービス・コンポーネントのassignアクティビティ、XSLトランスフォーメーションまたはフィルタ機能からアクセスできます。図43-6 に、「式ビルダー」ダイアログで相互参照関数を選択する様子を示します。
XSLTマッパーは、XSLファイルを作成してXMLスキーマ間でデータを変換するときに表示されます。図43-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
表を作成します。
xref:populateXRefRow
関数では、1つの値が相互参照列に移入されます。このxref:populateXRefRow
関数では、移入対象の相互参照値である文字列値が返されます。たとえば、表43-8 に示すOrder
表には、EBS
、Common
およびSBL
という列があり、各列の値はそれぞれE100
、100
およびSBL_001
です。
表43-8 列に1つの値がある相互参照表
EBS | 共通 | SBL |
---|---|---|
|
|
|
注意:
この関数の使用時に同時性の問題がある場合は、populateLookupXRefRow
関数を使用することもできます。populateLookupXRefRow
関数は、同時更新が行われ、一意制約の違反が発生する場合にのみ使用する必要があります。この関数については、「xref:populateLookupXRefRow関数」で説明しています。
次の例は、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
関数の列移入モード。値ADD
、LINK
またはUPDATE
を指定できます。表43-9 に、これらのモードを示します。
表43-9 xref:populateXRefRow関数のモード
モード | 説明 | 例外の原因 |
---|---|---|
|
参照値と追加対象の値を追加します。 たとえば、次のモードを考えてみます。 xref:populateXRefRow("customers.xref" ,"EBS","EBS100", "Common","CM001", "ADD") この場合、E |
次の理由により、例外が発生する可能性があります。
|
|
既存の参照値に対応する相互参照値を追加します。 たとえば、次のモードを考えてみます。 xref:populateXRefRow("customers.xref" ,"Common","CM001","SBL","SBL_ 001","LINK") この場合、 |
次の理由により、例外が発生する可能性があります。
|
|
既存の参照列と値のペアに対応する相互参照値を更新します。 たとえば、次のモードを考えてみます。 xref:populateXRefRow("customers.xref" ,"SBL","SBL_001", "SBL","SBL_ 1001","UPDATE") この場合、 |
次の理由により、例外が発生する可能性があります。
|
注意:
modeパラメータ値には大/小文字区別があり、表43-9 のように大文字のみで指定する必要があります。
表43-10 に、xref:populateXRefRow
関数のモードと各モードの例外条件を示します。
表43-10 xref:populateXRefRow関数のモードと結果
モード | 参照値 | 追加される値 | 結果 |
---|---|---|---|
|
|
|
正常終了 例外 例外 |
|
|
|
例外 正常終了 例外 |
|
|
|
例外 例外 正常終了 |
xref:populateXRefRow
関数と同様に、xref:populateLookupXRefRow
関数では相互参照列に単一の値が移入されます。xref:populateXRefRow
関数とは異なり、xref:populateLookupXRefRow
関数では、同じIDのレコードが同時に追加されたときに一意制約の違反エラーはスローされません。かわりに、ルックアップとして動作してエラーの原因となった既存のソース値を返し、処理フローを停止しません。xref:populateXRefRow
関数の使用時に発生する可能性がある同時性の問題を解決するには、この関数を使用します。
xref:populateLookupXRefRow
関数は文字列値を返します。この文字列値は、移入される相互参照値か、または一意制約の違反がある場合は、最初にコミットされたスレッドによってすでに移入されている相互参照値になります。たとえば、表43-8 に示すXREF_CUSTOMER_DATA
表には、EBS
、Common
および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")
表43-11 に示すように表に移入されます。スレッド1が最初にコミットされるため、スレッド2はコール元に「CM001」を返します。
表43-11 xref:populateLookupXRefRowによって移入される相互参照表
EBS | 共通 | SBL |
---|---|---|
|
|
次の例は、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
を指定できます。表43-10 に、これらのモードと各モードの例外条件を示します。
注意:
modeパラメータ値には大/小文字区別があり、大文字のみで指定する必要があります。
表43-12 xref:populateLookupXRefRow関数のモードと結果
モード | 参照値 | 追加される値 | 結果 |
---|---|---|---|
|
|
|
正常終了 例外(例外が一意制約違反の場合にのみ成功) 例外(例外が一意制約違反の場合にのみ成功) |
|
|
|
例外 正常終了 例外 |
使用上の注意
カスタム表の方法を使用する場合は、相互参照表で一意であることが必要な列に対して、主制約を追加する必要があります。表43-11 を例として使用すると、SQL文は次のようになります。
alter table xref_customer_data add constraint xref_vnx_data_pk primary key (common, ebs);
最初に主制約列に移入してから、後続のコールで残りの列に移入します。
データの非一貫性の問題が隠される可能性があるため、プライマリ・オブジェクトの相互参照を追加するためにこの関数を使用しないでください。主要な依存オブジェクトに対するセカンダリ・オブジェクトにのみこの関数を使用します。たとえば、顧客アカウントを作成する際にアカウントがすでに存在するかどうかを確認するためにこの関数を使用しないでください。これらの顧客アカウントの住所が同期されている場合に使用してください。
あるエンド・システム内の2つの値を、別のシステム内の1つの値に対応付けることができます。このようなシナリオでは、xref:populateXRefRow1M
関数を使用して相互参照列に値を移入する必要があります。たとえば、表43-13 に示すように、SAP_001
およびSAP_0011
の値でEBS
およびSBL
アプリケーションの1つの値を参照します。SAP
などの列を移入するには、xref:populateXRefRow1M
関数を使用できます。
表43-13 列に複数の値がある相互参照表
SAP | EBS | SBL |
---|---|---|
|
|
|
|
|
|
次の例は、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
のいずれかの値を指定できます。表43-14 に、これらのモードを示します。
表43-14 xref:populateXRefRow1M関数のモード
モード | 説明 | 例外の原因 |
---|---|---|
|
参照値と追加対象の値を追加します。 たとえば、次のモードを考えてみます。 xref:populateXRefRow1M("customers.xref"," EBS","EBS_1002", "SAP","SAP_0011","ADD") この場合、 |
次の理由により、例外が発生する可能性があります。
|
|
既存の参照値に対応する相互参照値を追加します。 たとえば、次のモードを考えてみます。 xref:populateXRefRow1M("customers.xref"," EBS","EBS_1002", "SAP","SAP_002","LINK") この場合、 |
次の理由により、例外が発生する可能性があります。
|
表43-15 に、xref:populateXRefRow1M
関数のモードと各モードの例外条件を示します。
表43-15 xref:populateXRefRow1M関数のモードと結果
モード | 参照値 | 追加される値 | 結果 |
---|---|---|---|
|
|
|
正常終了 例外 例外 |
|
|
|
例外 正常終了 例外 |
相互参照表に1列を移入する手順は、次のとおりです。
XSLTマッパーで、「ソース」および「ターゲット」ペインのツリーを開きます。
ソース要素をターゲット要素にドラッグ・アンド・ドロップします。
「コンポーネント」ウィンドウで、「詳細」を選択します。
「XREF関数」を選択します。
ソース・オブジェクトをターゲット・オブジェクトに接続している線に、「populateXRefRow」関数をドラッグ・アンド・ドロップします。
接続線上に「populateXRefRow」アイコンが表示されます。
「populateXRefRow」アイコンをダブルクリックします。
図43-8 に示すように、「関数の編集 – populateXRefRow」ダイアログが表示されます。
「関数の編集 – populateXRefRow」ダイアログの各フィールドで、次の値を指定します。
「xrefLocation」フィールドに、相互参照ファイルのロケーションURIを入力します。
「xrefLocation」フィールドの右側にある「参照」をクリックして、相互参照ファイルを選択します。「リソース・パレット」を使用して、MDSおよびMDSの共有ロケーションからもすでにデプロイした相互参照を選択できます。
「referenceColumnName」フィールドに、相互参照列の名前を入力します。
「referenceColumnName」フィールドの右側にある「参照」をクリックして、以前に選択した相互参照に定義されている列から列名を選択できます。
「referenceValue」フィールドでは、値を手動で入力するか、[Ctrl]キーを押しながら[Space]キーを押してXPathビルディング・アシスタントを起動できます。上へ移動および下へ移動するキーを押して、リスト内のオブジェクトを配置し、[Enter]キーを押してそのオブジェクトを選択します。
「columnName」フィールドに、相互参照列の名前を入力します。
「columnName」フィールドの右側にある「参照」をクリックして、以前に選択した相互参照に定義されている列から列名を選択できます。
「value」フィールドでは、値を手動で入力するか、[Ctrl]キーを押しながら[Space]キーを押してXPathビルディング・アシスタントを起動できます。
「mode」フィールドに、相互参照表の列を移入する際のモードを入力します。たとえば、ADD
と入力します。
「参照」をクリックしてモードを選択することもできます。モードを選択できる「移入モードの選択」ダイアログが表示されます。
「OK」をクリックします。
図43-9 に、移入後の「関数の編集 – populateXRefRow」ダイアログを示します。
移入後の相互参照表を使用して、値を参照できます。xref:lookupXRef
およびxref:lookupXRef1M
関数を使用すると、1つおよび複数の値の相互参照をそれぞれ参照できます。
xref:lookupXRef
関数を使用すると、参照列の値に対応する値を相互参照列で参照できます。たとえば、次の関数では、表43-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
に設定されると、値が見つからない場合に例外がスローされます。そうでない場合は、空の値が返されます。
例外の原因
実行時に、次の理由で例外が発生することがあります。
指定された名前の相互参照表が見つからない。
指定された列名が見つからない。
指定された参照値が空である。
複数の値が見つかった。
xref:lookupXRef1M
関数を使用すると、参照列の値に対応する複数の値を相互参照列で参照できます。xref:lookupXRef1M
関数では、複数のノードを含んだノードセットが返されます。ノードセット内の各ノードに値が含まれています。
たとえば、次の関数では、表43-13 のSAP
列で、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
に設定されると、参照値が見つからない場合に例外がスローされます。そうでない場合は、空のノードセットが返されます。
xref:lookupXRefRow1M関数の例
表43-16 に示すように、Siebel
、Billing1
およびBilling2
の3つの列があるOrder
表について考えてみます。
表43-16 Order表
Siebel | Billing1 | Billing2 |
---|---|---|
|
|
|
|
|
1対1マッピングの場合、xref:lookupPopulatedColumns("Order","Siebel","100","false")
メソッドは、次の例に示す値を返します。
<column name="BILLING1">101</column> <column name="BILLING2">102</column>
この場合は、Billing1
とBilling2
の両方の列が移入されます。
1対多マッピングの場合、xref:lookupPopulatedColumns("Order","Siebel","110","false")
メソッドは、次の例に示す値を返します。
<column name="BILLING2">111</column> <column name="BILLING2">112</column>
この場合、Billing1
列は移入されません。
例外の原因
次の理由により、例外が発生する可能性があります。
指定された名前の相互参照表が見つからない。
指定された列名が見つからない。
指定された参照値が空である。
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
に設定されると、参照列に値が見つからない場合に例外がスローされます。そうでない場合は、空のノードセットが返されます。
例外の原因
次の理由により、例外が発生する可能性があります。
指定された名前の相互参照表が見つからない。
指定された列名が見つからない。
指定された参照値が空である。
相互参照表列を参照する手順は、次のとおりです。
XSLTマッパーで、「ソース」および「ターゲット」ペインのツリーを開きます。
ソース要素をターゲット要素にドラッグ・アンド・ドロップします。
「コンポーネント」ウィンドウで、「詳細」を選択します。
「XREF関数」を選択します。
ソース・オブジェクトをターゲット・オブジェクトに接続している線に、「lookupXRef」関数をドラッグ・アンド・ドロップします。
接続線上に「lookupXRef」アイコンが表示されます。
「lookupXRef」アイコンをダブルクリックします。
図43-10 に示すように、「関数の編集 – lookupXRef」ダイアログが表示されます。
「関数の編集 – lookupXRef」ダイアログのフィールドで、次の値を指定します。
「xrefLocation」フィールドに、相互参照ファイルのロケーションURIを入力します。
「xrefLocation」フィールドの右側にある「参照」をクリックして、相互参照ファイルを選択します。「リソース・パレット」を使用して、MDSおよびMDSの共有ロケーションからもすでにデプロイされた相互参照を選択できます。
「referenceColumnName」フィールドに、相互参照列の名前を入力します。
「referenceColumnName」フィールドの右側にある「参照」をクリックして、以前に選択した相互参照に定義されている列から列名を選択できます。
「referenceValue」フィールドでは、値を手動で入力するか、[Ctrl]キーを押しながら[Space]キーを押してXPathビルディング・アシスタントを使用できます。上へ移動および下へ移動するキーを押して、リスト内のオブジェクトを配置し、[Enter]キーを押してそのオブジェクトを選択します。
「columnName」フィールドに、相互参照列の名前を入力します。
「columnName」フィールドの右側にある「参照」をクリックして、以前に選択した相互参照に定義されている列から列名を選択できます。
「needException」フィールドの右側にある「参照」をクリックします。「例外が必要」ダイアログが表示されます。値が見つからない場合に例外が発生するように指定するには、「はい」を選択します。それ以外の場合は「いいえ」を選択します。
「OK」をクリックします。
図43-11 に、移入後の「関数の編集 – lookupXRef」ダイアログを示します。
xref:markForDelete
関数を使用すると、相互参照表の値を削除できます。関数に渡された列値を含む行は、XREF_DATA
表から削除され、XREF_DELETED_DATA
表に移動されます。削除に成功すると、true
を返します。それ以外は、false
を返します。
相互参照表行には最低2つのマッピングが必要です。1行に存在するマッピングが2つのみの場合、一方の値に削除マークを付けると、他方の列の値も削除されます。
次の例は、xref:markForDelete
関数の構文を示しています。
xref:markForDelete(xrefTableName as string, xrefColumnName as string, xrefValueToDelete as string) return as boolean
パラメータ
xrefTableName
: 相互参照表の名前。
xrefColumnName
: 削除対象の値を含む列の名前。
xrefValueToDelete
: 削除する値。
例外の原因
次の理由により、例外が発生する可能性があります。
指定された名前の相互参照表が見つからない。
指定した列名が見つからない場合。
指定した値が空の場合。
指定した値が列内で見つからない場合。
複数の値が見つかった。
相互参照表の値を削除する手順は、次のとおりです。
XSLTマッパーで、「ソース」および「ターゲット」ペインのツリーを開きます。
ソース要素をターゲット要素にドラッグ・アンド・ドロップします。
「コンポーネント」ウィンドウで、「詳細」を選択します。
「XREF関数」を選択します。
ソース・オブジェクトをターゲット・オブジェクトに接続している線に、「markForDelete」関数をドラッグ・アンド・ドロップします。
接続線上に「markForDelete」アイコンが表示されます。
「markForDelete」アイコンをダブルクリックします。
図43-12 に示すように、「関数の編集 – markForDelete」ダイアログが表示されます。
「関数の編集 – markForDelete」ダイアログの各フィールドで次の値を指定します。
「xrefLocation」フィールドに、相互参照ファイルのロケーションURIを入力します。
「xrefLocation」フィールドの右側にある「検索」アイコンをクリックして、相互参照ファイルを選択します。「リソース・パレット」を使用して、MDSおよびMDSの共有ロケーションからもすでにデプロイされた相互参照を選択できます。
「columnName」フィールドに、相互参照表列の名前を入力します。
「columnName」フィールドの右側にある「検索」アイコンをクリックして、以前に選択した相互参照に定義されている列から列名を選択できます。
「value」フィールドは、値を手動で入力するか、[Ctrl]キーを押しながら[Space]キーを押してXPathビルディング・アシスタントを起動します。上へ移動および下へ移動するキーを押して、リスト内のオブジェクトを配置し、[Enter]キーを押してそのオブジェクトを選択します。
図43-13 に、移入後の「関数の編集 – markForDelete」ダイアログを示します。
「OK」をクリックします。
この相互参照ユースケースは、Oracle EBS、SAPおよびSiebelインスタンス間の統合シナリオを実装します。このユースケースでは、SAP_01
表で挿入、更新または削除操作を実行すると、EBS
およびSBL
表で対応するデータが挿入または更新されます。図43-14 に、このユースケースの概要を示します。
この項で説明するサンプル・ファイルをダウンロードするには、Oracle SOA Suiteサンプル・ページ
を参照してください。
この項では、SOAコンポジット・アプリケーションを作成、構築およびデプロイするための設計時タスクを説明します。これらのタスクは、表示されている順番で実行する必要があります。
Oracle JDeveloperのアプリケーションおよびプロジェクトを作成する手順は、次のとおりです。
次の操作のルーティング・ルールを指定する必要があります。
挿入
更新
ID更新
削除
「Mediator1」Oracle Mediatorをダブルクリックします。
メディエータ・エディタが表示されます。
「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。
「ターゲット・タイプ」ダイアログが表示されます。
「サービス」を選択します。
「ターゲット・サービス」ダイアログが表示されます。
「XrefCustApp」→「メディエータ」→「Common」→「サービス」→「Common」の順に移動します。
「insert」を選択し、「OK」をクリックします。
「フィルタ」アイコンをクリックします。
「式ビルダー」ダイアログが表示されます。
「式」フィールドに、次の式を入力します。
$in.Sap01Collection/top:Sap01Collection/top:Sap01/top:operation='INSERT'
「OK」をクリックします。
「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。
「リクエスト・トランスフォーメーション・マップ」ダイアログが表示されます。
「新規マッパー・ファイルの作成」を選択し、SAP_TO_COMMON_INSERT.xsl
と入力します。
「OK」をクリックします。
XSLTマッパーに、「SAP_TO_COMMON_INSERT.xsl」ファイルが表示されます。
「top:SAP01」ソース要素を「inp1:Customer」ターゲット要素にドラッグ・アンド・ドロップします。
「自動マップ・プリファレンス」ダイアログが表示されます。
「自動マップ中」オプションから、「祖先名を考慮した要素の一致」の選択を解除します。
「OK」をクリックします。
図43-24 に示すように、トランスフォーメーションが作成されます。
「コンポーネント」ウィンドウで、「詳細」を選択します。
「XREF関数」を選択します。
「コンポーネント」ウィンドウからtop:id要素とinp1:id要素を接続している線まで「populateXRefRow」関数をドラッグ・アンド・ドロップします。
「populateXRefRow」アイコンをダブルクリックします。
「関数の編集 - populateXRefRow」ダイアログが表示されます。
「xrefLocation」フィールドの右側にある「検索」をクリックします。
「SOAリソース・ルックアップ」ダイアログが表示されます。
「customer.xref」を選択し、「OK」をクリックします。
「referenceColumnName」フィールドで"SAP_01"
と入力するか、または「検索」をクリックして列名を選択します。
「referenceValue」列に、/top:Sap01Collection/top:Sap01/top:id
と入力します。
「columnName」フィールドで"Common"
と入力するか、「検索」をクリックして列名を選択します。
「value」フィールドに、oraext:generate-guid()
と入力します。
「mode」フィールドで"Add"
と入力するか、「検索」をクリックして、このモードを選択します。
図43-25 は、移入後の「関数の編集 – populateXRefRow」ダイアログを示しています。
図43-25 「関数の編集 – populateXRefRow」ダイアログ: XrefCustAppユースケース
「OK」をクリックします。
「ファイル」メニューから、「すべて保存」を選択して、「SAP_TO_COMMON_INSERT.xsl」ファイルを閉じます。
図43-26 に示すように、「ルーティング・ルール」セクションが表示されます。
「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。
「ターゲット・タイプ」ダイアログが表示されます。
「サービス」を選択します。
「ターゲット・サービス」ダイアログが表示されます。
「XrefCustApp」→「メディエータ」→「Common」→「サービス」→「Common」の順に移動します。
「update」を選択し、「OK」をクリックします。
「フィルタ」アイコンをクリックします。
「式ビルダー」ダイアログが表示されます。
「式」フィールドに、次の式を入力します。
$in.Sap01Collection/top:Sap01Collection/top:Sap01/top:operation='UPDATE'
「OK」をクリックします。
「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。
「リクエスト・トランスフォーメーション・マップ」ダイアログが表示されます。
「新規マッパー・ファイルの作成」を選択し、SAP_TO_COMMON_UPDATE.xsl
と入力します。
「OK」をクリックします。
「SAP_TO_COMMON_UPDATE.xsl」ファイルが表示されます。
「top:Sap01」ソース要素を「inp1:Customer」ターゲット要素にドラッグ・アンド・ドロップします。
「自動マップ・プリファレンス」ダイアログが表示されます。
「OK」をクリックします。
「コンポーネント」ウィンドウで、「詳細」を選択します。
「XREF関数」を選択します。
「コンポーネント」ウィンドウからtop:id要素とinp1:id要素を接続している線まで「lookupXRef」関数をドラッグ・アンド・ドロップします。
「lookupXRef」アイコンをダブルクリックします。
「関数の編集 - lookupXRef」ダイアログが表示されます。
「xrefLocation」フィールドの右側にある「検索」をクリックします。
「SOAリソース・ルックアップ」ダイアログが表示されます。
「customer.xref」を選択し、「OK」をクリックします。
「referenceColumnName」フィールドで"SAP_01"
と入力するか、または「検索」をクリックして列名を選択します。
「referenceValue」列に、/top:Sap01Collection/top:Sap01/top:id
と入力します。
「columnName」フィールドで"COMMON"
と入力するか、「検索」をクリックして列名を選択します。
「needException」フィールドでtrue()
と入力するか、「検索」をクリックして、このモードを選択します。
図43-27 は、移入後の「関数の編集 – lookupXRef」ダイアログを示しています。
図43-27 「関数の編集 – lookupXRef」ダイアログ: XrefCustAppユースケース
「OK」をクリックします。
「ファイル」メニューから、「すべて保存」を選択して、「SAP_TO_COMMON_UPDATE.xsl」ファイルを閉じます。
図43-28 に示すように、「ルーティング・ルール」セクションが表示されます。
次のタスクを実行して、updateID
操作のルーティング・ルールを作成します。
「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。
「ターゲット・タイプ」ダイアログが表示されます。
「サービス」を選択します。
「ターゲット・サービス」ダイアログが表示されます。
「XrefCustApp」→「メディエータ」→「Common」→「サービス」→「Common」の順に移動します。
「updateid」を選択し、「OK」をクリックします。
「フィルタ」アイコンをクリックします。
「式ビルダー」ダイアログが表示されます。
「式」フィールドに、次の式を入力します。
$in.Sap01Collection/top:Sap01Collection/top:Sap01/top:operation = 'UPDATEID'
「OK」をクリックします。
「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。
「リクエスト・トランスフォーメーション・マップ」ダイアログが表示されます。
「新規マッパー・ファイルの作成」を選択し、SAP_TO_COMMON_UPDATEID.xsl
と入力します。
「OK」をクリックします。
「SAP_TO_COMMON_UPDATEID.xsl」ファイルが表示されます。
「top:Sap01」ソース要素を「inp1:Customer」ターゲット要素にドラッグ・アンド・ドロップします。
「自動マップ・プリファレンス」ダイアログが表示されます。
「OK」をクリックします。
「コンポーネント」ウィンドウで、「詳細」を選択します。
「XREF関数」を選択します。
「コンポーネント」ウィンドウからtop:id要素とinp1:id要素を接続している線まで「populateXRefRow」関数をドラッグ・アンド・ドロップします。
「populateXRefRow」アイコンをダブルクリックします。
「関数の編集 - populateXRefRow」ダイアログが表示されます。
「xrefLocation」フィールドの右側にある「検索」をクリックします。
「SOAリソース・ルックアップ」ダイアログが表示されます。
「customer.xref」を選択し、「OK」をクリックします。
「referenceColumnName」フィールドで"SAP_01"
と入力するか、または「検索」をクリックして列名を選択します。
「referenceValue」列に、/top:Sap01Collection/top:Sap01/top:refId
と入力します。
「columnName」フィールドで"SAP_01"
と入力するか、「検索」をクリックして列名を選択します。
「value」フィールドに、/top:Sap01Collection/top:Sap01/top:Id
と入力します。
「mode」フィールドで"UPDATE"
と入力するか、「検索」をクリックして、このモードを選択します。
図43-29 は、移入後の「関数の編集 – populateXRefRow」ダイアログを示しています。
図43-29 「関数の編集 – populateXRefRow」ダイアログ: XrefCustAppユースケース
「コンポーネント」ウィンドウからtop:id要素とinp1:id要素を接続している線まで「lookupXRef」関数をドラッグ・アンド・ドロップします。
「lookupXRef」アイコンをダブルクリックします。
「関数の編集 - lookupXRef」ダイアログが表示されます。
「xrefLocation」フィールドの右側にある「検索」をクリックします。
「SOAリソース・ルックアップ」ダイアログが表示されます。
「customer.xref」を選択し、「OK」をクリックします。
「referenceColumnName」フィールドで"SAP_01"
と入力するか、または「検索」をクリックして列名を選択します。
「referenceValue」列に、次の値を入力します。
xref:populateXRefRow("customer.xref","SAP_
01",/top:Sap01Collection/top:Sap01/top:refId,"SAP_
01",/top:Sap01Collection/top:Sap01/top:id,"UPDATE")
.
「columnName」フィールドで"COMMON"
と入力するか、「検索」をクリックして列名を選択します。
「needException」フィールドでfalse()
と入力するか、「検索」をクリックして、このモードを選択します。
図43-30 は、移入後の「関数の編集 – lookupXRef」ダイアログを示しています。
図43-30 「関数の編集 – lookupXRef」ダイアログ: XrefCustAppユースケース
「OK」をクリックします。
「ファイル」メニューから、「すべて保存」を選択して、「SAP_TO_COMMON_UPDATEID.xsl」ファイルを閉じます。
図43-31 に示すように、「ルーティング・ルール」セクションが表示されます。
「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。
「ターゲット・タイプ」ダイアログが表示されます。
「サービス」を選択します。
「ターゲット・サービス」ダイアログが表示されます。
「XrefCustApp」→「メディエータ」→「Common」→「サービス」→「Common」の順に移動します。
「delete」を選択し、「OK」をクリックします。
「フィルタ」アイコンをクリックします。
「式ビルダー」ダイアログが表示されます。
「式」フィールドに、次の式を入力します。
$in.Sap01Collection/top:Sap01Collection/top:Sap01/top:operation = 'DELETE'
「OK」をクリックします。
「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。
「リクエスト・トランスフォーメーション・マップ」ダイアログが表示されます。
「新規マッパー・ファイルの作成」を選択し、SAP_TO_COMMON_DELETE
.xslと入力します。
「OK」をクリックします。
「SAP_TO_COMMON_DELETE.xsl」ファイルが表示されます。
<sources>を右クリックし、「パラメータの追加」を選択します。
「パラメータの追加」ダイアログが表示されます。
「ローカル名」フィールドに、COMMONID
と入力します。
「デフォルト値の設定」を選択します。
「式」を選択します。
「XPath式」フィールドに、次の式を入力します。
xref:lookupXRef("customer.xref","SAP_ 01",/top:Sap01Collection/top:Sap01/top:id,"COMMON",false()).
「OK」をクリックします。
「top:Sap01」ソース要素を「inp1:Customer」ターゲット要素にドラッグ・アンド・ドロップします。
「自動マップ・プリファレンス」ダイアログが表示されます。
「OK」をクリックします。
「top:id」と「inp1:id」を接続している線を削除します。
「COMMONID」を「inp1:id」に接続します。
「inp1:id」を右クリックして「XSLノードの追加」を選択してから、「if」を選択します。
新しいノード「if」
が、「inp1:customer」
と「inp1:id」
の間に挿入されます。
「top:id」を「if」ノードに接続します。
「コンポーネント」ウィンドウで、「詳細」を選択します。
「XREF関数」を選択します。
「コンポーネント」ウィンドウからtop:idとifノードを接続している線まで「markForDelete」関数をドラッグ・アンド・ドロップします。
「markForDelete」アイコンをダブルクリックします。
「関数の編集 - markForDelete」ダイアログが表示されます。
「xrefLocation」フィールドの右側にある「検索」をクリックします。
「SOAリソース・ルックアップ」ダイアログが表示されます。
「customer.xref」を選択し、「OK」をクリックします。
「columnName」フィールドで"SAP_01"
と入力するか、「検索」をクリックして列名を選択します。
「value」フィールドに、/top:Sap01Collection/top:Sap01/top:Id
と入力します。
図43-32 は、移入後の「関数の編集 – markForDelete」ダイアログを示しています。
図43-32 「関数の編集 – markForDelete」ダイアログ: XrefCustAppユースケース
「OK」をクリックします。
図43-33 に示すように、「SAP_TO_COMMON_DELETE.xsl」ファイルが表示されます。
「ファイル」メニューから、「すべて保存」を選択して、「SAP_TO_COMMON_DELETE.xsl」ファイルを閉じます。
図43-34 に示すように、「ルーティング・ルール」セクションが表示されます。
「Common」Oracle Mediatorの次の操作についてルーティング・ルールを指定する必要があります。
挿入
削除
更新
ID更新
「Common」Oracle Mediatorをダブルクリックします。
メディエータ・エディタが表示されます。
「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。
「ターゲット・タイプ」ダイアログが表示されます。
「サービス」を選択します。
「ターゲット・サービス」ダイアログが表示されます。
「XrefCustApp」→「参照」→「SBL」の順に移動します。
「SBL」を選択し、「OK」をクリックします。
「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。
「リクエスト・トランスフォーメーション・マップ」ダイアログが表示されます。
「新規マッパー・ファイルの作成」を選択し、COMMON_TO_SBL_INSERT.xsl
と入力します。
「OK」をクリックします。
「COMMON_TO_SBL_INSERT.xsl」ファイルが表示されます。
「inp1:Customers」ソース要素を「db:InputParameters」ターゲット要素にドラッグ・アンド・ドロップします。
「自動マップ・プリファレンス」ダイアログが表示されます。
「OK」をクリックします。
図43-35 に示すように、トランスフォーメーションが作成されます。
「ファイル」メニューから、「すべて保存」を選択して、「COMMON_TO_SBL_INSERT.xsl」ファイルを閉じます。
「同期リプライ」セクションで、「ターゲット・サービス操作を参照します。」をクリックします。
「ターゲット・タイプ」ダイアログが表示されます。
「サービス」を選択します。
「ターゲット・サービス」ダイアログが表示されます。
「XrefCustApp」→「参照」→「Logger」の順に移動します。
「Write」を選択し、「OK」をクリックします。
「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。
「リプライ・トランスフォーメーション・マップ」ダイアログが表示されます。
「新規マッパー・ファイルの作成」を選択し、SBL_TO_COMMON_INSERT.xsl
と入力します。
「リクエストをリプライ・ペイロードに含める」を選択します。
「OK」をクリックします。
「SBL_TO_COMMON_INSERT.xsl」ファイルが表示されます。
「inp1:Customers」ソース要素を「db:X:APP_ID」に接続します。
「コンポーネント」ウィンドウから接続線まで「populateXRefRow」関数をドラッグ・アンド・ドロップします。
「populateXRefRow」アイコンをダブルクリックします。
「関数の編集 - populateXRefRow」ダイアログが表示されます。
表示されたフィールドに次の情報を入力します。
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"
「OK」をクリックします。
図43-36 に示すように、「SBL_TO_COMMON_INSERT.xsl」ファイルが表示されます。
「ファイル」メニューから、「すべて保存」を選択して、「SBL_TO_COMMON_INSERT.xsl」ファイルを閉じます。
「同期リプライ」セクションで、「値の割当て」アイコンをクリックします。
「値の割当て」ダイアログが表示されます。
「追加」をクリックします。
「値の割当て」ダイアログが表示されます。
「From」セクションで、「式」を選択します。
「式ビルダーの起動」アイコンをクリックします。
「式ビルダー」ダイアログが表示されます。
「式」フィールドに次の式を入力し、「OK」をクリックします。
concat('INSERT-',$in.OutputParameters/db:OutputParameters/db:X_APP_ID,'.xml')
「To」セクションで、「プロパティ」を選択します。
「jca.file.FileName」プロパティを選択し、「OK」をクリックします。
「OK」をクリックします。
図43-37 に示すように、「insert」操作セクションが表示されます。
「ファイル」メニューで、「すべて保存」を選択します。
ステップ2からステップ34を繰り返し、EBSというもう1つのターゲット・サービスおよびそのルーティング・ルールを指定します。
図43-38 に、SBLおよびEBSターゲット・サービスの「insert」操作セクションを示します。
次のタスクを実行して、削除操作のルーティング・ルールを作成します。
「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。
「ターゲット・タイプ」ダイアログが表示されます。
「サービス」を選択します。
「ターゲット・サービス」ダイアログが表示されます。
「XrefCustApp」→「参照」→「SBL」の順に移動します。
「SBL」を選択し、「OK」をクリックします。
「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。
「リクエスト・トランスフォーメーション・マップ」ダイアログが表示されます。
「新規マッパー・ファイルの作成」を選択し、COMMON_TO_SBL_DELETE.xsl
と入力します。
「OK」をクリックします。
「COMMON_TO_SBL_DELETE.xsl」ファイルが表示されます。
「inp1:Customers」ソース要素を「db:InputParameters」ターゲット要素にドラッグ・アンド・ドロップします。
「自動マップ・プリファレンス」ダイアログが表示されます。
「OK」をクリックします。
図43-39 に示すように、トランスフォーメーションが作成されます。
「コンポーネント」ウィンドウからinp1:idとdb:XCUSTOMER_IDを接続している線まで「lookupXRef」関数をドラッグ・アンド・ドロップします。
「lookupXRef」アイコンをダブルクリックします。
「関数の編集 - lookupXRef」ダイアログが表示されます。
表示されたフィールドに次の情報を入力します。
xrefLocation: "customer.xref"
referenceColumnName: "Common"
referenceValue: /inp1:Customers/inp1:Customer/inp1:Id
columnName: "SBL_78"
needException: false()
「OK」をクリックします。
「ファイル」メニューから、「すべて保存」を選択して、「COMMON_TO_SBL_DELETE.xsl」ファイルを閉じます。
「同期リプライ」セクションで、「ターゲット・サービス操作を参照します。」をクリックします。
「ターゲット・タイプ」ダイアログが表示されます。
「サービス」を選択します。
「ターゲット・サービス」ダイアログが表示されます。
「XrefCustApp」→「参照」→「Logger」の順に移動します。
「Write」を選択し、「OK」をクリックします。
「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。
「リプライ・トランスフォーメーション・マップ」ダイアログが表示されます。
「新規マッパー・ファイルの作成」を選択し、SBL_TO_COMMON_DELETE.xsl
と入力します。
「OK」をクリックします。
「SBL_TO_COMMON_DELETE.xsl」ファイルが表示されます。
「db:X_APP_ID」ソース要素を「db:X:APP_ID」ターゲットに接続します。
「コンポーネント」ウィンドウから接続線まで「markForDelete」関数をドラッグ・アンド・ドロップします。
「markForDelete」アイコンをダブルクリックします。
「関数の編集 - markForDelete」ダイアログが表示されます。
表示されたフィールドに次の情報を入力します。
xrefLocation: "customer.xref"
columnName: "SBL_78"
value: /db:OutputParameters/db:X_APP_ID
「OK」をクリックします。
「ファイル」メニューから、「すべて保存」を選択して、「SBL_TO_COMMON_DELETE.xsl」ファイルを閉じます。
「同期リプライ」セクションで、「値の割当て」アイコンをクリックします。
「値の割当て」ダイアログが表示されます。
「追加」をクリックします。
「値の割当て」ダイアログが表示されます。
「From」セクションで、「式」を選択します。
「式ビルダーの起動」アイコンをクリックします。
「式ビルダー」ダイアログが表示されます。
「式」フィールドに次の式を入力し、「OK」をクリックします。
concat('DELETE-',$in.OutputParameters/db:OutputParameters/db:X_APP_ID,'.xml')
「To」セクションで、「プロパティ」を選択します。
「jca.file.FileName」プロパティを選択し、「OK」をクリックします。
「OK」をクリックします。
図43-40 に示すように、「delete」操作セクションが表示されます。
「ファイル」メニューで、「すべて保存」を選択します。
ステップ1からステップ36を繰り返し、EBSというもう1つのターゲット・サービスおよびルーティング・ルールを指定します。
図43-41 に、SBLおよびEBSターゲット・サービスの「delete」操作セクションを示します。
次のタスクを実行して、更新操作のルーティング・ルールを作成します。
「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。
「ターゲット・タイプ」ダイアログが表示されます。
「サービス」を選択します。
「ターゲット・サービス」ダイアログが表示されます。
「XrefCustApp」→「参照」→「SBL」の順に移動します。
「SBL」を選択し、「OK」をクリックします。
「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。
「リクエスト・トランスフォーメーション・マップ」ダイアログが表示されます。
「新規マッパー・ファイルの作成」を選択し、COMMON_TO_SBL_UPDATE.xsl
と入力します。
「OK」をクリックします。
「COMMON_TO_SBL_UPDATE.xsl」ファイルが表示されます。
「inp1:Customers」ソース要素を「db:InputParameters」ターゲット要素にドラッグ・アンド・ドロップします。
「自動マップ・プリファレンス」ダイアログが表示されます。
「OK」をクリックします。
図43-39 に示すように、トランスフォーメーションが作成されます。
「コンポーネント」ウィンドウからinp1:idとdb:XCUSTOMER_IDを接続している線まで「lookupXRef」関数をドラッグ・アンド・ドロップします。
「lookupXRef」アイコンをダブルクリックします。
「関数の編集 - lookupXRef」ダイアログが表示されます。
表示されたフィールドに次の情報を入力します。
xrefLocation: "customer.xref"
referenceColumnName: "Common"
referenceValue: /inp1:Customers/inp1:Customer/inp1:Id
columnName: "SBL_78"
needException: true()
「OK」をクリックします。
「ファイル」メニューから、「すべて保存」を選択して、「COMMON_TO_SBL_UPDATE.xsl」ファイルを閉じます。
「同期リプライ」セクションで、「ターゲット・サービス操作を参照します。」をクリックします。
「ターゲット・タイプ」ダイアログが表示されます。
「サービス」を選択します。
「ターゲット・サービス」ダイアログが表示されます。
「XrefCustApp」→「参照」→「Logger」の順に移動します。
「Write」を選択し、「OK」をクリックします。
「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。
「リプライ・トランスフォーメーション・マップ」ダイアログが表示されます。
「新規マッパー・ファイルの作成」を選択し、SBL_TO_COMMON_UPDATE.xsl
と入力します。
「OK」をクリックします。
「SBL_TO_COMMON_UPDATE.xsl」ファイルが表示されます。
「db:X:APP_ID」ソース要素を「db:X:APP_ID」に接続します。
「ファイル」メニューから、「すべて保存」を選択して、「SBL_TO_COMMON_UPDATE.xsl」ファイルを閉じます。
「同期リプライ」セクションで、「値の割当て」アイコンをクリックします。
「値の割当て」ダイアログが表示されます。
「追加」をクリックします。
「値の割当て」ダイアログが表示されます。
「From」セクションで、「式」を選択します。
「式ビルダーの起動」アイコンをクリックします。
「式ビルダー」ダイアログが表示されます。
「式」フィールドに次の式を入力し、「OK」をクリックします。
concat('UPDATE-',$in.OutputParameters/db:OutputParameters/db:X_APP_ID,'.xml')
「To」セクションで、「プロパティ」を選択します。
「jca.file.FileName」プロパティを選択し、「OK」をクリックします。
「OK」をクリックします。
図43-42 に示すように、「update」操作セクションが表示されます。
「ファイル」メニューで、「すべて保存」を選択します。
ステップ1からステップ32を繰り返し、EBSというもう1つのターゲット・サービスおよびそのルーティング・ルールを指定します。
図43-43 に、SBLターゲット・サービスおよびEBSターゲット・サービスの「update」操作セクションを示します。
次のタスクを実行して、ID更新操作のルーティング・ルールを作成します。
「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。
「ターゲット・タイプ」ダイアログが表示されます。
「サービス」を選択します。
「ターゲット・サービス」ダイアログが表示されます。
「XrefCustApp」→「参照」→「SBL」の順に移動します。
「SBL」を選択し、「OK」をクリックします。
「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。
「リクエスト・トランスフォーメーション・マップ」ダイアログが表示されます。
「新規マッパー・ファイルの作成」を選択し、COMMON_TO_SBL_UPDATEID.xsl
と入力します。
「OK」をクリックします。
「COMMON_TO_SBL_UPDATEID.xsl」ファイルが表示されます。
「inp1:Customers」ソース要素を「db:InputParameters」ターゲット要素にドラッグ・アンド・ドロップします。
「自動マップ・プリファレンス」ダイアログが表示されます。
「OK」をクリックします。
図43-39 に示すように、トランスフォーメーションが作成されます。
「コンポーネント」ウィンドウからinp1:idとdb:X_CUSTOMER_IDを接続している線まで「lookupXRef」関数をドラッグ・アンド・ドロップします。
「lookupXRef」アイコンをダブルクリックします。
「関数の編集 - lookupXRef」ダイアログが表示されます。
表示されたフィールドに次の情報を入力します。
xrefLocation: customer.xref
referenceColumnName: Common
referenceValue: /inp1:Customers/inp1:Customer/inp1:Id
columnName: SBL_78
needException: false()
「OK」をクリックします。
「ファイル」メニューから、「すべて保存」を選択して、「COMMON_TO_SBL_UPDATEID.xsl」ファイルを閉じます。
「同期リプライ」セクションで、「ターゲット・サービス操作を参照します。」をクリックします。
「ターゲット・タイプ」ダイアログが表示されます。
「サービス」を選択します。
「ターゲット・サービス」ダイアログが表示されます。
「XrefCustApp」→「参照」→「Logger」の順に移動します。
「Write」を選択し、「OK」をクリックします。
「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。
「リプライ・トランスフォーメーション・マップ」ダイアログが表示されます。
「リクエストをリプライ・ペイロードに含める」を選択します。
「OK」をクリックします。
「SBL_TO_COMMON_UPDATEID.xsl」ファイルが表示されます。
「inp1:Customers」ソース要素を「db:X:APP_ID」に接続します。
「コンポーネント」ウィンドウから接続線まで「populateXRefRow」関数をドラッグ・アンド・ドロップします。
「populateXRefRow」アイコンをダブルクリックします。
「関数の編集 - populateXRefRow」ダイアログが表示されます。
表示されたフィールドに次の情報を入力します。
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
「OK」をクリックします。
「ファイル」メニューから、「すべて保存」を選択して、「SBL_TO_COMMON_UPDATEID.xsl」ファイルを閉じます。
「同期リプライ」セクションで、「値の割当て」アイコンをクリックします。
「値の割当て」ダイアログが表示されます。
「追加」をクリックします。
「値の割当て」ダイアログが表示されます。
「From」セクションで、「式」を選択します。
「式ビルダーの起動」アイコンをクリックします。
「式ビルダー」ダイアログが表示されます。
「式」フィールドに次の式を入力し、「OK」をクリックします。
concat('UPDATEID-',$in.OutputParameters/db:OutputParameters/db:X_APP_ID,'.xml')
「To」セクションで、「プロパティ」を選択します。
「jca.file.FileName」プロパティを選択し、「OK」をクリックします。
「OK」をクリックします。
図43-44 に示すように、「updateid」操作セクションが表示されます。
「ファイル」メニューで、「すべて保存」を選択します。
ステップ1からステップ36を繰り返し、EBSというもう1つのターゲット・サービスおよびルーティング・ルールを指定します。
図43-45 に、SBLおよびEBSターゲット・サービスの「updateid」操作セクションを示します。
SOAコンポジット・アプリケーションをデプロイするには、アプリケーション・サーバー接続が必要です。アプリケーション・サーバー接続の作成方法の詳細は、「アプリケーション・サーバー接続の作成」を参照してください。
次の手順で、XrefCustAppコンポジット・アプリケーションをデプロイします。
アプリケーション・デプロイメント・プロファイルの作成
アプリケーション・サーバーへのアプリケーションのデプロイ
これらの手順の詳細は、「単一のSOAコンポジットのデプロイ方法」を参照してください。
デプロイした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
はサービスを実行するポートです。
相互参照ユースケースは、2つのエンド・システム(Oracle EBSインスタンスおよびSAPインスタンス)間の統合シナリオを実装します。このユースケースでは、注文はSAPからEBSに渡されます。SAPでは注文は一意のIDで表されますが、EBSではこの注文がID1とID2の2つの注文に分割されます。このシナリオはデータベース・アダプタを使用して作成されます。SAP表の更新レコードまたは新規レコードをポーリングすると、SAPインスタンスが作成されます。EBSでは、このインスタンスがプロシージャによってシミュレートされ、表に移入されます。図43-46 に、このユースケースの概要を示します。
この項で説明するサンプル・ファイルをダウンロードするには、Oracle SOA Suiteサンプル・ページ
を参照してください。
この項では、SOAコンポジット・アプリケーションを作成、構築およびデプロイするための設計時タスクを説明します。これらのタスクは、表示されている順番で実行する必要があります。
Oracle JDeveloperのアプリケーションおよびプロジェクトを作成する手順は、次のとおりです。
次の操作のルーティング・ルールを指定する必要があります。
挿入
更新
「Mediator2」Oracle Mediatorをダブルクリックします。
メディエータ・エディタが表示されます。
「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。
「ターゲット・タイプ」ダイアログが表示されます。
「サービス」を選択します。
「ターゲット・サービス」ダイアログが表示されます。
「XrefOrderApp」→「メディエータ」→「Common」→「サービス」→「Common」の順に移動します。
「insert」を選択し、「OK」をクリックします。
「フィルタ」アイコンをクリックします。
「式ビルダー」ダイアログが表示されます。
「式」フィールドに、次の式を入力します。
$in.Sap05Collection/top:Sap05Collection/top:Sap05/top:operation='INSERT'
「OK」をクリックします。
「トランスフォーメーションの使用」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。
「リクエスト・トランスフォーメーション・マップ」ダイアログが表示されます。
「新規マッパー・ファイルの作成」を選択し、SAP_TO_COMMON_INSERT.xsl
と入力します。
「OK」をクリックします。
「SAP_TO_COMMON_INSERT.xsl」ファイルが表示されます。
「top:SAP05」ソース要素を「inp1:Order」ターゲット要素にドラッグ・アンド・ドロップします。
「自動マップ・プリファレンス」ダイアログが表示されます。
「自動マップ中」オプション・リストから、「祖先名を考慮した要素の一致」の選択を解除します。
「OK」をクリックします。
図43-54 に示すように、トランスフォーメーションが作成されます。
「コンポーネント」ウィンドウで、「詳細」を選択します。
「XREF関数」を選択します。
「コンポーネント」ウィンドウからtop:id要素とinp1:id要素を接続している線まで「populateXRefRow1M」関数をドラッグ・アンド・ドロップします。
「populateXRefRow1M」アイコンをダブルクリックします。
「関数の編集 - populateXRefRow」ダイアログが表示されます。
「xrefLocation」フィールドの右側にある「検索」をクリックします。
「SOAリソース・ルックアップ」ダイアログが表示されます。
「Order.xref」を選択し、「OK」をクリックします。
「referenceColumnName」フィールドで"SAP_05"
と入力するか、または「検索」をクリックして列名を選択します。
「referenceValue」列に、/top:Sap05Collection/top:Sap05/top:id
と入力します。
「columnName」フィールドで"Common"
と入力するか、「検索」をクリックして列名を選択します。
「value」フィールドに、orcl:generate-guid()
と入力します。
「mode」フィールドで"Add"
と入力するか、「検索」をクリックして、このモードを選択します。
図43-55 は、移入後の「関数の編集 – populateXRefRow1M」ダイアログを示しています。
図43-55 「関数の編集 – populateXRefRow1M」ダイアログ: XrefOrderAppユースケース
「OK」をクリックします。
「ファイル」メニューから、「すべて保存」を選択して、「SAP_TO_COMMON_INSERT.xsl」ファイルを閉じます。
図43-56 に示すように、「ルーティング・ルール」セクションが表示されます。
次のタスクを実行して、更新操作のルーティング・ルールを作成します。
「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。
「ターゲット・タイプ」ダイアログが表示されます。
「サービス」を選択します。
「ターゲット・サービス」ダイアログが表示されます。
「XrefOrderApp」→「メディエータ」→「Common」→「サービス」→「Common」の順に移動します。
「update」を選択し、「OK」をクリックします。
「フィルタ」アイコンをクリックします。
「式ビルダー」ダイアログが表示されます。
「式」フィールドに、次の式を入力します。
$in.Sap05Collection/top:Sap05Collection/top:Sap05/top:operation='UPDATE'
「OK」をクリックします。
「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。
「リクエスト・トランスフォーメーション・マップ」ダイアログが表示されます。
「新規マッパー・ファイルの作成」を選択し、SAP_TO_COMMON_UPDATE.xsl
と入力します。
「OK」をクリックします。
「SAP_TO_COMMON_UPDATE.xsl」ファイルが表示されます。
「top:Sap05」ソース要素を「inp1:Order」ターゲット要素にドラッグ・アンド・ドロップします。
「自動マップ・プリファレンス」ダイアログが表示されます。
「OK」をクリックします。
「コンポーネント」ウィンドウで、「詳細」を選択します。
「XREF関数」を選択します。
「コンポーネント」ウィンドウからtop:id要素とinp1:id要素を接続している線まで「lookupXRef」関数をドラッグ・アンド・ドロップします。
「lookupXRef」アイコンをダブルクリックします。
「関数の編集 - lookupXRef」ダイアログが表示されます。
「xrefLocation」フィールドの右側にある「検索」をクリックします。
「SOAリソース・ルックアップ」ダイアログが表示されます。
「customer.xref」を選択し、「OK」をクリックします。
「referenceColumnName」フィールドで"SAP_05"
と入力するか、または「検索」をクリックして列名を選択します。
「referenceValue」列に、/top:Sap05Collection/top:Sap05/top:id
と入力します。
「columnName」フィールドで"COMMON"
と入力するか、「検索」をクリックして列名を選択します。
「needException」フィールドでtrue()
と入力するか、「検索」をクリックして、このモードを選択します。
図43-57 は、移入後の「関数の編集 – lookupXRef」ダイアログを示しています。
図43-57 「関数の編集 – lookupXRef」ダイアログ: XRefOrderAppユースケース
「OK」をクリックします。
「ファイル」メニューから、「すべて保存」を選択して、「SAP_TO_COMMON_UPDATE.xsl」ファイルを閉じます。
図43-58 に示すように、「ルーティング・ルール」セクションが表示されます。
「Common」Oracle Mediatorの次の操作についてルーティング・ルールを指定する必要があります。
挿入
更新
「Common」Oracle Mediatorをダブルクリックします。
メディエータ・エディタが表示されます。
「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。
「ターゲット・タイプ」ダイアログが表示されます。
「サービス」を選択します。
「ターゲット・サービス」ダイアログが表示されます。
「XrefOrderApp」→「参照」→「EBS」の順に移動します。
「EBS」を選択して、「OK」をクリックします。
「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。
「リクエスト・トランスフォーメーション・マップ」ダイアログが表示されます。
「新規マッパー・ファイルの作成」を選択し、COMMON_TO_EBS_INSERT.xsl
と入力します。
「OK」をクリックします。
「COMMON_TO_EBS_INSERT.xsl」ファイルが表示されます。
「inp1:Order」ソース要素を「db:InputParameters」ターゲット要素にドラッグ・アンド・ドロップします。
「自動マップ・プリファレンス」ダイアログが表示されます。
右側の「db:X_APP_INSTANCE」ノードの値をEBS_i75に設定します。
「OK」をクリックします。
図43-59 に示すように、トランスフォーメーションが作成されます。
「ファイル」メニューから、「すべて保存」を選択して、「COMMON_TO_EBS_INSERT.xsl」ファイルを閉じます。
「同期リプライ」セクションで、「ターゲット・サービス操作を参照します。」をクリックします。
「ターゲット・タイプ」ダイアログが表示されます。
「サービス」を選択します。
「ターゲット・サービス」ダイアログが表示されます。
「XrefOrderApp」→「参照」→「Logger」の順に移動します。
「Write」を選択し、「OK」をクリックします。
「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。
「リプライ・トランスフォーメーション・マップ」ダイアログが表示されます。
「新規マッパー・ファイルの作成」を選択し、EBS_TO_COMMON_INSERT.xsl
と入力します。
「リクエストをリプライ・ペイロードに含める」を選択します。
「OK」をクリックします。
「EBS_TO_COMMON_INSERT.xsl」ファイルが表示されます。
「inp1:Order」ソース要素を「db:X:APP_ID」に接続します。
「コンポーネント」ウィンドウから接続線まで「populateXRefRow」関数をドラッグ・アンド・ドロップします。
「populateXRefRow」アイコンをダブルクリックします。
「関数の編集 - populateXRefRow」ダイアログが表示されます。
表示されたフィールドに次の情報を入力します。
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
「OK」をクリックします。
図43-60 に示すように、「EBS_TO_COMMON_INSERT.xsl」ファイルが表示されます。
「ファイル」メニューから、「すべて保存」を選択して、「EBS_TO_COMMON_INSERT.xsl」ファイルを閉じます。
「同期リプライ」セクションで、「値の割当て」アイコンをクリックします。
「値の割当て」ダイアログが表示されます。
「追加」をクリックします。
「値の割当て」ダイアログが表示されます。
「From」セクションで、「式」を選択します。
「式ビルダーの起動」アイコンをクリックします。
「式ビルダー」ダイアログが表示されます。
「式」フィールドに次の式を入力し、「OK」をクリックします。
concat('INSERT-',$in.OutputParameters/db:OutputParameters/db:X_APP_ID,'.xml')
「To」セクションで、「プロパティ」を選択します。
「jca.file.FileName」プロパティを選択し、「OK」をクリックします。
「OK」をクリックします。
図43-61 に示すように、「insert」操作セクションが表示されます。
「ファイル」メニューで、「すべて保存」を選択します。
次のタスクを実行して、更新操作のルーティング・ルールを作成します。
「ルーティング・ルール」セクションで、「新規ルーティング・ルールを作成します。」アイコンをクリックします。
「ターゲット・タイプ」ダイアログが表示されます。
「サービス」を選択します。
「ターゲット・サービス」ダイアログが表示されます。
「XrefOrderApp」→「参照」→「EBS」の順に移動します。
「EBS」を選択して、「OK」をクリックします。
「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。
「リクエスト・トランスフォーメーション・マップ」ダイアログが表示されます。
「新規マッパー・ファイルの作成」を選択し、COMMON_TO_EBS_UPDATE.xsl
と入力します。
「OK」をクリックします。
「COMMON_TO_EBS_UPDATE.xsl」ファイルが表示されます。
「inp1:Orders」ソース要素を「db:InputParameters」ターゲット要素にドラッグ・アンド・ドロップします。
「自動マップ・プリファレンス」ダイアログが表示されます。
「OK」をクリックします。
図43-39 に示すように、トランスフォーメーションが作成されます。
「コンポーネント」ウィンドウからinp1:idとdb:X_APP_IDを接続している線まで「lookupXRef」関数をドラッグ・アンド・ドロップします。
「lookupXRef」アイコンをダブルクリックします。
「関数の編集 - lookupXRef」ダイアログが表示されます。
表示されたフィールドに次の情報を入力します。
xrefLocation: order.xref
referenceColumnName: Common
referenceValue: /inp1:Customers/inp1:Order/inp1:Id
columnName: EBS_i75
needException: true()
「OK」をクリックします。
「ファイル」メニューから、「すべて保存」を選択して、「COMMON_TO_EBS_UPDATE.xsl」ファイルを閉じます。
「同期リプライ」セクションで、「ターゲット・サービス操作を参照します。」をクリックします。
「ターゲット・タイプ」ダイアログが表示されます。
「サービス」を選択します。
「ターゲット・サービス」ダイアログが表示されます。
「XrefOrderApp」→「参照」→「Logger」の順に移動します。
「Write」を選択し、「OK」をクリックします。
「次を使用して変換」フィールドの横にある「トランスフォーメーション」アイコンをクリックします。
「リプライ・トランスフォーメーション・マップ」ダイアログが表示されます。
「新規マッパー・ファイルの作成」を選択し、EBS_TO_COMMON_UPDATE.xsl
と入力します。
「OK」をクリックします。
「EBS_TO_COMMON_UPDATE.xsl」ファイルが表示されます。
「db:X:APP_ID」ソース要素を「db:X:APP_ID」に接続します。
「ファイル」メニューから、「すべて保存」を選択して、「EBS_TO_COMMON_UPDATE.xsl」ファイルを閉じます。
「同期リプライ」セクションで、「値の割当て」アイコンをクリックします。
「値の割当て」ダイアログが表示されます。
「追加」をクリックします。
「値の割当て」ダイアログが表示されます。
「From」セクションで、「式」を選択します。
「式ビルダーの起動」アイコンをクリックします。
「式ビルダー」ダイアログが表示されます。
「式」フィールドに次の式を入力し、「OK」をクリックします。
concat('UPDATE-',$in.OutputParameters/db:OutputParameters/db:X_APP_ID,'.xml')
「To」セクションで、「プロパティ」を選択します。
「jca.file.FileName」プロパティを選択し、「OK」をクリックします。
「OK」をクリックします。
図43-62 に示すように、「update」操作セクションが表示されます。
「ファイル」メニューで、「すべて保存」を選択します。
SOAコンポジット・アプリケーションをデプロイするには、アプリケーション・サーバー接続が必要です。アプリケーション・サーバー接続の作成方法の詳細は、「olink:TKADP212」を参照してください。
次の手順で、XrefOrderAppコンポジット・アプリケーションをアプリケーション・サーバーにデプロイします。
アプリケーション・デプロイメント・プロファイルの作成
アプリケーション・サーバーへのアプリケーションのデプロイ
これらの手順の詳細は、「単一のSOAコンポジットのデプロイ方法」を参照してください。