ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Cloud Adapter for Oracle RightNow Cloud Serviceユーザーズ・ガイド
12c (12.1.3)
E59443-02
  目次へ移動
目次

前
 
次
 

4 RightNowアダプタの高度な概念の理解

この章では、Oracle RightNowアダプタの設計時および実行時の高度な機能について説明します。

この章には、次の機能に関する情報が含まれます。

4.1 SOAP APIの理解

Oracle RightNowアダプタでは、ビジネス・オブジェクトに対して操作を実行できるようにする接続が必要です。ビジネス・オブジェクトに対する操作に加え、RightNow APIモデルには、Oracle RightNowアダプタがRightNow Cxと通信する場合に使用されるトランザクション・タイプの定義も含まれます。

4.1.1 オブジェクトの理解

Oracle RightNowアダプタでアクションを実行できるオブジェクトには、次の2つのタイプがあります。

  • 標準ビジネス・オブジェクト。これらは、Oracle RightNow SaaSアプリケーションによって提供されるオブジェクトです。プライマリ・オブジェクトは、直接作成、読取り、更新および削除できる一意のID (主キー)を持つオブジェクトです。プライマリ・オブジェクトは、すべてRightNow RNObjectから継承されます。プライマリ・オブジェクトには、Oracle RightNow Cxプラットフォームで設定されたライフサイクルはなく、オブジェクトが作成されると、それらは削除されるまでシステム内に存在し続けます。プライマリ・オブジェクトが独自のライフサイクルを持つ一方で、単一のプライマリ・オブジェクトに対して0から複数個存在できるサブオブジェクトは、プライマリ・オブジェクトのコンテキスト内で存在します。したがって、それらのライフサイクルは、プライマリ・オブジェクトのライフサイクルに基づきます。オブジェクトの正確なライフサイクル動作は、メタデータまたはオブジェクト・モデルのドキュメントに含まれるリレーションシップ情報から取得できます。

  • カスタム・ビジネス・オブジェクト。カスタム・ビジネス・オブジェクトは、ユーザーによって作成されたオブジェクトです。これは、任意の標準オブジェクトに基づいてモデル化することも、完全に独自のものにすることもできます。作成されると、カスタム・オブジェクトは、標準のプライマリ・オブジェクトのように扱われ、そのように動作します。標準オブジェクトとカスタム・オブジェクトの唯一の違いは、使用されるオブジェクトの名前にあります。プライマリ・オブジェクトの場合、Contactなどのクラス名を使用できます。カスタム・オブジェクトの場合、カスタム・オブジェクトを一意に識別するパッケージ名とカスタム・オブジェクト名の組合せを使用できます。パッケージ名とオブジェクト名は、「.」によって結合されます。たとえば、COというカスタム・オブジェクト・パッケージとPurchasedProductというカスタム・オブジェクトがある場合、このオブジェクトはCO$PurchasedProductとして参照できます。

4.1.2 トランザクションの理解

RightNowアダプタでは、RightNow SaaSアプリケーションによってサポートされるメッセージ交換パターンがサポートされます。これは同期リクエスト(レスポンス・ベースのメッセージ交換パターン)です。BPEL / OSBアプリケーションは、RightNowアダプタに対する同期リクエストを作成してレスポンスを待機します。次に、アダプタは、同じスレッドに対する必要な変換を実行してから、RightNow SOAP APIを使用してRightNow Cxサーバーに対する同期リクエストを作成します。

その後、必要な処理の後にRightNowアプリケーションによって返されたレスポンスが、コール側スレッドに受信されます。アダプタは、変換を実行してからレスポンスをBPEL / OSBベースのクライアント・アプリケーションに戻します。

RightNow Cxオブジェクトに書き込まれるすべての操作(作成や更新など)は、デフォルトでコミットされます。バッチ操作によって、統合開発者は、デフォルトをオーバーライドできます。詳細は、バッチ・サポートに関する項を参照してください。

4.2 Oracle 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級オブジェクトとして要素定義を昇格することで、複雑な変換を作成する際に実行する必要のある手順の数を削減し、ソースからターゲット定義にマッピングする作業を簡略化します。

4.2.1 例: カスタム・オブジェクトのマッピング

次に、Oracle RightNowアダプタがある場合とない場合のカスタム・オブジェクトのマッピング・エクスペリエンスのサンプルを示します。この例は、一般的ではない可能性がありますが、マッピング・エクスペリエンスと、Oracle RightNowアダプタがある場合とない場合の処理の違いを理解するために役立ちます。

最初の例は、Oracle RightNowアダプタを使用しないでOracle RightNowカスタム・オブジェクトをマッピングする方法を示しています。2番目の例は、同じマッピングを示していますが、大幅に簡略化されているところが異なります(アダプタによってプロセスが簡略化されます)。

