プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Cloud Adapter for Oracle RightNow Cloud Serviceユーザーズ・ガイド
12c (12.2.1)
E72708-01
  目次へ移動
目次

前
 
次
 

3 RightNow Cxアダプタを使用した操作の実行

この章では、JDeveloperを使用したRightNowアダプタの一般的な構成手順に加え、作成、読取り、更新および削除に関してアダプタで使用できる様々な操作、それらの操作で使用できる機能、およびROQL問合せ言語の使用について説明します。

この章の内容は以下のとおりです。

多くの項で操作やオプションの概要を説明しており、詳細情報が記載された他の章を参照しています。

3.1 JDeveloperでの一般的な構成手順の実行

この項では、JDeveloperを使用してOracle RightNowアダプタ・プロジェクトを開始する場合に共通の構成手順の概要について説明します。JDeveloperの使用によってRightNowアダプタを構成してBPELプロジェクトを作成する一方で、Service Busなどの他のサービス・エンジンで使用するためにアダプタを構成することもできます。

この項は、このガイドの他の複数の章で参照されます。

3.1.1 Oracle RightNowアダプタ・コンポーネントの構成

JDeveloperを使用してアウトバウンド・サービスを使用するためにOracle RightNowアダプタを構成するには、次の手順を実行します。

  1. JDeveloperの「ファイル」メニューで、「新規」をクリックして「アプリケーション」を選択します。

    図3-1 ナビゲーション

    図3-1の説明が続きます
    「図3-1 ナビゲーション」の説明

  2. 「新規ギャラリ」ページが表示されます。「項目」リストから「SOAアプリケーション」を選択します。

    図3-2 SOAアプリケーションの作成

    図3-2の説明が続きます
    「図3-2 SOAアプリケーションの作成」の説明

  3. アプリケーションに適切な名前を指定します。

    図3-3 アプリケーションの名前付け

    図3-3の説明が続きます
    「図3-3 アプリケーションの名前付け」の説明

  4. 「次へ」をクリックしてプロジェクトに適切な名前を指定します。

    図3-4 プロジェクトの名前付け

    図3-4の説明が続きます
    「図3-4 プロジェクトの名前付け」の説明

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

  6. 「標準コンポジット」からBPELプロセスを使用するコンポジットを選択します。

    図3-5 SOA設定の構成

    図3-5の説明が続きます
    「図3-5 SOA設定の構成」の説明

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

  8. JDeveloperの「コンポーネント」から参照スイムレーンにRightNowアダプタ・コンポーネントをドラッグ・アンド・ドロップします。

  9. スイムレーンのRightNowアダプタ・アイコンをクリックします。RightNowアダプタの「ようこそ」画面が表示されます。

    図3-6 Oracle RightNowアダプタの参照画面

    図3-6の説明が続きます
    「図3-6 Oracle RightNowアダプタの参照画面」の説明

  10. RightNowアダプタの接続画面で、Oracle RightNow Cxに接続するための接続情報を入力します。これには、WSDL URL認証キーの名前、オフライン構成モードで実行するオプション、およびキャッシュクリアするオプションが含まれます。必要に応じて、両方のオプションを選択しないままにできます。
    RightNow管理者からWSDLと認証キーを入手できます。

    図3-7 Oracle RightNowアダプタの接続画面

    図3-7の説明が続きます
    「図3-7 Oracle RightNowアダプタの接続画面」の説明

  11. 初期画面自体に接続をテストして資格証明を検証するオプションがあります。これを行うには、「テスト」オプションを選択します。

    図3-8 接続のテスト

    図3-8の説明が続きます
    「図3-8 接続のテスト」の説明

  12. 次に、RightNowアダプタ構成ウィザードに、選択可能な追加情報が表示されます。

    • 実行する操作です。

    • 操作を実行する対象となるオブジェクト。

    • 操作固有の任意の構成。

    この時点で、単一のCRUD操作を実行するか、複数操作をバッチで実行するかを指定できます。

    • クラウド操作の構成 - このオプションは、単一操作による作業が対象です。

    • バッチ内の複数の操作の構成 - この操作を選択すると、複数の操作で作業できます。これは、「クラウド操作の構成」オプションを選択すると選択解除されます。

      操作の選択に関連する大部分の作業を実行できる操作構成画面を参照してください。

      図3-9 Oracle RightNowアダプタの操作構成画面

      図3-9の説明が続きます
      「図3-9 Oracle RightNowアダプタの操作構成画面」の説明

3.2 操作の作成、読取り、更新および削除の理解

Oracle RightNowアダプタで使用可能な操作には、基本的な作成、読取り、更新および削除(CRUD)操作が含まれます。

CRUD操作によって、Oracle RightNow Cxシステムに含まれるオブジェクトの作成、読取り、更新および削除が可能になります。

すべてのCRUD操作は、多相動作セクションで定義されたとおりに多相的に動作します。そのため、任意のCRUD操作は、入力パラメータとして1からNまでの異種プライマリ・オブジェクトを受け入れることが可能で、それによって単一のリクエストで混在するオブジェクト・タイプを任意のCRUD操作に提供できます。

たとえば、ContactIncidentおよびOrganizationオブジェクトを、Createメソッドの単一の起動に対して提供できます。

単一のCRUDリクエストで提供できるオブジェクトのハード制限は1000ですが、操作上の制約のため、最大数のオブジェクトを提供するとエラーが発生する可能性があります。

CreateおよびGet (Read)の戻り値は、1からNのRNObjectを含むリストです。このリストのサイズは、操作リクエストで提供されるリストのサイズに一致します。UpdateおよびDestroyメソッドは、成功時に値を返しません。CRUD操作に失敗すると、SOAPフォルトがクライアントに返されます。

一方、Create操作は、suppressResponseが無効になっている場合、作成したビジネス・オブジェクトのIDを返しますが、Get操作はビジネス・オブジェクト全体を返します。

Oracle Cloud Connect Web Services for SOAPのクライアントがCreate操作を起動すると、1つのオブジェクトまたはオブジェクトのリストが返されます。オブジェクトに関連するデータの残りが必要な場合、Get操作を実行する必要があります。

