操作の作成、読取り、更新および削除の理解
Oracle RightNowアダプタで使用可能な操作には、作成、読取り、更新および削除(CRUD)操作が含まれます。
CRUD操作によって、Oracle RightNow Cxシステムに含まれるオブジェクトの作成、読取り、更新および削除が可能になります。
すべてのCRUD操作は、多相動作セクションで定義されたとおりに多相的に動作します。そのため、任意のCRUD操作は、入力パラメータとして1からNまでの異種プライマリ・オブジェクトを受け入れることが可能で、それによって単一のリクエストで混在するオブジェクト・タイプを任意のCRUD操作に提供できます。
たとえば、Contact、Incidentおよび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操作は、プライマリ・オブジェクトとサブオブジェクトを破棄します。
サポートされる機能
CRUD操作の使用
Oracle RightNowアダプタでは、CRUD、つまり作成、読取り、更新および破棄操作がサポートされます。サポートされる基本操作は次のとおりです。
1つ以上のビジネス・オブジェクトの作成
Oracle RightNowアダプタを使用して、RightNow Cxで1つ以上のビジネス・オブジェクト(標準またはカスタム)を作成できます。たとえば、Organization、ContactおよびIncidentオブジェクトを、すべて単一のリクエストの一部として、または3つの独立したリクエストとして作成できます。
たとえば、操作画面では、1つのリクエストの一部としてOrganization、ContactおよびIncidentオブジェクトを選択できます。
1つ以上のオブジェクトからのデータの取得
Oracle RightNowアダプタを使用して、RightNow CXクラウド・プラットフォームで使用可能な1つ以上のオブジェクトからデータを取得できます。たとえば、Oracle RightNowアダプタを使用して、組織のみに関連するデータを取得したり、1つのリクエストで組織、連絡先およびインシデントの組合せに関する情報を取得できます。
たとえば、操作画面でGet操作を指定してOrganizationオブジェクトを選択し、Organizationからデータを取得できます。
- 「操作タイプの選択」リストからGet操作を選択します。
- 矢印を使用してOrganizationオブジェクトを「選択可能」リストから「選択済」リストに移動します。
- 「次」をクリックします。
1つ以上のビジネス・オブジェクトの更新
Update操作を使用して、任意のプライマリ・オブジェクトと関連サブオブジェクトを更新します。RightNow CXクラウド・プラットフォームで1つ以上のビジネス・オブジェクト(標準またはカスタム)を更新できます。たとえば、Organization、ContactおよびIncidentオブジェクトを、単一のリクエストの一部として、または3つの独立したリクエストとして更新できます。
たとえば、Organization、ContactおよびIncidentオブジェクトを、単一のUpdateリクエストの一部として、操作画面で更新できます。
更新操作を実行するには:
- 「操作タイプの選択」リストからUpdateを選択します。
- 選択可能リストから1つ以上のビジネス・オブジェクトを選択します。
- 矢印を使用して、ビジネス・オブジェクトを選択済リストに移動します。
- 「次」をクリックします。
3つのオブジェクトに対する一連の更新の一部として1つのオブジェクトを更新できます。
1つ以上のビジネス・オブジェクトの削除
Oracle RightNowアダプタを使用して、RightNow Cxクラウド・プラットフォームで1つ以上のビジネス・オブジェクト(標準またはカスタム)を削除できます。たとえば、Organization、ContactおよびIncidentオブジェクトを、すべて単一のリクエストの一部として、または3つの独立したリクエストとして削除できます。
次のスクリーンショットでは、Oracle RightNowアダプタの操作画面を使用して、Organization、ContactおよびIncidentオブジェクトを削除します。
複数のビジネス・オブジェクトを削除するには:
- 「操作タイプの選択」リストからDestroy操作を選択します。
- 矢印を使用してOrganization、ContactおよびIncidentオブジェクトを「選択可能」リストから「選択済」リストに移動します。
- 「次」をクリックします。
バッチ機能の使用
バッチ機能は、Oracle RightNowアダプタの独特な機能であり、1つ以上の異種操作を単一の操作を通じてRightNow Cxサーバーに送信できます。この機能によって、統合開発者は、既存の組織の更新、既存の組織の連絡先の作成、既存のインシデントのノートの削除、または新しいインシデントの作成が可能になります。バッチ機能の使用により、これらすべての指示を結合し、単一の操作としてOracle RightNow Cxサーバーに送信できます。Oracle RightNowアダプタは、バッチ操作とバッチ・オプションを構成するために必要なツールを提供して、この機能を拡張します。
アダプタでは、バッチ操作と処理オプションのために統合の容易なインタフェースも提供しています。バッチ操作オプションを選択してこのオプションを構成できます。
バッチ機能には他に次の機能も含まれます。
-
バッチの各操作には、個別の処理オプションがあります。アダプタ構成ウィザードでは、ユーザーが処理オプションを構成するためのグラフィカルで直感的な方法が提供されます。
-
バッチ内の操作は、通常、単一のトランザクションで実行されますが、
commitAfterプロパティを使用してこれらの操作を異なる作業ユニットにグループ化することもできます。このプロパティでは、複数の操作を1つのトランザクションにグループ化します。実行時、バッチ内の一連の操作を1つの操作の一部として定義する場合、そのトランザクション境界の最後の操作後にこのアクションが送信されます。
Oracle RightNowアダプタのユーザー・インタフェースによるバッチ機能のサポート
バッチ機能は、Oracle RightNowアダプタの独特な機能であり、1つ以上の操作を単一の操作を通じてOracle RightNow Cxに送信できます。
Oracle RightNowアダプタは、バッチ操作とバッチ・オプションを構成するために必要なツールを提供して、バッチ機能を拡張します。これは、バッチ操作と処理オプションのために統合の容易なインタフェースも提供しています。
次の項では、アダプタ構成ウィザードを使用してバッチ操作用にOracle RightNowアダプタをモデル化する方法について説明します。
バッチ内の操作は、通常、単一のトランザクションで実行されますが、commitAfterプロパティを使用してこれらの操作を別々の作業ユニットにグループ化することもできます。
バッチ・プロセス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>チェーン
チェーンは、単一のバッチ・リクエスト内で複数の操作を相互に関連付けるために使用できるOracle RightNowアダプタの機能です。具体的には、チェーンをバッチと併用して、関連する操作を実行します。操作のチェーンを作成するには、チェーンのソースおよびターゲットの操作が同じ作業ユニット内に存在する必要があります。
ノート:
Oracle RightNow Cloudアダプタをアウトバウンド方向に構成するときに、チェーンを使用する場合は、「後でコミット」処理オプションを選択しないでください。アウトバウンド方向の構成の詳細は、「Oracle RightNowアダプタのユーザー・インタフェースによるバッチ機能のサポート」を参照してください。たとえば、次のリクエストには、同じサンプル・バッチ・リクエストのすべての部分である3つの操作が含まれます。
-
Contactの作成。 -
Incidentの作成(このIncidentのプライマリContactは最初のステップで作成したものです)。 -
Incidentの取得(作成したIncidentのみを返す必要があります)。
例3-4の例で強調表示されている属性を使用して、これがコード内でどのように記述されるかを確認します。
例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-5に関連付けられているリクエストおよびレスポンス・ペイロードは、統合リクエスト・ペイロードの例を示しています。
例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>サポートされる処理オプション
処理オプションを使用して、RightNowクラウド操作の実行時にサーバー側処理の特定の機能を有効化および無効化できます。処理オプションは、作成されると、処理オプションを使用する様々なWSDL操作に提供されます。次に、サポートされるすべての処理オプションのリストと、その使用方法およびデフォルト値を示します。この項では、次の内容について説明します。
CreateProcessingOptions
作成のプロパティ・タブで指定することで、CreateProcessingOptionsとCreate操作を組み合せて使用できます。CreateProcessingOptionsには、表3-1にリストされているプロパティが含まれます。
表3-1 CreateProcessingオプション
| フィールド | 説明 |
|---|---|
|
|
|
|
|
RightNowアダプタ固有のオプション。このプロパティは、ブール値を使用し、IDを |
|
|
|
DestroyProcessingOptions
削除操作のプロパティ・タブで指定することで、DestroyProcessiongOptionsとDelete操作を組み合せて使用できます。DestroyProcessingOptionsには、次のプロパティが含まれます。
表3-2 DestroyProcessingオプション
| フィールド | 説明 |
|---|---|
|
|
|
|
|
|
GetProcessingOptions
取得操作のプロパティ・タブで指定することで、GetProcessiongOptionsとGet操作を組み合せて使用できます。GetProcessingOptionsには、次のプロパティが含まれます。
表3-3 GetProcessingオプション
| フィールド | 説明 |
|---|---|
|
|
すべてのNamedIDタイプにそのフィールドの名前とIDの両方を含めるようにサーバーに指示します。非常に効率が悪い場合およびすべての名前とIDのフィールドが必要な場合にのみこれを使用してください。すべての名前とIDのフィールドが必要でない場合、このオプションは使用しないでください(詳細は、 |
UpdateProcessingOptions
更新操作のプロパティ・タブで指定することで、UpdateProcessingOptionsとUpdate操作を組み合せて使用できます。UpdateProcessingOptionsには、次のプロパティが含まれます。
表3-4 UpdateProcessingオプション
| フィールド | 説明 |
|---|---|
|
|
Update操作の完了後に外部イベントを実行しないことを示すために使用します。デフォルト値は、言語固有です(デフォルト値の詳細は、言語のドキュメントおよび生成されたクライアント・コードを参照してください)。 |
|
|
Update操作の完了後にビジネス・ルールを実行しないことを示すために使用します。デフォルト値は、言語固有です(デフォルト値の詳細は、言語のドキュメントおよび生成されたクライアント・コードを参照してください)。 |