4.2.1.1 例: Oracle RightNowアダプタを使用しないオブジェクトのマッピング

この項では、Oracle RightNowアダプタを使用せずにカスタム・オブジェクト・インスタンスを作成する方法について説明します。このシナリオでは、SOAコンポジットを作成し、Webサービス・アダプタを使用してRightNowサービスのクライアントを作成します。XSLTマッパーを使用してクライアント・ソース・スキーマからカスタム・オブジェクト・スキーマへのデータ・マッピングを作成する場合、次の手順が必要です。

図4-1を参照してください。

  1. XSLTエディタのターゲット・スキーマ・ノードRNObjectで、右クリックして「要素またはタイプの置換」を選択し、汎用オブジェクトを選択します。

  2. Object ObjectTypeTypeNameに設定します(RightNowで作成されたRightNow CustomObject名の値)。

  3. GenericFieldsdataTypeに設定します(STRINGやINTEGERなど、カスタム属性のデータ型の値)。

  4. GenericFieldsnameに設定します(カスタム属性の名前)。

  5. GenericFieldsDataValuteStringValueに設定します(属性の値)。

図4-1 Oracle RightNowアダプタが生成するWSDLを使用せずにXSLTマッパーを使用してスキーマのRightNowカスタム・オブジェクトをマップする方法

図4-1の説明が続きます
「図4-1 Oracle RightNowアダプタが生成するWSDLを使用せずにXSLTマッパーを使用してスキーマのRightNowカスタム・オブジェクトをマップする方法」の説明

ソース・ビューは次のとおりです。

図4-2 ソース・モードのサンプルXSLファイル

図4-2の説明が続きます
「図4-2 ソース・モードのサンプルXSLファイル」の説明

4.2.1.2 例: Oracle RightNowアダプタを使用したオブジェクトのマッピング

この項では、Oracle RightNowアダプタを使用してカスタム・オブジェクト・インスタンスを作成する方法について説明します。SOAコンポジットを作成し、Webサービス・アダプタを使用して統合が容易なOracle RightNowアダプタが生成するWSDLのクライアントを作成します。

次の手順によって、XSLTマッパーを使用してクライアント・ソース・スキーマからカスタム・オブジェクト・スキーマへのデータ・マッピングを作成します(スキーマは、厳密に型指定され、Oracle RightNowアダプタが生成する統合が容易なWSDLから参照されます)。カスタム・オブジェクトは、次に示すとおり、直接マッパーのフィールドとなる生成されたローカルWSDLマップの第1クラス・エンティティです。

4.3 クラウドでのカスタム・オブジェクトとの統合

カスタム・オブジェクトは、ユーザーによって作成されたオブジェクトです。これは、任意の標準オブジェクトに基づいてモデル化することも、完全に独自のものにすることもできます。これは、スタンドアロン・オブジェクトにすることも、既存の標準オブジェクトの子にすることもできます。

4.3.1 RightNow Cxサーバーでのカスタム・オブジェクトの作成

RightNow Cxサーバーでカスタム・オブジェクトを作成するには、次の手順を実行します。

  1. Oracle RightNow Cxクライアントにログインし、4.4.2.1項「RightNow Cxでのアクセス制限パーミッションの構成」の手順に従います。

  2. ナビゲーション・ペインの「環境設定」をクリックします。

  3. 「データベース」の下の「オブジェクト・デザイナ」をダブルクリックします。コンテンツ・ペインにオブジェクト・デザイナが表示されます。

  4. カスタム・オブジェクトを追加するパッケージを選択するか、リボンの「新規」をクリックして「パッケージ」を選択し、オブジェクト用の新しいパッケージを作成します。パッケージの名前を入力します。パッケージ名の長さは、2から11文字の間にする必要があります。

  5. リボンの「新規」をクリックして「オブジェクト」を選択します。オブジェクトのサマリー・ページが表示されます。

    図4-3 オブジェクトのサマリー・ページ

    図4-3の説明が続きます
    「図4-3 オブジェクトのサマリー・ページ」の説明

  6. 「名前」フィールドにオブジェクトの名前を入力します。

  7. リボンの「フィールド」をクリックしてオブジェクトに定義済フィールドまたはカスタマイズ済フィールドを追加し、カスタム・フィールドを追加します。詳細は、Oracle RightNow Connect Web Services for SOAPのドキュメントを参照してください。

  8. リボンの「保存&閉じる」ボタンをクリックしてカスタム・オブジェクトに変更を保存します。「保存」または「保存&閉じる」ボタンがクリックされると、RightNowによる検証が実行されます。フィールド名の欠落など、検証エラーがメッセージに表示されたら、オブジェクトを保存する前にそれを修正する必要があります。

  9. 準備ができたらカスタム・オブジェクトをデプロイします。

4.3.2 カスタム・オブジェクトの選択による操作の実行