Create操作は、すべてのプライマリ・オブジェクトに直接実行できます。

Oracle Cloud Connect Web ServicesのクライアントがGet操作を起動すると、1つのオブジェクトまたはオブジェクトのリストが返されます。

Destroy操作は、プライマリ・オブジェクトとサブオブジェクトを破棄します。

3.2.1 サポートされる機能

次の項では、Oracle RightNowアダプタによってサポートされる機能のリストを示します。

3.2.1.1 CRUD操作の使用

Oracle RightNowアダプタでは、作成、読取り、更新および破棄(CRUD)操作がサポートされます。サポートされる基本操作は次のとおりです。

3.2.1.1.1 1つ以上のビジネス・オブジェクトの作成

Oracle RightNowアダプタを使用して、RightNow Cxで1つ以上のビジネス・オブジェクト(標準またはカスタム)を作成できます。たとえば、OrganizationContactおよびIncidentオブジェクトを、すべて単一のリクエストの一部として、または3つの独立したリクエストとして作成できます。

Oracle RightNowアダプタの操作構成画面の次のスクリーンショットで、OrganizationContactおよびIncidentオブジェクトは、すべて1つのリクエストの一部として作成されます。

図3-10 1つのリクエストによるOrganization、ContactおよびIncidentオブジェクトの作成

図3-10の説明が続きます
「図3-10 1つのリクエストによるOrganization、ContactおよびIncidentオブジェクトの作成」の説明

次のスクリーンショットでは、1つのオブジェクト(Organizationオブジェクト)が作成されます。

図3-11 1つのオブジェクトの作成

図3-11の説明が続きます
「図3-11 1つのオブジェクトの作成」の説明

3.2.1.1.2 1つ以上のオブジェクトからのデータの取得

Oracle RightNowアダプタを使用して、RightNow CXクラウド・プラットフォームで使用可能な1つ以上のオブジェクトからデータを取得できます。たとえば、Oracle RightNowアダプタを使用して、組織のみに関連するデータを取得したり、1つのリクエストで組織、連絡先およびインシデントの組合せに関する情報を取得できます。

次のスクリーンショットでは、Oracle RightNowアダプタのクラウド操作構成画面でGet操作を指定してOrganizationオブジェクトを選択し、Organizationからデータを取得します。

  1. 「クラウド操作」のリストから「Get」操作を選択します。

  2. 矢印を使用してOrganizationオブジェクトを「選択可能」リストから「選択済」リストに移動します。

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

図3-12 1つのオブジェクトからのデータの取得

図3-12の説明が続きます
「図3-12 1つのオブジェクトからのデータの取得」の説明

次のスクリーンショットでは、Oracle RightNowアダプタのクラウド操作構成画面で、1つのGetリクエストを使用してOrganizationContactおよびIncidentを選択し、複数のオブジェクトからデータを取得します。

図3-13 複数のオブジェクトの取得

図3-13の説明が続きます
「図3-13 複数のオブジェクトの取得」の説明

3.2.1.1.3 1つ以上のビジネス・オブジェクトの更新

Update操作を使用して、任意のプライマリ・オブジェクトと関連サブオブジェクトを更新します。Oracle RightNowアダプタを使用して、RightNow CXクラウド・プラットフォームで1つ以上のビジネス・オブジェクト(標準またはカスタム)を更新できます。たとえば、OrganizationContactおよびIncidentオブジェクトを、単一のリクエストの一部として、または3つの独立したリクエストとして更新できます。

次のスクリーンショットは、Oracle RightNowアダプタのクラウド操作構成画面で単一のUpdateリクエストの一部として更新されたOrganizationContactおよびIncidentオブジェクトを示しています。

更新操作を実行するには、次の手順を実行します。

  1. 「クラウド操作」のリストからUpdateを選択します。

  2. 「選択可能」リストから1つ以上のビジネス・オブジェクトを選択します。

  3. 矢印を使用して「選択済」リストに移動します。

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

図3-14 1つのリクエストによる複数のオブジェクトの更新

図3-14の説明が続きます
「図3-14 1つのリクエストによる複数のオブジェクトの更新」の説明

次のスクリーンショットは、3つのオブジェクトに対する一連の更新の一部として1つのオブジェクトを更新する方法を示しています。この例では、Organizationオブジェクトが更新されます。

図3-15 1つのビジネス・オブジェクトの更新

図3-15の説明が続きます
「図3-15 1つのビジネス・オブジェクトの更新」の説明

3.2.1.1.4 1つ以上のビジネス・オブジェクトの削除

Oracle RightNowアダプタを使用して、RightNow Cxクラウド・プラットフォームで1つ以上のビジネス・オブジェクト(標準またはカスタム)を削除できます。たとえば、OrganizationContactおよびIncidentオブジェクトを、すべて単一のリクエストの一部として、または3つの独立したリクエストとして削除できます。

次のスクリーンショットでは、Oracle RightNowアダプタのクラウド操作構成画面を使用して、Organization、ContactおよびIncidentオブジェクトを削除します。

複数のビジネス・オブジェクトを削除するには、次の手順を実行します。

  1. 「クラウド操作」のリストからDestroy操作を選択します。

  2. 矢印を使用してOrganization、ContactおよびIncidentオブジェクトを「選択可能」リストから「選択済」リストに移動します。

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

図3-16 複数のオブジェクトの削除

図3-16の説明が続きます
「図3-16 複数のオブジェクトの削除」の説明

次のスクリーンショットでは、Oracle RightNowアダプタのクラウド操作構成画面を使用して、1つのビジネス・オブジェクトを削除します。

図3-17 1つのビジネス・オブジェクトの削除

図3-17の説明が続きます
「図3-17 1つのビジネス・オブジェクトの削除」の説明

3.2.1.2 バッチ機能の使用

バッチ機能は、Oracle RightNowアダプタの独特な機能であり、1つ以上の異種操作を単一の操作を通じてRightNow Cxサーバーに送信できます。この機能によって、統合開発者は、既存の組織の更新、既存の組織の連絡先の作成、既存のインシデントのメモの削除、または新しいインシデントの作成が可能になります。バッチ機能を使用すると、これらすべての指示を統合してOracle RightNow Cxサーバーに単一の操作として送信できます。Oracle RightNowアダプタは、バッチ操作とバッチ・オプションを構成するために必要なツールを提供して、この機能を拡張します。

