Oracle Cloud Connect Web Services for SOAPによって、RNObject
(すべてのプライマリRightNowオブジェクト・クラスのベース・クラス)の1つ以上のインスタンスを受け入れる(または返す)複数の操作が定義されます。
この機能によって、同じ操作が多相的に動作するため、入力値と戻り値はRNObject
の導出クラスのどのインスタンスにもなることができます。
この機能は、プログラム言語のバインディングからサブクラス・インスタンスを渡すことで、およびオブジェクトのシリアライズXMLでxsi:type
属性を使用することでこの動作を実行します。xsi:type
は、タイプRNObject
の要素で置換される具象タイプを指定します。この動作によって、Oracle Cloud Connect Web Services for SOAPを使用する開発者は、ベース・クラスのRNObject
から継承された任意のタイプのオブジェクトを操作し、RNObject
のインスタンスを予期する任意の操作にそのオブジェクトを渡すことができます。また、開発者は、RNObject
の返されたインスタンスを適切なサブクラスにキャストできます。多相動作の詳細は、Oracle Service Cloud Connect Web Services for SOAPを参照してください。
この多相的な性質のため、ソース・オブジェクトからターゲット・オブジェクトにマッピングするユーザー・エクスペリエンスは、RNObject
を継承する標準オブジェクトについては少し複雑です。カスタム・オブジェクトとカスタム属性の場合、さらに複雑です。
Oracle RightNowアダプタは、標準オブジェクト、カスタム・オブジェクトおよびカスタム・フィールドの第1級オブジェクトとして要素定義を昇格することで、複雑な変換を作成する際に実行する必要のある手順の数を削減し、ソースからターゲット定義にマッピングする作業を簡略化します。
次に、Oracle RightNowアダプタがある場合とない場合のカスタム・オブジェクトのマッピング・エクスペリエンスのサンプルを示します。この例は、一般的ではない可能性がありますが、マッピング・エクスペリエンスと、Oracle RightNowアダプタがある場合とない場合の処理の違いを理解するために役立ちます。
最初の例は、Oracle RightNowアダプタを使用しないでOracle RightNowカスタム・オブジェクトをマッピングする方法を示しています。2番目の例は、同じマッピングを示していますが、大幅に簡略化されているところが異なります(アダプタによってプロセスが簡略化されます)。
この項では、Oracle RightNowアダプタを使用せずにカスタム・オブジェクト・インスタンスを作成する方法について説明します。このシナリオでは、SOAコンポジットを作成し、Webサービス・アダプタを使用してRightNowサービスのクライアントを作成します。次に、XSLTマッパーを使用してクライアント・ソース・スキーマからカスタム・オブジェクト・スキーマへのデータ・マッピングを作成する場合に必要な手順を示します。
図4-1を参照してください。
TypeName
に設定します(RightNowで作成されたRightNow CustomObject名の値)。dataType
に設定します(STRINGやINTEGERなど、カスタム属性のデータ型の値)。name
に設定します(カスタム属性の名前)。StringValue
に設定します(属性の値)。図4-1 Oracle RightNowアダプタが生成するWSDLを使用せずにXSLTマッパーを使用してスキーマのRightNowカスタム・オブジェクトをマップする方法
ソース・ビューは次のとおりです。
この項では、Oracle RightNowアダプタを使用してカスタム・オブジェクト・インスタンスを作成する方法について説明します。SOAコンポジットを作成し、Webサービス・アダプタを使用して統合が容易なOracle RightNowアダプタが生成するWSDLのクライアントを作成します。
次の手順によって、XSLTマッパーを使用してクライアント・ソース・スキーマからカスタム・オブジェクト・スキーマへのデータ・マッピングを作成します(スキーマは、厳密に型指定され、Oracle RightNowアダプタが生成する統合が容易なWSDLから参照されます)。カスタム・オブジェクトは、次に示すとおり、直接マッパーのフィールドとなる生成されたローカルWSDLマップの第1クラス・エンティティです。