カスタム・オブジェクトの作成後、操作を実行する対象となるオブジェクトを選択できます。

  1. 図4-4 カスタム・オブジェクトの選択による操作の実行

    図4-4の説明が続きます
    「図4-4 カスタム・オブジェクトの選択による操作の実行」の説明

    カスタム・オブジェクトを選択すると、統合の容易なWSDLが、厳密に型指定された形式のカスタム・オブジェクト・スキーマとともに生成されます。図4-5は、生成されたカスタム・オブジェクト・スキーマの非標準的なサンプルを示しています。

    図4-5 カスタム・オブジェクト・スキーマの例

    図4-5の説明が続きます
    「図4-5 カスタム・オブジェクト・スキーマの例」の説明

4.4 Oracle RightNowアダプタのセキュリティ管理の理解

Oracle RightNowアダプタでは、Oracle RightNowアダプタ構成ウィザード内での接続の構成中に取得された資格証明を格納するために、資格証明ストア・フレームワークを使用します。これによって、構成中に取得された資格証明が、セキュアな形式で格納され、SOAコンポジットやOracle Service Busフローとともに格納されないことが保証されます。

現在、CSF_KEYおよび関連する資格証明は、コンポジットが実行時にデプロイされるWebLogic Serverドメインに自動的に移行されません。

したがって、統合開発者または管理者は、Fusion Middleware Controlコンソールを使用してCSFキーを作成および構成する必要があります。CSFキーの構成方法の詳細は、付録A「RightNow資格証明を管理するための資格証明ストアの構成」を参照してください。

アダプタは、実行時に、設計時に指定されたCSF_KEYに基づいて資格証明ストア・フレームワークから自動的に資格証明を取得します。これらの資格証明は、認証のためにRightNow Cxサーバーに送信されるドキュメントのSOAPヘッダーにインジェクトされます。

4.4.1 アカウント・パスワードによるOracle RightNow Cxサーバーでの認証

次の項では、アカウント・パスワードを使用してOracle RightNow Cxサーバーで認証を行う方法について説明します。この項の内容は次のとおりです。

4.4.1.1 Oracle RightNow CXサーバーでのアクセス制御の理解

Oracle Cloud Connect Web Services for SOAP APIがリクエストを受信すると、一連のアクセス制御方法が強制されます。

  1. APIがサイト・レベルで有効になっていることを確認するため、サイト構成がチェックされます。

  2. リクエストに指定されたユーザー資格証明が検証されます。

  3. 適切なプロファイル・ビットが有効になっていることを確認するため、指定されたアカウントのプロファイルがチェックされます。プロファイルは、管理機能に対するアクセスの制御と、スタッフ・メンバー固有のパーミッション、デフォルトのワークスペース、デフォルトのナビゲーション・セットおよびレポート・アクセスの割当てを行うためのメカニズムです。


    注意:

    サーバー側のアクセス制御は、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統合のプロファイルに対するパーミッションを変更すると、それによって統合が破損する可能性があります。


4.4.2 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のプロファイル・パーミッション・エディタでそのプロファイルを更新しておく必要があります。パーミッションのチェック・ボックスは、「スタッフ・マネジメント」→「プロファイル」→「パーミッション」にあります。

図4-6 パーミッションのチェック・ボックスの場所

図4-6の説明が続きます
「図4-6 パーミッションのチェック・ボックスの場所」の説明

また、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インタフェースへのアクセスを許可されます。デフォルトは空白です。

4.4.2.1 RightNow Cxでのアクセス制限パーミッションの構成

アクセス制限パーミッションを構成するには、次の手順を実行します。

  1. Oracle RightNow Cxクライアントをインストールします。

  2. ワークステーションにインストールされたOracle RightNow Cxクライアントにログインします。すぐにアプリケーションの構成とカスタマイズを開始できます。

    将来同じサイトにアクセスするには、「スタート」メニュー→「すべてのプログラム」→「RightNow」→「RightNow (<site_name>)」を選択してクライアントを起動します。クライアント・アプリケーションは、サイト・ベースのため、アクセスするサイトごとに個別のクライアントをデプロイする必要があります。

    ただし、1つのクライアント・アプリケーションを使用して、1つのサイトのすべてのインタフェースにアクセスできます。インタフェースは、クライアントのデプロイと同じ方法でクライアントに追加されます。

    インタフェースの「準備完了」ページにアクセスし、「Oracle RightNow CX Cloud Serviceのインストール」ボタンをクリックすると(Oracle RightNow Cxユーザーズ・ガイドを参照)、デプロイメント・ツールによって、クライアントの「ログイン」ウィンドウの「インタフェース」ドロップダウン・メニューにインタフェースが追加されます。

  3. SEC_PAPI_INTEG_HOSTS_SOAP設定を構成します。Oracle RightNow CXユーザーズ・ガイドを参照してください。