アダプタでは、バッチ操作と処理オプションのために統合の容易なインタフェースも提供しています。Oracle RightNowアダプタ構成ウィザードで、バッチ操作の構成オプションを選択してこのオプションを構成できます。

バッチ機能には他に次の機能も含まれます。

  • バッチの各操作には、個別の処理オプションがあります。アダプタ構成ウィザードでは、ユーザーが処理オプションを構成するためのグラフィカルで直感的な方法が提供されます。

  • バッチ内の操作は、通常、単一のトランザクションで実行されますが、commitAfterプロパティを使用してこれらの操作を異なる作業ユニットにグループ化することもできます。

3.2.1.2.1 Oracle RightNowアダプタのユーザー・インタフェースによるバッチ機能のサポート

バッチ機能は、Oracle RightNowアダプタの独特な機能であり、1つ以上の操作を単一の操作を通じてOracle RightNow Cxに送信できます。

Oracle RightNowアダプタは、バッチ操作とバッチ・オプションを構成するために必要なツールを提供して、バッチ機能を拡張します。これは、バッチ操作と処理オプションのために統合の容易なインタフェースも提供しています。

次の項では、アダプタ構成ウィザードを使用してバッチ操作用にOracle RightNowアダプタをモデル化する方法について説明します。

  1. SOAプロジェクトまたはService Busプロジェクトで、「コンポーネント」からコンポジット・スイムレーンにOracle RightNowアダプタをドラッグ・アンド・ドロップします。有効な参照名を指定します。図3-18「Oracle RightNowアダプタ構成ウィザードの参照画面」を参照してください。

    図3-18 Oracle RightNowアダプタ構成ウィザードの参照画面

    図3-18の説明が続きます
    「図3-18 Oracle RightNowアダプタ構成ウィザードの参照画面」の説明

  2. 接続の詳細を指定します。

    図3-19 Oracle RightNowアダプタ構成ウィザードの接続画面

    図3-19の説明が続きます
    「図3-19 Oracle RightNowアダプタ構成ウィザードの接続画面」の説明

  3. 「クラウド操作構成」ページで、バッチ操作を構成するオプションを選択します。

    図3-20 バッチが選択されたRightNowアダプタ構成ウィザードの操作ページ

    図3-20の説明が続きます
    「図3-20 バッチが選択されたRightNowアダプタ構成ウィザードの操作ページ」の説明

  4. このオプションを選択すると、複数の操作をバッチとして構成できます。「追加」操作のアイコン(プラス記号)を選択します。アダプタによって「操作の追加」ダイアログが表示されます。

  5. ここで、バッチ操作として操作を選択および追加できます。

    図3-21 RightNowアダプタ構成ウィザードのバッチの「操作の追加」ダイアログ

    図3-21の説明が続きます
    「図3-21 RightNowアダプタ構成ウィザードのバッチの「操作の追加」ダイアログ」の説明

  6. 追加された各操作は、適切なビジネス・オブジェクトとともにリスト表示されます。

    図3-22 RightNowアダプタ構成ウィザードの操作オプション

    図3-22の説明が続きます
    「図3-22 RightNowアダプタ構成ウィザードの操作オプション」の説明

  7. バッチ・プロセスの各操作には、「プロパティ」タブで指定できる個別の処理オプションがあります。たとえば、「操作の追加」には、指定可能な3つのプロパティ(「外部イベントの抑制」「ルールの抑制」および「後でコミット」)があります。

    図3-23 「操作の追加」ダイアログ

    図3-23の説明が続きます
    「図3-23 「操作の追加」ダイアログ」の説明

  8. 「次へ」を選択してアダプタ・ウィザードを完了します。確認ダイアログに、生成されたアーティファクトが表示されます。

バッチ内の操作は、通常、単一のトランザクションで実行されますが、commitAfterプロパティを使用してこれらの操作を別々の作業ユニットにグループ化することもできます。

3.2.1.2.2 バッチ・プロセスWSDL

次の例は、バッチ・プロセスによるサンプルWSDLの異なる部分を示しています。最初の例は、バッチ操作用の統合WSDL内に定義されたポート・タイプおよび操作を示しています。

例3-1 ポート・タイプおよび操作

<wsdl:portType name="rightnowReferencePortType">
        <wsdl:operation name="Batch">
            <cloud:CloudOperation xmlns:cloud="http://xml.oracle.com/types" targetOperation="Batch"/>
            <wsdl:input message="ns0:BatchRequestMessage"/>
            <wsdl:output message="ns0:BatchResponseMessage"/>
            <wsdl:fault name="ServerErrorFault" 
                     message="ns0:ServerErrorFault"/>
            <wsdl:fault name="RequestErrorFault" 
                     message="ns0:RequestErrorFault"/>
            <wsdl:fault name="UnexpectedErrorFault" message="ns0:UnexpectedErrorFault"/>
        </wsdl:operation>
</wsdl:portType>

2番目の例は、統合WSDLバッチ操作で定義された入力メッセージ・タイプを示しています。

例3-2 統合WSDLバッチ操作で定義された入力メッセージ・タイプ

<xs:element name="Batch" type="ns2:BatchRequestType"/>
<xs:complexType name="BatchRequestType">
                <xs:sequence>
                    <xs:element name="Create" 
type="ns2:CreateRequestType"/> <xs:element name="Update" type="ns2:UpdateRequestType"/> <xs:element name="Get" type="ns2:GetRequestType"/> </xs:sequence> </xs:complexType> <xs:complexType name="CreateRequestType"> <xs:sequence> <xs:element maxOccurs="unbounded" minOccurs="0" type="ns7:Account" name="Account"/> </xs:sequence> </xs:complexType>

次の例は、統合WSDLバッチ操作で定義された出力メッセージ・タイプを示しています。

例3-3 統合WSDLバッチ操作で定義された出力メッセージ・タイプ

