process操作
process
操作は、要求ペイロードで指定された同じ型のビジネス・オブジェクトのリストに対してcreate、update、deleteまたはmerge操作を実行します。
通常、この操作は一括処理に使用され、すべてのビジネス・オブジェクトに対して同じ操作を実行できます。 同じコールで1つのオブジェクトに対してcreate操作を実行し、別のオブジェクトに対してdelete操作を実行することはできません。 processControl
パラメータは、操作の次の動作を制御します。
-
応答ペイロードの詳細レベル: 応答ペイロードが空のペイロードを返すか、主キーのペイロードを返すか、サービス・データ・オブジェクトの定義全体を含むペイロードを返すかを制御します。 パフォーマンスを向上させるには、最初の2つのオプションを使用します。 最初のオプションではフェッチが省略されるとともに、どちらのオプションでも応答ペイロードのサイズが小さくなります。
-
エラー・メッセージの詳細レベル: エラー・メッセージに情報を含めないか、主キーのみを含めるか、エラーが発生したサービス・データ・オブジェクトのすべての属性を含めるかを制御します。 最初のオプションでは、オブジェクトに関する情報は提供されません。
-
部分的な失敗の制御: サービス・データ・オブジェクトのリストに対する変更がどのようにコミットされるかを制御します。 サービスで部分的な失敗の機能が有効になっており、要求がこの機能を利用するとします。 特定のオブジェクトでエラーが発生した場合、操作はこのオブジェクトをスキップし、他のオブジェクトの処理を続行します。 処理が完了すると、正常に変更されたオブジェクトがコミットされ、エラーのあるオブジェクトはコミットされません。 処理エラーがすべてのオブジェクトに影響する場合、オブジェクトはコミットされません。ノート: 設計フェーズ中にトランザクション・レベルの検証を定義すると、実行時にこれらの検証によって、エンティティ・レベルで定義された部分的な失敗の制御機能が上書きされます。 つまり、実行時にトランザクション・レベルの検証が失敗すると、部分的な失敗の制御が有効になっていても、トランザクション内のサービス・データ・オブジェクトはコミットされません。
操作のシグネチャ
営業リード・サービスの場合、processSalesLead
操作のシグネチャは次の要素で構成されます。
-
要求ペイロード内のビジネス・オブジェクトに対して実行される操作の名前。
changeOperation
パラメータにこの名前が格納され、有効な値はCreate
、Update
、Merge
およびDelete
です。 この値は、大/小文字が区別されます。 -
changeOperation
パラメータで指定された操作の実行対象となるビジネス・オブジェクトのリスト。 -
応答ペイロードおよびエラー・メッセージの詳細を制御するパラメータ。 オブジェクト全体を返す場合は
returnMode
およびexceptionReturnMode
要素をFull
に、主キーのみを返す場合はKey
に、情報を返さない場合はNone
に設定します。 -
部分的な失敗のモードに関するパラメータ。 部分的な失敗のモードを有効にするには、このパラメータを
true
に設定します。 デフォルト値はfalse
です。
要求ペイロードのシグネチャは次のとおりです。 ProcessControl
型の定義は、BC4JService.xsdのサンプルを参照してください。
<element name="processSalesLead">
<complexType>
<sequence>
<element name="changeOperation" type="string"/>
<element maxOccurs="unbounded" minOccurs="0" name="salesLead" type="ns1:MklLead"/>
<element name="processControl" type="ns2:ProcessControl"/>
</sequence>
</complexType>
</element>
操作が正常に完了すると、ProcessControl
の設定に基づいた値が応答ペイロードによって返されます。
<element name="processSalesLeadResponse">
<complexType>
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="result" type="ns1:MklLead"/>
</sequence>
</complexType>
</element>
例
この例では、取引金額がそれぞれ$1,500,000 USDおよび$450,000 USDに設定されているSammamish TechnologiesとSnoqualmie Softwareの2つの新しい営業リード・オブジェクトが作成されます。
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:processSalesLead
xmlns:ns1="http://xmlns.oracle.com/apps/marketing/leadMgmt/leads/leadService/types/">
<ns1:changeOperation>Create</ns1:changeOperation>
<ns1:salesLead
xmlns:ns2="http://xmlns.oracle.com/oracle/apps/marketing/leadMgmt/leads/leadService/">
<ns2:Name>Sammamish Technoloiges</ns2:Name>
<ns2:DealAmount currencyCode="USD">1500000</ns2:DealAmount>
</ns1:salesLead>
<ns1:salesLead
<ns2:Name>Snoqualmie Software</ns2:Name>
<ns2:DealAmount currencyCode="USD">450000</ns2:DealAmount>
</ns1:salesLead>
<ns1:processControl xmlns:ns2="http://xmlns.oracle.com/adf/svc/types/">
<ns2:returnMode>Key</ns2:returnMode>
<ns2:exceptionReturnMode>Key</ns2:exceptionReturnMode>
<ns2:partialFailureAllowed>false</ns2:partialFailureAllowed>
</ns1:processControl>
</ns1:processSalesLead>
</soap:Body>
</soap:Envelope>
応答ペイロードには、新しく作成された営業リード・オブジェクトの主キーのみが含まれます。
<ns0:processSalesLeadResponse xmlns="" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns0="http://xmlns.oracle.com/apps/marketing/leadMgmt/leads/leadService/types/"
xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<ns2:result xmlns:ns0="http://xmlns.oracle.com/adf/svc/types/"
xmlns:ns1="http://xmlns.oracle.com/apps/marketing/leadMgmt/leads/leadService/"
xmlns:ns2="http://xmlns.oracle.com/apps/marketing/leadMgmt/leads/leadService/types/"
xmlns:ns3="http://xmlns.oracle.com/apps/crmCommon/notes/noteService"
xmlns:ns4="http://xmlns.oracle.com/oracle/apps/marketing/leadMgmt/leads/leadService/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns4:MklLead">
<ns4:LeadId>300100055477603</ns4:LeadId>
</ns2:result>
<ns2:result xmlns:ns0="http://xmlns.oracle.com/adf/svc/types/"
xmlns:ns1="http://xmlns.oracle.com/apps/marketing/leadMgmt/leads/leadService/"
xmlns:ns2="http://xmlns.oracle.com/apps/marketing/leadMgmt/leads/leadService/types/"
xmlns:ns3="http://xmlns.oracle.com/apps/crmCommon/notes/noteService"
xmlns:ns4="http://xmlns.oracle.com/oracle/apps/marketing/leadMgmt/leads/leadService/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns4:MklLead">
<ns4:LeadId>300100055477605</ns4:LeadId>
</ns2:result>
</ns0:processSalesLeadResponse>
次の例は、ProcessSalesLead
パラメータのReturnMode
がNone
に設定されているときの応答ペイロードを示しています。
<ns0:processSalesLeadResponse xmlns="" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns0="http://xmlns.oracle.com/apps/marketing/leadMgmt/leads/leadService/types/"
xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<ns2:result xmlns:ns0="http://xmlns.oracle.com/adf/svc/types/"
xmlns:ns1="http://xmlns.oracle.com/apps/marketing/leadMgmt/leads/leadService/"
xmlns:ns2="http://xmlns.oracle.com/apps/marketing/leadMgmt/leads/leadService/types/"
xmlns:ns3="http://xmlns.oracle.com/apps/crmCommon/notes/noteService"
xmlns:ns4="http://xmlns.oracle.com/oracle/apps/marketing/leadMgmt/leads/leadService/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns4:MklLead"/>
<ns2:result xmlns:ns0="http://xmlns.oracle.com/adf/svc/types/"
xmlns:ns1="http://xmlns.oracle.com/apps/marketing/leadMgmt/leads/leadService/"
xmlns:ns2="http://xmlns.oracle.com/apps/marketing/leadMgmt/leads/leadService/types/"
xmlns:ns3="http://xmlns.oracle.com/apps/crmCommon/notes/noteService"
xmlns:ns4="http://xmlns.oracle.com/oracle/apps/marketing/leadMgmt/leads/leadService/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns4:MklLead"/>
</ns0:processSalesLeadResponse>
関連する操作
要求ペイロード内のオブジェクトごとに異なる操作を実行するには、processCS
操作を使用します。
パフォーマンスを最適化するためにペイロード内の値を制御するには、個々のビジネス・オブジェクトに対するcreate
、update
、merge
およびdelete
操作のかわりに、process
操作を使用します。