4.4.3 アカウント資格証明の検証

リクエストがAPIに送信され、サイト構成が検証されたら、次の手順では、アカウント資格証明を検証します。資格証明が確認されないと、リクエスト・エラーが返されます。例外コードはINVALID_LOGINで、メッセージはメッセージ・ベース文字列LOGIN_ID_PASSWD_COMBINATION_INV_MSGになります。

4.4.4 プロファイル構成

セキュリティ・ヘッダーで使用されるスタッフ・アカウントのプロファイルでは、「公開SOAP API」プロファイル・ビットを有効にする必要があります。このビットが有効でない場合、リクエスト・エラーが返されます。例外コードはACCESS_DENIEDで、メッセージはメッセージ・ベース文字列PROFILE_NO_SOAP_ACCESS_MSGになります。

4.4.5 パスワード・ベースの認証

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タグには、UsernamePasswordNonceおよび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>

4.5 Oracle RightNowアダプタのテスト機能

テスト機能は、2つの形式で使用可能なOracle RightNowアダプタに特有の機能です。

第1の形式では、接続パラメータをテストできます。第2の形式では、ROQL問合せを検証して実行できます。

次の項では、これらの2つの機能について詳しく説明します。

4.5.1 設計時のテスト機能の詳細

設計時のテスト機能には、次のテスト機能が含まれます。

  • RightNow CX Cloud接続のテスト: Oracle RightNowアダプタ構成ウィザードの接続ページにテスト・ボタンがあります。

    「テスト」をクリックすると、次のいずれかのメッセージが表示されます。

    • 成功 - 接続に成功した場合

    • 失敗 - ログイン中に例外が発生した場合

  • 問合せテスト・ツール: このツールによって、問合せを実行してテストします。Oracle RightNowアダプタ構成ウィザードの操作ページで「ROQL」を選択すると、問合せ文テキスト・ボックスと、問合せ結果を示した結果ボックスが含まれるテスト・ダイアログ・ボックスが表示されます。

4.6 Oracle RightNowアダプタの制限および制約の処理

このアダプタには、次の制限および制約が適用されます。次のものが含まれます。

4.6.1 削除カスケードの削除効果

破棄削除操作でOracle RightNowアダプタを使用する場合、カスケード削除効果が発生します。

プライマリ・オブジェクトは、削除操作を通じて直接削除されます。プライマリ・オブジェクトを破棄するには、オブジェクトのインスタンスがインスタンス化され、IDプロパティが設定されている必要がありますが、他のフィールドが移入されている必要はありません。プライマリ・オブジェクトが削除されると、その操作は関連するプライマリ・オブジェクトにもカスケードされる可能性があります。

カスケード削除効果の詳細とカスケード削除効果の原因となる集約の概要は、Oracle RightNow Connect Web Services for SOAP開発者ガイドを参照してください。

4.6.2 RightNow Cxサーバーにより強制されるAPI制限

Oracle Cloud Connect Web Services for SOAPの使用に制限はありませんが、RightNow Cxサーバーによって強制される事実上の制限があります。

Oracle RightNowアダプタの使用に関連する2つの重要な制限があります。

  • SOAPリクエスト当たり100個のバッチ・アイテム。バッチ操作によって、100個のアイテムのハード制限が強制されます。この制限を超えると、操作の完了前にフォルトが返されます。制限を超えると、バッチ・アイテムは処理されません。

  • 個々の作成、取得、更新および破棄操作は、1000個のアイテムに制限されます。RightNow Cxサーバーは、最初にリクエスト内のアイテム数を確認し、アイテム数が1000個を超える場合、またはそのアイテム数が原因となってアイテムの合計数がリクエストの最大値を超える場合、RightNow Cxサーバーは例外をスローしてリクエストの処理を行いません。

  • SOAPリクエスト当たり10,000個の合計入力オブジェクト。マルチオブジェクトのCreateGetUpdateおよびDestroy操作とバッチ操作の組合せは、SOAPリクエスト当たり10,000個の合計入力オブジェクトに制限されます。RightNow Cxは、作成、取得、更新および破棄操作によって管理されるオブジェクトの累計を維持します。バルク操作が1つ発生するたびに、リクエストで処理されるオブジェクトの合計数にアイテムの数が追加されます。

    バッチ操作の処理は、10,000個のオブジェクトの制限に到達するまで発生します。到達すると、10,000個の制限の原因となった操作は終了し、フォルトが返されます。入力オブジェクトを含まないバッチ・リクエスト内の操作の実行は、継続されます。

    これらの3つの制限(100、1000、10000)は、別個に扱われます。いくつかの操作は、バルク制限と合計操作制限の両方に影響します(作成、取得、更新および破棄など)。

詳細は、Oracle RightNow Connect Web Services for SOAP開発者ガイドを参照してください。