<xs:element name="BatchResponse" type="ns2:BatchResponseType"/>
    <xs:complexType name="BatchResponseType">
     <xs:sequence>
        <xs:element name="Create" type="ns2:CreateResponseType"/>
      <xs:element name="Update" type="ns2:UpdateResponseType"/>
      <xs:element name="Get" type="ns2:GetResponseType"/>
     </xs:sequence>
</xs:complexType>
 
<xs:complexType name="CreateResponseType">
    <xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0"
                        type="ns7:Account" name="Account"/>
      <xs:element name="RequestErrorFault" maxOccurs="1"
                 minOccurs="0" 
                   type="ns9:RequestErrorFaultType"/>
      <xs:element name="UnexpectedErrorFault" 
                maxOccurs="1" minOccurs="0" 
                type="ns9:UnexpectedErrorFaultType"/>
      <xs:element name="ServerErrorFault"
                 maxOccurs="1" minOccurs="0" 
                 type="ns9:ServerErrorFaultType"/>
    </xs:sequence>
</xs:complexType>
    

3.2.1.3 チェーン

チェーンは、単一のバッチ・リクエスト内で複数の操作を相互に関連付けるために使用できるOracle RightNowアダプタの機能です。具体的には、チェーンをバッチと併用して、関連する操作を実行します。操作のチェーンを作成するには、チェーンのソースおよびターゲットの操作が同じ作業ユニット内に存在する必要があります。

たとえば、次のリクエストには、同じサンプル・バッチ・リクエストのすべての部分である3つの操作が含まれます。

  1. Contactの作成

  2. Incidentの作成(このIncidentのプライマリContactは最初の手順で作成したものです。)

  3. Incidentの取得(作成したIncidentを返す必要があります。)

3.2.1.3項「チェーンのXML」の例で強調表示されている属性を使用して、これがコード内でどのように記述されるかを確認します。

例3-4 チェーンのXML

  <Batch
xmlns="http://xmlns.oracle.com/pcbpel/adapter/
             rightnow/RNDemo01/RNBatchDemo01/rightnowReference"
xmlns:rna_v1_2="urn:metadata.ws.rightnow.com/v1_2" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:rnm_v1_2="urn:messages.ws.rightnow.com/v1_2" 
    xmlns:rnn_v1_2="urn:nullfields.ws.rightnow.com/v1_2"
    xmlns:rnf_v1_2="urn:faults.ws.rightnow.com/v1_2" xmlns:ns1="urn:base.ws.rightnow.com/v1_2"
    xmlns:rno_v1_2="urn:objects.ws.rightnow.com/v1_2" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:rng_v1_2="urn:generic.ws.rightnow.com/v1_2"
         xmlns:rnw_v1_2="urn:wsdl.ws.rightnow.com/v1_2"
   xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/
        rightnow/RNDemo01/RNBatchDemo01/rightnowReference"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tns:CreateContact>
        <tns:Contact>
            <ns1:ID xsi:type="ns1:ChainSourceID"
                         variableName="MyContact" />
            <rno_v1_2:Name>
                <rno_v1_2:First>John</rno_v1_2:First>
                <rno_v1_2:Last>Doe</rno_v1_2:Last>
            </rno_v1_2:Name>
        </tns:Contact>
    </tns:CreateContact>
    <tns:CreateIncident>
        <tns:Incident>
            <ns1:ID xsi:type="ns1:ChainSourceID" 
variableName="MyIncident" />
<rno_v1_2:PrimaryContact> <rno_v1_2:Contact> <ns1:ID xsi:type="ns1:ChainDestinationID" variableName="MyContact" /> </rno_v1_2:Contact> </rno_v1_2:PrimaryContact> <rno_v1_2:Subject>This is a test subject. </rno_v1_2:Subject> </tns:Incident> </tns:CreateIncident> <tns:GetIncident> <tns:Incident> <ns1:ID xsi:type="ns1:ChainDestinationID" variableName="MyIncident" /> </tns:Incident> </tns:GetIncident> </Batch>

3.2.1.3項「統合リクエスト・ペイロード」に関連付けられているリクエストおよびレスポンス・ペイロードは、統合リクエスト・ペイロードの例を示しています。

例3-5 統合リクエスト・ペイロード

<Batch
   xmlns="http://xmlns.oracle.com/pcbpel/adapter/
     rightnow/RNDemo01/RNBatchDemo01/rightnowReference"
    xmlns:rna_v1_2="urn:metadata.ws.rightnow.com/v1_2" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:rnm_v1_2="urn:messages.ws.rightnow.com/v1_2" 
             xmlns:rnn_v1_2="urn:nullfields.ws.rightnow.com/v1_2"
    xmlns:rnf_v1_2="urn:faults.ws.rightnow.com/v1_2" xmlns:ns1="urn:base.ws.rightnow.com/v1_2"
    xmlns:rno_v1_2="urn:objects.ws.rightnow.com/v1_2" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:rng_v1_2="urn:generic.ws.rightnow.com/v1_2" xmlns:rnw_v1_2="urn:wsdl.ws.rightnow.com/v1_2"
    xmlns:tns="http://xmlns.oracle.com/pcbpel/
        adapter/rightnow/RNDemo01/RNBatchDemo01/rightnowReference"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tns:CreateContact>
        <tns:Contact>
            <ns1:ID xsi:type="ns1:ChainSourceID" variableName="MyContact" />
            <rno_v1_2:Name>
                <rno_v1_2:First>John</rno_v1_2:First>
                <rno_v1_2:Last>Doe</rno_v1_2:Last>
            </rno_v1_2:Name>
        </tns:Contact>
    </tns:CreateContact>
    <tns:CreateIncident>
        <tns:Incident>
            <ns1:ID xsi:type="ns1:ChainSourceID" 
                               variableName="MyIncident" />
            <rno_v1_2:PrimaryContact>
                <rno_v1_2:Contact>
                    <ns1:ID xsi:type="ns1:ChainDestinationID" variableName="MyContact" />
                </rno_v1_2:Contact>
            </rno_v1_2:PrimaryContact>
            <rno_v1_2:Subject>This is a test 
                              subject.</rno_v1_2:Subject>
        </tns:Incident>
    </tns:CreateIncident>
    <tns:GetIncident>
        <tns:Incident>
            <ns1:ID xsi:type="ns1:ChainDestinationID" 
