Oracle® Fusion Middleware Oracle Cloud Adapter for Oracle RightNow Cloud Serviceユーザーズ・ガイド 12c (12.1.3) E59443-02 |
|
![]() 前 |
![]() 次 |
この章では、Oracle RightNowアダプタの設計時および実行時の高度な機能について説明します。
この章には、次の機能に関する情報が含まれます。
Oracle RightNowアダプタでは、ビジネス・オブジェクトに対して操作を実行できるようにする接続が必要です。ビジネス・オブジェクトに対する操作に加え、RightNow APIモデルには、Oracle RightNowアダプタがRightNow Cxと通信する場合に使用されるトランザクション・タイプの定義も含まれます。
Oracle RightNowアダプタでアクションを実行できるオブジェクトには、次の2つのタイプがあります。
標準ビジネス・オブジェクト。これらは、Oracle RightNow SaaSアプリケーションによって提供されるオブジェクトです。プライマリ・オブジェクトは、直接作成、読取り、更新および削除できる一意のID (主キー)を持つオブジェクトです。プライマリ・オブジェクトは、すべてRightNow RNObjectから継承されます。プライマリ・オブジェクトには、Oracle RightNow Cxプラットフォームで設定されたライフサイクルはなく、オブジェクトが作成されると、それらは削除されるまでシステム内に存在し続けます。プライマリ・オブジェクトが独自のライフサイクルを持つ一方で、単一のプライマリ・オブジェクトに対して0から複数個存在できるサブオブジェクトは、プライマリ・オブジェクトのコンテキスト内で存在します。したがって、それらのライフサイクルは、プライマリ・オブジェクトのライフサイクルに基づきます。オブジェクトの正確なライフサイクル動作は、メタデータまたはオブジェクト・モデルのドキュメントに含まれるリレーションシップ情報から取得できます。
カスタム・ビジネス・オブジェクト。カスタム・ビジネス・オブジェクトは、ユーザーによって作成されたオブジェクトです。これは、任意の標準オブジェクトに基づいてモデル化することも、完全に独自のものにすることもできます。作成されると、カスタム・オブジェクトは、標準のプライマリ・オブジェクトのように扱われ、そのように動作します。標準オブジェクトとカスタム・オブジェクトの唯一の違いは、使用されるオブジェクトの名前にあります。プライマリ・オブジェクトの場合、Contactなどのクラス名を使用できます。カスタム・オブジェクトの場合、カスタム・オブジェクトを一意に識別するパッケージ名とカスタム・オブジェクト名の組合せを使用できます。パッケージ名とオブジェクト名は、「.」によって結合されます。たとえば、COというカスタム・オブジェクト・パッケージとPurchasedProduct
というカスタム・オブジェクトがある場合、このオブジェクトはCO$PurchasedProduct
として参照できます。
RightNowアダプタでは、RightNow SaaSアプリケーションによってサポートされるメッセージ交換パターンがサポートされます。これは同期リクエスト(レスポンス・ベースのメッセージ交換パターン)です。BPEL / OSBアプリケーションは、RightNowアダプタに対する同期リクエストを作成してレスポンスを待機します。次に、アダプタは、同じスレッドに対する必要な変換を実行してから、RightNow SOAP APIを使用してRightNow Cxサーバーに対する同期リクエストを作成します。
その後、必要な処理の後にRightNowアプリケーションによって返されたレスポンスが、コール側スレッドに受信されます。アダプタは、変換を実行してからレスポンスをBPEL / OSBベースのクライアント・アプリケーションに戻します。
RightNow Cxオブジェクトに書き込まれるすべての操作(作成や更新など)は、デフォルトでコミットされます。バッチ操作によって、統合開発者は、デフォルトをオーバーライドできます。詳細は、バッチ・サポートに関する項を参照してください。
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を参照してください。
XSLTエディタのターゲット・スキーマ・ノードRNObjectで、右クリックして「要素またはタイプの置換」を選択し、汎用オブジェクトを選択します。
Object ObjectType→TypeName
に設定します(RightNowで作成されたRightNow CustomObject名の値)。
GenericFields→dataType
に設定します(STRINGやINTEGERなど、カスタム属性のデータ型の値)。
GenericFields→name
に設定します(カスタム属性の名前)。
GenericFields→DataValute→StringValue
に設定します(属性の値)。
図4-1 Oracle RightNowアダプタが生成するWSDLを使用せずにXSLTマッパーを使用してスキーマのRightNowカスタム・オブジェクトをマップする方法
ソース・ビューは次のとおりです。
この項では、Oracle RightNowアダプタを使用してカスタム・オブジェクト・インスタンスを作成する方法について説明します。SOAコンポジットを作成し、Webサービス・アダプタを使用して統合が容易なOracle RightNowアダプタが生成するWSDLのクライアントを作成します。
次の手順によって、XSLTマッパーを使用してクライアント・ソース・スキーマからカスタム・オブジェクト・スキーマへのデータ・マッピングを作成します(スキーマは、厳密に型指定され、Oracle RightNowアダプタが生成する統合が容易なWSDLから参照されます)。カスタム・オブジェクトは、次に示すとおり、直接マッパーのフィールドとなる生成されたローカルWSDLマップの第1クラス・エンティティです。
カスタム・オブジェクトは、ユーザーによって作成されたオブジェクトです。これは、任意の標準オブジェクトに基づいてモデル化することも、完全に独自のものにすることもできます。これは、スタンドアロン・オブジェクトにすることも、既存の標準オブジェクトの子にすることもできます。
RightNow Cxサーバーでカスタム・オブジェクトを作成するには、次の手順を実行します。
Oracle RightNow Cxクライアントにログインし、4.4.2.1項「RightNow Cxでのアクセス制限パーミッションの構成」の手順に従います。
ナビゲーション・ペインの「環境設定」をクリックします。
「データベース」の下の「オブジェクト・デザイナ」をダブルクリックします。コンテンツ・ペインにオブジェクト・デザイナが表示されます。
カスタム・オブジェクトを追加するパッケージを選択するか、リボンの「新規」をクリックして「パッケージ」を選択し、オブジェクト用の新しいパッケージを作成します。パッケージの名前を入力します。パッケージ名の長さは、2から11文字の間にする必要があります。
リボンの「新規」をクリックして「オブジェクト」を選択します。オブジェクトのサマリー・ページが表示されます。
「名前」フィールドにオブジェクトの名前を入力します。
リボンの「フィールド」をクリックしてオブジェクトに定義済フィールドまたはカスタマイズ済フィールドを追加し、カスタム・フィールドを追加します。詳細は、Oracle RightNow Connect Web Services for SOAPのドキュメントを参照してください。
リボンの「保存&閉じる」ボタンをクリックしてカスタム・オブジェクトに変更を保存します。「保存」または「保存&閉じる」ボタンがクリックされると、RightNowによる検証が実行されます。フィールド名の欠落など、検証エラーがメッセージに表示されたら、オブジェクトを保存する前にそれを修正する必要があります。
準備ができたらカスタム・オブジェクトをデプロイします。
カスタム・オブジェクトの作成後、操作を実行する対象となるオブジェクトを選択できます。
カスタム・オブジェクトを選択すると、統合の容易なWSDLが、厳密に型指定された形式のカスタム・オブジェクト・スキーマとともに生成されます。図4-5は、生成されたカスタム・オブジェクト・スキーマの非標準的なサンプルを示しています。
Oracle RightNowアダプタでは、Oracle RightNowアダプタ構成ウィザード内での接続の構成中に取得された資格証明を格納するために、資格証明ストア・フレームワークを使用します。これによって、構成中に取得された資格証明が、セキュアな形式で格納され、SOAコンポジットやOracle Service Busフローとともに格納されないことが保証されます。
現在、CSF_KEYおよび関連する資格証明は、コンポジットが実行時にデプロイされるWebLogic Serverドメインに自動的に移行されません。
したがって、統合開発者または管理者は、Fusion Middleware Controlコンソールを使用してCSFキーを作成および構成する必要があります。CSFキーの構成方法の詳細は、付録A「RightNow資格証明を管理するための資格証明ストアの構成」を参照してください。
アダプタは、実行時に、設計時に指定されたCSF_KEYに基づいて資格証明ストア・フレームワークから自動的に資格証明を取得します。これらの資格証明は、認証のためにRightNow Cxサーバーに送信されるドキュメントのSOAPヘッダーにインジェクトされます。
次の項では、アカウント・パスワードを使用してOracle RightNow Cxサーバーで認証を行う方法について説明します。この項の内容は次のとおりです。
Oracle Cloud Connect Web Services for SOAP APIがリクエストを受信すると、一連のアクセス制御方法が強制されます。
APIがサイト・レベルで有効になっていることを確認するため、サイト構成がチェックされます。
リクエストに指定されたユーザー資格証明が検証されます。
適切なプロファイル・ビットが有効になっていることを確認するため、指定されたアカウントのプロファイルがチェックされます。プロファイルは、管理機能に対するアクセスの制御と、スタッフ・メンバー固有のパーミッション、デフォルトのワークスペース、デフォルトのナビゲーション・セットおよびレポート・アクセスの割当てを行うためのメカニズムです。
注意: サーバー側のアクセス制御は、Oracle Cloud Connect Web Services for SOAPによって作成されるすべてのコアAPIコールに対して強制されます。現在のパーミッションは、Oracle RightNowのプロファイル・パーミッション・エディタの読取り、編集、削除および移動の各チェック・ボックスにマップされます。サーバー側のアクセスは、2013年5月以降の新しいサイトではデフォルトで有効化されますが、2013年5月のリリースより前にアップグレードされたサイトでは無効化されます。既存のOracle RightNowユーザーで、サイトを2013年5月以降のビルドにアップグレードする予定の場合、このセキュリティ強化機能を有効化するようにカスタマ・サポートに連絡してください。すでにサーバー側のアクセス制御が現在のサイトで有効化されている場合、プロファイル・パーミッションの変更は慎重に行ってください。Oracle RightNow管理者がOracle Cloud Connect Web Services for SOAP統合のプロファイルに対するパーミッションを変更すると、それによって統合が破損する可能性があります。 |
Oracle Cloud Connect Web Services for SOAPへのアクセスは、それが有効化されているサイトでのみ可能です。Oracle Cloud Connect Web Services for SOAPが有効でない場合、APIが動作せず、リクエスト・エラーが返されるため、Oracleアカウント・マネージャに連絡してください。
検証の失敗やインバウンド・リクエストのデータ関連エラーが発生するたびに、リクエスト・エラーが生成されます。例外コードはACCESS_DENIED
で、メッセージはSOAP_SERVER_DISABLED
というメッセージ・ベース文字列になります。
リクエスト・エラーと例外コードの詳細は、Oracle Connect Web Services for SOAPを参照してください。
Oracle RightNow Cxを通じてスタッフ・アカウントを認証するには、Oracle RightNow Cxのプロファイル・パーミッション・エディタでそのプロファイルを更新しておく必要があります。パーミッションのチェック・ボックスは、「スタッフ・マネジメント」→「プロファイル」→「パーミッション」にあります。
また、RightNow Cx管理者は、Oracle RightNow Cxプラットフォームの構成設定を使用して、IPアドレスによってOracle Cloud Connect Web Services for SOAP統合へのアクセスを制限できます。次の設定は、「サイト構成」→「環境設定」にあります。
SEC_PAPI_INTEG_HOSTS_SOAP
: SOAPインタフェースに対するアクセスを許可するホストを定義します。有効なエントリには、ワイルドカード、特定のIPアドレス、またはIPサブネット・マスク(*.rightnow.com、1.2.3.4、10.11.12.0/255.255.255.0など)を含むドメイン名のカンマ区切りのリストがあります。
このリストのエントリに一致するホストからログインしているユーザーのみが、SOAPインタフェースへのアクセスを許可されます。デフォルトは空白です。
アクセス制限パーミッションを構成するには、次の手順を実行します。
Oracle RightNow Cxクライアントをインストールします。
ワークステーションにインストールされたOracle RightNow Cxクライアントにログインします。すぐにアプリケーションの構成とカスタマイズを開始できます。
将来同じサイトにアクセスするには、「スタート」メニュー→「すべてのプログラム」→「RightNow」→「RightNow (<site_name>)」を選択してクライアントを起動します。クライアント・アプリケーションは、サイト・ベースのため、アクセスするサイトごとに個別のクライアントをデプロイする必要があります。
ただし、1つのクライアント・アプリケーションを使用して、1つのサイトのすべてのインタフェースにアクセスできます。インタフェースは、クライアントのデプロイと同じ方法でクライアントに追加されます。
インタフェースの「準備完了」ページにアクセスし、「Oracle RightNow CX Cloud Serviceのインストール」ボタンをクリックすると(Oracle RightNow Cxユーザーズ・ガイドを参照)、デプロイメント・ツールによって、クライアントの「ログイン」ウィンドウの「インタフェース」ドロップダウン・メニューにインタフェースが追加されます。
SEC_PAPI_INTEG_HOSTS_SOAP
設定を構成します。Oracle RightNow CXユーザーズ・ガイドを参照してください。
リクエストがAPIに送信され、サイト構成が検証されたら、次の手順では、アカウント資格証明を検証します。資格証明が確認されないと、リクエスト・エラーが返されます。例外コードはINVALID_LOGIN
で、メッセージはメッセージ・ベース文字列LOGIN_ID_PASSWD_COMBINATION_INV_MSG
になります。
セキュリティ・ヘッダーで使用されるスタッフ・アカウントのプロファイルでは、「公開SOAP API」プロファイル・ビットを有効にする必要があります。このビットが有効でない場合、リクエスト・エラーが返されます。例外コードはACCESS_DENIED
で、メッセージはメッセージ・ベース文字列PROFILE_NO_SOAP_ACCESS_MSG
になります。
Web Services Policy 1.2を使用するOracle Cloud Connect Web Service for SOAPは、http://specs.xmlsoap.org/ws/2004/09/policy/ws-policy.pdfでクライアント認証が定義されています。
セキュリティ・ポリシーのサポートXSDは、http://schemas.xmlsoap.org/ws/2004/09/policy/ws-policy.xsdにあります。
シングル・サインオンで認証するには、「Authenticating with SAML 2.0」を参照してください。
WS-Security仕様では、次のネームスペースのSOAPヘッダーにSecurityタグが必要です。
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
Security
タグの内部に、UsernameToken
タグ(WS-Security UsernameToken Profile 1.0仕様の一部)があります。UsernameToken
タグには、Username
、Password
、Nonce
およびCreated
の各要素が含まれます。Password
要素には、Password
要素の内容がPasswordText
であるかどうかを指定するType
属性が含まれます。Oracle Cloud Connect Web Services for SOAPでは、PasswordDigest
はサポートされません。
Nonce
およびCreated
要素はサポートされません。PasswordDigest
タイプやCreated/Nonce
要素が含まれるリクエストを受信すると、サーバーは、不正な形式のリクエストとしてそのリクエストを拒否します。
次に、ユーザー名とパスワードの資格証明を含むSOAPリクエストの例を示します。
例4-1 ユーザー名とパスワードの資格証明を含むSOAPリクエストの例
soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004 /01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1"> <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/ oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UsernameToken-3902281"> <wsse:Username>comland</wsse:Username> <wsse:Password Type= "http://docs.oasis-open.org/wss/2004 /01/oasis-200401-wss-username-token-profile-1.0 #PasswordText">Connect1</wsse:Password> </wsse:UsernameToken> </wsse:Security> </soapenv:Header> </soapenv:Envelope>
テスト機能は、2つの形式で使用可能なOracle RightNowアダプタに特有の機能です。
第1の形式では、接続パラメータをテストできます。第2の形式では、ROQL問合せを検証して実行できます。
次の項では、これらの2つの機能について詳しく説明します。
設計時のテスト機能には、次のテスト機能が含まれます。
RightNow CX Cloud接続のテスト: Oracle RightNowアダプタ構成ウィザードの接続ページにテスト・ボタンがあります。
「テスト」をクリックすると、次のいずれかのメッセージが表示されます。
成功
- 接続に成功した場合
失敗
- ログイン中に例外が発生した場合
問合せテスト・ツール: このツールによって、問合せを実行してテストします。Oracle RightNowアダプタ構成ウィザードの操作ページで「ROQL」を選択すると、問合せ文テキスト・ボックスと、問合せ結果を示した結果ボックスが含まれるテスト・ダイアログ・ボックスが表示されます。
このアダプタには、次の制限および制約が適用されます。次のものが含まれます。
破棄削除操作でOracle RightNowアダプタを使用する場合、カスケード削除効果が発生します。
プライマリ・オブジェクトは、削除操作を通じて直接削除されます。プライマリ・オブジェクトを破棄するには、オブジェクトのインスタンスがインスタンス化され、IDプロパティが設定されている必要がありますが、他のフィールドが移入されている必要はありません。プライマリ・オブジェクトが削除されると、その操作は関連するプライマリ・オブジェクトにもカスケードされる可能性があります。
カスケード削除効果の詳細とカスケード削除効果の原因となる集約の概要は、Oracle RightNow Connect Web Services for SOAP開発者ガイドを参照してください。
Oracle Cloud Connect Web Services for SOAPの使用に制限はありませんが、RightNow Cxサーバーによって強制される事実上の制限があります。
Oracle RightNowアダプタの使用に関連する2つの重要な制限があります。
SOAPリクエスト当たり100個のバッチ・アイテム。バッチ操作によって、100個のアイテムのハード制限が強制されます。この制限を超えると、操作の完了前にフォルトが返されます。制限を超えると、バッチ・アイテムは処理されません。
個々の作成、取得、更新および破棄操作は、1000個のアイテムに制限されます。RightNow Cxサーバーは、最初にリクエスト内のアイテム数を確認し、アイテム数が1000個を超える場合、またはそのアイテム数が原因となってアイテムの合計数がリクエストの最大値を超える場合、RightNow Cxサーバーは例外をスローしてリクエストの処理を行いません。
SOAPリクエスト当たり10,000個の合計入力オブジェクト。マルチオブジェクトのCreate
、Get
、Update
およびDestroy
操作とバッチ操作の組合せは、SOAPリクエスト当たり10,000個の合計入力オブジェクトに制限されます。RightNow Cxは、作成、取得、更新および破棄操作によって管理されるオブジェクトの累計を維持します。バルク操作が1つ発生するたびに、リクエストで処理されるオブジェクトの合計数にアイテムの数が追加されます。
バッチ操作の処理は、10,000個のオブジェクトの制限に到達するまで発生します。到達すると、10,000個の制限の原因となった操作は終了し、フォルトが返されます。入力オブジェクトを含まないバッチ・リクエスト内の操作の実行は、継続されます。
これらの3つの制限(100、1000、10000)は、別個に扱われます。いくつかの操作は、バルク制限と合計操作制限の両方に影響します(作成、取得、更新および破棄など)。
詳細は、Oracle RightNow Connect Web Services for SOAP開発者ガイドを参照してください。