variableName="MyIncident" />
</tns:Incident> </tns:GetIncident> </Batch>

レスポンス・ペイロードは、例3-6「統合レスポンス・ペイロード」に示されています。

例3-6 統合レスポンス・ペイロード

<itns:BatchResponse xmlns:n0=
                  "urn:messages.ws.rightnow.com/v1_2"
    xmlns:n2="urn:base.ws.rightnow.com/v1_2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:n1="urn:objects.ws.rightnow.com/v1_2" xmlns:itns="urn:oracle.cloud.adapter.rightnow/1214">
    <itns:Create>
 
        <itns:Contact>
            <n2:ID id="1903" />
        </itns:Contact>
    </itns:Create>
    <itns:Create>
 
        <itns:Incident>
            <n2:ID id="455" />
        </itns:Incident>
    </itns:Create>
    <itns:Get>
 
        <itns:Incident>
            <n2:ID id="455" />
            <n2:LookupName>140623-000003</n2:LookupName>
            <n2:CreatedTime>2014-06-23T14:44:03.000Z</n2:CreatedTime>
            <n2:UpdatedTime>2014-06-23T14:44:03.000Z</n2:UpdatedTime>
            <n1:CreatedByAccount>
                <n2:ID id="2" />
            </n1:CreatedByAccount>
            <n1:InitialResponseDueTime>2014-06-24T00:00:00.000Z
            </n1:InitialResponseDueTime>
            <n1:Interface>
                <n2:ID id="1" />
            </n1:Interface>
            <n1:Language>
                <n2:ID id="1" />
            </n1:Language>
            <n1:PrimaryContact>
                <n1:Contact>
                    <n2:ID id="1903" />
                </n1:Contact>
            </n1:PrimaryContact>
            <n1:Queue>
                <n2:ID id="2" />
            </n1:Queue>
            <n1:ReferenceNumber>140623-000003</n1:ReferenceNumber>
            <n1:Source>
                <n2:ID id="6006" />
                <n2:Parents xsi:type="n2:NamedReadOnlyID">
                    <n2:ID id="32007" />
                </n2:Parents>
            </n1:Source>
            <n1:StatusWithType>
                <n1:Status>
                    <n2:ID id="1" />
                </n1:Status>
                <n1:StatusType>
                    <n2:ID id="1" />
                </n1:StatusType>
            </n1:StatusWithType>
            <n1:Subject>This is a test subject.</n1:Subject>
        </itns:Incident>
    </itns:Get>
</itns:BatchResponse>

3.2.1.4 チェーンの使用

チェーンは、常にバッチとともに使用され、Oracle RightNowアダプタのバッチ構成ウィザードで特別の手順を必要としません。

ただし、チェーンを使用するには、前述のサンプル・リクエストに示されているとおり、アダプタ・リクエストで正しいチェーン・ソースと宛先をリンクする必要があります。

次の手順は、Oracle XSLTマッパーによる変換中にチェーンを実行する方法を示しています。

  1. Oracle XSLTマッパーで、ターゲット・タイプとしてOracle RightNowアダプタ参照/ビジネス・サービス・リクエスト・タイプをロードします。

  2. 異なるオブジェクト(Incidentなど)にチェーンさせる必要のあるContactオブジェクトを作成する場合、Contact IDを拡張機能ChainSourceIDで置き換えます。

    図3-24 XSLTマッパーでの「要素またはタイプの置換」の選択

    図3-24の説明が続きます
    「図3-24 XSLTマッパーでの「要素またはタイプの置換」の選択」の説明

  3. Contactオブジェクトを展開します。

  4. ID要素を右クリックし、ポップアップから「要素またはタイプの置換」を選択します。

  5. 「要素またはタイプの置換」ダイアログが表示されます。ダイアログで、ChainSourceIDを選択します。

    図3-25 「要素またはタイプの置換」ダイアログ

    図3-25の説明が続きます
    「図3-25 「要素またはタイプの置換」ダイアログ」の説明

    この置換によって、連絡先IDタイプが拡張されます。

    図3-26 展開された連絡先IDタイプ

    図3-26の説明が続きます
    「図3-26 展開された連絡先IDタイプ」の説明

    variableNameプロパティに、このチェーン・ヘッドを一意に識別する一意の文字列(MyContactなど)を設定します。

  6. インシデントの作成操作中に、チェーンの際に連絡先に対してインシデントが作成されるように、インシデントのPrimaryContactフィールドにChainDestinationIDを設定します。

    言い換えると、MyContactChainDestinationIDPrimaryContactフィールドに設定されます。

    <rno_v1_2:PrimaryContact>
                                    <rno_v1_2:Contact>
                            <ns1:ID xsi:type="ns1:ChainDestinationID" 
               variableName="{string ('MyContact' )}"/>
                    </rno_v1_2:Contact>
    </rno_v1_2:PrimaryContact>
    
  7. 同様に、Incidentを作成し、次にそのインシデントに対してGetを実行するには、Incident IDchainSourceIDで置き換えます。variableNameプロパティに一意の文字列(MyIncidentなど)を設定します。

  8. 次に、Get操作で、インシデントIDを拡張機能ChainDestinationIDに置き換え、variableNameプロパティにchainSourceIDの変数名(MyIncident)を設定します。

  9. 必要に応じて他のタイプをマップします。

3.2.2 サポートされる処理オプション

処理オプションを使用して、RightNowクラウド操作の実行時にサーバー側処理の特定の機能を有効化および無効化できます。処理オプションは、作成されると、処理オプションを使用する様々なWSDL操作に提供されます。次に、サポートされるすべての処理オプションのリストと、その使用方法およびデフォルト値を示します。この項では、次の内容について説明します。

3.2.2.1 CreateProcessingOptions

作成のプロパティ・タブで指定することで、CreateProcessingOptionsCreate操作を組み合せて使用できます。CreateProcessingOptionsには、表3-1「CreateProcessingOptions」にリストされているプロパティが含まれます。

表3-1 CreateProcessingオプション

フィールド 説明

SuppressExternalEvents

Create操作の完了後に外部イベントを実行しないことを示すために使用します。デフォルト値は、言語固有です(デフォルト値の詳細は、ドキュメントおよび生成されたクライアント・コードを参照してください)。

SuppressResponse

RightNowアダプタ固有のオプション。このプロパティは、ブール値を使用し、IDをCreate操作に対して返す必要があるかどうかを示します。

SuppressRules

Create操作の完了後にビジネス・ルールを実行しないことを示すために使用します。デフォルト値の詳細は、ドキュメントおよび生成されたクライアント・コードを参照してください。


3.2.2.2 DestroyProcessingOptions

削除操作のプロパティ・タブで指定することで、DestroyProcessiongOptionsとDelete操作を組み合せて使用できます。DestroyProcessingOptionsには、次のプロパティが含まれます。

表3-2 DestroyProcessingオプション

フィールド 説明

SuppressExternalEvents

Destroy操作の完了後に外部イベントを実行しないことを示すために使用します。デフォルト値の詳細は、ドキュメントおよび生成されたクライアント・コードを参照してください。

SuppressRules

Destroy操作の完了後にビジネス・ルールを実行しないことを示すために使用します。デフォルト値の詳細は、ドキュメントおよび生成されたクライアント・コードを参照してください。


3.2.2.3 GetProcessingOptions

取得操作のプロパティ・タブで指定することで、GetProcessiongOptionsとGet操作を組み合せて使用できます。GetProcessingOptionsには、次のプロパティが含まれます。

表3-3 GetProcessingオプション

フィールド 説明

FetchAllNames

すべてのNamedIDタイプにそのフィールドの名前とIDの両方を含めるようにサーバーに指示します。非常に効率が悪い場合およびすべての名前とIDのフィールドが必要な場合にのみこれを使用してください。すべての名前とIDのフィールドが必要でない場合、このオプションは使用しないでください(詳細は、Get操作を参照してください)。


3.2.2.4 UpdateProcessingOptions

更新操作のプロパティ・タブで指定することで、UpdateProcessingOptionsとUpdate操作を組み合せて使用できます。UpdateProcessingOptionsには、次のプロパティが含まれます。

表3-4 UpdateProcessingOptions

フィールド 説明

SuppressExternalEvents

Update操作の完了後に外部イベントを実行しないことを示すために使用します。デフォルト値は、言語固有です(デフォルト値の詳細は、言語のドキュメントおよび生成されたクライアント・コードを参照してください)。

SuppressRules

Update操作の完了後にビジネス・ルールを実行しないことを示すために使用します。デフォルト値は、言語固有です(デフォルト値の詳細は、言語のドキュメントおよび生成されたクライアント・コードを参照してください)。


3.3 ROQLの操作

ROQL機能によって、RightNow Cxデータベースに対する問合せを作成できます。

この項の内容は次のとおりです。

3.3.1 ROQLの使用

ROQL操作カテゴリを選択すると、問合せエディタが表示されます。選択した操作に応じて、ROQL文を入力します。

ROQLによって、組織のRightNow Cxデータから特定の情報を検索できます。

この章では、ROQLの詳細な説明はされません。Oracle Service Cloud Connect Web Services for SOAPを参照してください。

3.3.1.1 ROQL問合せ文

ROQL問合せ文は、Oracle RightNow Cxのデータを問い合せます。問合せ文のテキスト・ボックスは、Oracle RightNow CXに準拠したROQL文で構成されます。

問合せ操作の詳細は、ROQL操作に関する項を参照してください。ROQLの詳細は、Oracle RightNow Connect Web Services for SOAP開発者ガイドのROQLに関する項を参照してください。例については、図3-27「サンプルROQL問合せ」を参照してください。

図3-27 サンプルROQL問合せ

図3-27の説明が続きます
「図3-27 サンプルROQL問合せ」の説明

3.3.2 ROQL問合せ文

ROQL問合せ文を使用して、RightNow Cxのデータを問い合せます。問合せ文のテキスト・ボックスは、RightNow Cxに準拠したROQL文で構成されます。問合せ操作の詳細は、ROQL操作に関する項を参照してください。ROQLの詳細は、Oracle RightNow Connect Web Services for SOAP開発者ガイドのROQLに関する項を参照してください。

3.3.3 問合せテスト・ツールの実行

問合せテスト・ツールによって、問合せを実行およびテストできます。「テスト」アイコンをクリックすると、テスト・ダイアログ・ボックスが表示されます。

表示される「問合せテスト」ダイアログには、次の領域が含まれます。

  • 「問合せ文」および「結果」「問合せ文」テキスト・ボックスは、問合せ文自体を対象とし、実行された問合せの結果は「結果」ボックスに表示されます。問合せに1つ以上のバインド・パラメータが含まれる場合、それらの値を指定するための1つ以上の入力ボックスが表示されます。

  • バインド・パラメータのリフレッシュ。問合せ文のバインド・パラメータの数を変更した場合、このボタンを使用して、「パラメータのバインド」ボックスをリフレッシュします。

  • 「問合せ実行」。このボタンを使用して、問合せを実行します。

  • 「queryの結果」。問合せの実行に成功すると、テキスト領域にRightNow Cxからの結果が表示されます。

画面の各領域が強調表示された、図3-28「特定の領域が強調表示された「問合せテスト」画面」を参照してください。

図3-28 特定の領域が強調表示された「問合せテスト」画面

図3-28の説明が続きます
「図3-28 特定の領域が強調表示された「問合せテスト」画面」の説明

3.3.4 ROQLクエリー・ビルダーの使用

この項では、ROQLクエリー・ビルダーの使用方法について説明します。ROQLクエリー・ビルダーは、統合開発者が負担に感じることが多い各領域に対処します。

このアプローチによって、複雑でエラーのない問合せを簡単に記述できます。このような問合せの記述を実現するため、ROQLクエリー・ビルダーは、次の各項に記載された機能を提供しています。

3.3.4.1 標準およびカスタム・ビジネス・オブジェクトの検出の簡略化

ROQLクエリー・ビルダーは、問合せを構成する際に使用できる潜在的な標準オブジェクトとカスタム・オブジェクトを識別します。この機能の例は次のとおりです。

  1. 操作構成ページの「クラウドAPI」オプションでROQLを選択します。

  2. ROQLエディタ・テキスト領域にSelectと入力し、[Ctrl] + [Space]を押します。クエリー・ビルダーによって、Oracle RightNow Cxで使用できる標準オブジェクトとカスタム・オブジェクトのリストが表示されます(図3-29「Oracle RightNow Cxで使用できる標準オブジェクトとカスタム・オブジェクトのリストの表示」を参照)。


    注意:

    作成したカスタム・オブジェクトが操作ページで示されるオブジェクトのリストに表示されない場合、接続ページの「キャッシュのクリア」オプションを選択し、再度接続を行ってRightNow Cxシステムの最新のメタデータを取得してください。

    図3-29 Oracle RightNow Cxで使用できる標準オブジェクトとカスタム・オブジェクトのリストの表示

    図3-29の説明が続きます
    「図3-29 Oracle RightNow Cxで使用できる標準オブジェクトとカスタム・オブジェクトのリストの表示」の説明

  3. 別の方法として、特定のパッケージを指定することで、そのパッケージで作成されたすべてのカスタム・オブジェクトを表示できます(図3-30「パッケージの指定によるそのパッケージで作成されたすべてのカスタム・オブジェクトの表示」を参照)。

    図3-30 パッケージの指定によるそのパッケージで作成されたすべてのカスタム・オブジェクトの表示

    図3-30の説明が続きます
    「図3-30 パッケージの指定によるそのパッケージで作成されたすべてのカスタム・オブジェクトの表示」の説明

3.3.4.2 コンテキストに基づく問合せ構成要素の提案

ROQLクエリー・ビルダーは、カーソルの位置に基づいて問合せ文字列のコンテキストを自動的に識別します。このコンテキストを使用して、クエリー・ビルダーは、効率的なROQL問合せを記述できるように推奨事項を提供します。この機能は、次のように動作します。

  1. ROQLエディタ・テキスト領域にSelectと入力し、[Ctrl] + [Space]を押すと、クエリー・ビルダーによって、すべての標準オブジェクトとビジネス・オブジェクトが表示されます。

  2. 同様に、Select Contact from Contact whereという問合せを実行する場合に、where句に続けて[Ctrl] + [Space]を押すと、問合せの調整に使用できるContactオブジェクトのフィールドのリストと、適用可能なキーワードおよび関数が表示されます。

    図3-31 Contactオブジェクトのフィールドのリストを表示したコンテキストの問合せ

    図3-31の説明が続きます
    「図3-31 Contactオブジェクトのフィールドのリストを表示したコンテキストの問合せ」の説明

3.3.4.3 オートコンプリートの提供

オートコンプリート機能によって、複雑なROQL問合せを迅速で効率的な方法で簡単に構築できます。この機能は次のとおりです。

  1. 問合せ文字列のSelect Seを使用する場合、Seという用語に続けて[Ctrl] + [Space]を押すと、クエリー・ビルダーによってSeで始まるすべてのオブジェクトが表示されます。

    図3-32 問合せのオートコンプリート

    図3-32の説明が続きます
    「図3-32 問合せのオートコンプリート」の説明

3.3.4.4 可読性を向上するための別名のサポート

ROQLクエリー・ビルダー機能では、別名がサポートされます。これは、RightNowオブジェクト(Oracle RightNowアダプタにおけるすべてのプライマリ・オブジェクトのベース・クラス)の別名が問合せの対象になっていることを認識し、別名を実際のオブジェクト名として扱います。

オブジェクトに関連付けられたすべての操作を、別名に対して実行できます。

  1. 問合せ文字列Select from ServiceCategory S whereで、SはオブジェクトServiceCategoryの別名として設定されます。そのため、ServiceCategoryに関連付けられたすべての操作を、別名Sに対して実行できます。別名に対して実行できる操作の一部は、次のとおりです。

  2. 前述の問合せのSelectfromの間で[Ctrl] + [Space]を押すと、クエリー・ビルダーによってSが表示され、SelectFromの間にSが配置されることが示されます(ここでは、Select S from ServiceCategory S whereとなります)。

    図3-33 別名のサポート

    図3-33の説明が続きます
    「図3-33 別名のサポート」の説明

  3. 最初のSに続けてドットを入力すると、Service Categoryに関連付けられたすべてのリレーションシップが表示されます。

    図3-34 すべてのリレーションシップが表示された別名のサポート

    図3-34の説明が続きます
    「図3-34 すべてのリレーションシップが表示された別名のサポート」の説明

  4. 同様に、この問合せSelect S from ServiceCategory S where Sで、最後のSに続けてドットを入力すると、ServiceCategoryに関連付けられたすべてのフィールドが表示されます。

    図3-35 ServiceCategoryに関連付けられたすべてのフィールドが表示された別名のサポート

    図3-35の説明が続きます
    「図3-35 ServiceCategoryに関連付けられたすべてのフィールドが表示された別名のサポート」の説明

3.3.4.5 ROQLを使用したリレーションシップの提案

ROQLでは、リレーションシップ機能がサポートされます。この機能によって、リレーションシップを通じて、あるプライマリ・オブジェクトから別のプライマリ・オブジェクトに到達できます。

ROQLクエリー・ビルダーは、識別済のオブジェクトから到達可能なすべてのリレーションシップを識別してリストします。リレーションシップのリレーションシップをリストできます。

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

特定のContactの親組織を検索する必要がある場合、ROQLのテキスト領域にSelect Contactと入力して「.」を入力すると、Contactオブジェクトで使用可能なすべてのリレーションシップが表示されます(図3-36「リレーションシップの提案の例」を参照)。

図3-36 リレーションシップの提案の例

図3-36の説明が続きます
「図3-36 リレーションシップの提案の例」の説明

3.3.4.6 クエリー・ビルダーを使用したインラインおよびセマンティック検証の取得

クエリー・ビルダーには、問題のあるテキストの下に赤い波線を描画して強調表示する組込みのインライン・バリデータがあります(ツールチップ・メッセージにエラーを修正するための提案も表示されます)。

クエリー・ビルダー・バリデータは、キーワード、オブジェクト名、リレーションシップ名、フィールド名および関数名のスペル・チェックを実行します。正しく入力されたキーワードは、すべて自動的に青く表示され、それらのキーワードが有効であることが示されます。

図3-37 問合せ検証の例

図3-37の説明が続きます
「図3-37 問合せ検証の例」の説明

ROQLクエリー・ビルダーでは、問合せのセマンティック検証もサポートされます。これは、指定されたリレーションシップまたはフィールド名が、現在選択されているオブジェクトに対して無効であることを認識できます(図3-38「クエリー・ビルダーのセマンティック検証」を参照)。

図3-38 クエリー・ビルダーのセマンティック検証

図3-38の説明が続きます
「図3-38 クエリー・ビルダーのセマンティック検証」の説明

3.3.5 ROQLのアダプタ・サポート

Oracle RightNowアダプタは、オブジェクト問合せ言語を使用してRightNow CXプラットフォームに対してSQLに似た問合せを実行できるようにする問合せサブシステムを提供します。

この言語は、RightNow Object Query Language (ROQL (ロックウェルと発音))です。この問合せ言語は、Object Query Language (OQL)のサブセットと、オブジェクト表記法を処理するために拡張されているSQLに似た問合せ言語に基づきます。

ROQLでは、現在、Query Objects機能のみがサポートされ、Query CSはサポートされません。

3.3.5.1 問合せ引数

例として次の問合せを使用します。

問合せ引数を使用して問合せを調整します。つまり、前述の例で、LinおよびCAが問合せ引数です。

Select Contact from Contact where Contact.Name.First = 'Lin' AND Contact.Address.City = 'CA'

問合せパラメータは、アダプタが問合せの実行中に実際の値に置き換える問合せ引数をパラメータ化できる独自の概念です。

SQLと同様に、問合せ言語には、WHERE句でフィルタを渡して検索を調整できる機能があります。この調整は、バインド・パラメータの概念を使用することで可能になります。

3.3.5.2 バインド・パラメータのサポート

Oracle RightNowアダプタには、バインド・パラメータの形式で問合せ文に入力を行うことができるオプションがあります。

図3-39 バインド・パラメータの形式による問合せの入力

図3-39の説明が続きます
「図3-39 バインド・パラメータの形式による問合せの入力」の説明

Oracle RightNowアダプタのユーザー・インタフェースに表示された次の問合せの例を参照してください。contact_namecontact_addressの前に追加されたアンパサンド記号の&は、アンパサンドがバインド・パラメータであることを示します。

図3-40 バインド・パラメータを使用した問合せの例

図3-40の説明が続きます
「図3-40 バインド・パラメータを使用した問合せの例」の説明

右側の「問合せテスト・ツールを実行します」ボタンをクリックすると、問合せテスト実行ツールを実行して、バインド・パラメータと組み合されたこのような問合せの動作を参照できます。

図3-41 問合せテストの実行

図3-41の説明が続きます
「図3-41 問合せテストの実行」の説明

前述のとおり、問合せテスト実行ツールによって、バインド・パラメータ(ここでは&contact_nameおよび&contact_address)の値を指定するようプロンプトが表示されます。

図3-42 バインド・パラメータ用プロンプトが表示された問合せテスト実行ツール

図3-42の説明が続きます
「図3-42 バインド・パラメータ用プロンプトが表示された問合せテスト実行ツール」の説明

バインド・パラメータに適切な値を指定して「問合せ実行」ボタンをクリックすると、特定の問合せの結果セットを表示できます。

図3-43 バインド・パラメータを使用した問合せテスト・ツールの問合せ結果

図3-43の説明が続きます
「図3-43 バインド・パラメータを使用した問合せテスト・ツールの問合せ結果」の説明

この特定のアダプタ問合せに対して生成されたWSDLには、入力スキーマの一部としてバインド・パラメータが含まれます。

図3-44 バインド・パラメータが表示されたWSDLの生成済入力スキーマの一部

図3-44の説明が続きます
「図3-44 バインド・パラメータが表示されたWSDLの生成済入力スキーマの一部」の説明

この特定のアダプタ問合せに対して生成されたjcaファイルは、次のとおりです。

例3-7 問合せでバインド・パラメータが使用されている場合に生成されたJCAファイル

<adapter-config name="rightnowReferencePortType" adapter="rightnow" wsdlLocation="../WSDLs/rightnowReference.wsdl" xmlns="http://platform.integration.oracle/blocks
          /adapter/fw/metadata">
                 <connection-factory location=
                         "cloud/CloudAdapter">
    <non-managed-connection managedConnectionFactoryClassName="oracle.cloud.connector.
                            rightnow.
              RightNowConnectionFactory">
      <property name="targetWSDLURL" 
                           value="../WSDLs/soap.wsdl"/>
      <property name="csfkey" value="csf21"/>
      <property name="appID" 
                  value=
                "removeWhenAppIdIsHardcodedByRNPlugin"/>
      <property name="applicationVersion" value="1_2"/>
    </non-managed-connection>
  </connection-factory>
  <endpoint-interaction
                      portType="rightnowReferencePortType" 
                             operation="Get">
    <interaction-spec className="oracle.tip.adapter.cloud.
                          CloudInteractionSpec">
      <property name="targetOperation" value="Get"/>
      <property name="operationPath" value="Get"/>
      <property name="gpo.fetchAllNames" value="false"/>
    </interaction-spec>
  </endpoint-interaction>
</adapter-config>

問合せがパラメータ化されると、Oracle RightNowアダプタによって、そのコンシューマは、リクエスト・ペイロードの一部として問合せパラメータを渡すことができます。

アダプタは、リクエスト・ペイロードの問合せパラメータを動的に置き換えて、サービスの起動時に引数を含むROQL問合せを再構築します。

そのため、アダプタを使用して問合せパラメータを簡単に定義することで、問合せ引数をパラメータ化し、それらのパラメータを実行時に動的にインジェクトできます。