この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Composite リクエストボディ

Composite リソースを使用して実行するサブ要求のコレクションを記述します。

Composite Collection Input

このリクエストボディには、エラーをロールバックする方法を指定する allOrNone フラグと実行するサブ要求を含む compositeRequest コレクションが含まれます。
プロパティ
名前 説明 必須か省略可能
allOrNone Boolean

サブ要求の処理中にエラーが発生した場合に何をすべきかを指定します。値が true の場合、Composite 要求全体がロールバックされます。最上位レベルの要求は HTTP 200 を返し、各サブ要求の応答が含まれます。

値が false の場合、失敗したサブ要���に連動しない残りのサブ要求が実行されます。連動サブ要求は実行されません。

どちらのケースでも、最上位レベルの要求は HTTP 200 を返し、各サブ要求の応答が含まれます。

Composite 要求に sObject Collections 要求が含まれている場合、sObject Collections 要求の allOrNone パラメータも結果に影響する場合があります。「Composite 要求および Collections 要求の allOrNone パラメータ」を参照してください。

メモ

省略可能
collateSubrequests Boolean

API で、関係のないサブ要求を順に並べて、それらを一括処理するか (true)、しないか (false) を制御します。

サブ要求が順に並べられると、処理速度は速くなりますが、実行順序は保証されません (サブ要求の間で明示的な依存関係がある場合を除きます)。

並べ替えが無効になっている場合、サブ要求は受信された順番に実行されます。

有効な HTTP ヘッダーを含むサブ要求は並べ替えることができません。

API バージョン 49.0 以降では、デフォルト値は true です。バージョン 48.0 では、デフォルト値は false です。

各サブ要求が、次の条件を満たす場合に並べ替えることができます。
  • HTTP メソッドが同じ場合。
  • リソースの API バージョンが同じ場合。
  • リソースの親が /sobjects リソースの場合。
  • サブ要求のグループに存在する sObject リソースが 5 つ以下。

項目間に暗黙的な依存関係はあるが、明示的な依存関係はない場合は、並べ替えで問題が発生する場合があります。たとえば、次のものを作成する要求を検討します。

  • 取引先
  • 取引先に関連する取引先責任者
  • 取引先名に依存するトリガを持つカスタムオブジェクト。

このような関係があり、実行順序を制御する必要がある場合は、collateSubrequestsfalse に設定します。

メモ

API バージョン 48.0 以降で利用できます。(以前のバージョンの場合、サブ要求を並べ替えることができません)。

省略可能
compositeRequest Composite Subrequest[] 実行するサブ要求のコレクション。 必須
JSON の例
1{
2   "allOrNone" : true,
3   "collateSubrequests": true,
4   "compositeRequest" : [{
5      Composite Subrequest
6      },{
7      Composite Subrequest
8      },{
9      Composite Subrequest
10   }]
11}

Composite サブ要求

サブ要求のリソース、メソッド、ヘッダー、本文、および参照 ID が含まれます。
プロパティ
名前 説明 必須か省略可能
body 不特定 サブ要求の入力ボディ。

型は url プロパティに指定された要求に応じて異なります。

省略可能
httpHeaders Map<String, String> サブ要求に含める要求ヘッダーとその値。次の 3 つのヘッダーを除き、要求されたリソースによってサポートされる任意のヘッダーを含めることができます。
  • Accept
  • Authorization
  • Content-Type
サブ要求は、最上位レベルの要求からこれら 3 つのヘッダーの値を継承します。サブ要求では、これらのヘッダーを指定しないでください。指定すると、最上位レベルの要求は失敗し、HTTP 400 応答が返されます。

有効な HTTP ヘッダーを含むサブ要求は並べ替えることができないため、要求の処理速度が低下します。

メモ

省略可能
method String 要求するリソースに使用するメソッド。可能な値は POSTPUTPATCHGET、および DELETE (大文字と小文字を区別) です。有効なメソッドのリストは、要求するリソースに関するドキュメントを参照してください。 必須
referenceId String サブ要求の応答に対応付けられる参照 ID で、後のサブ要求で応答を参照するために使用できます。referenceId はサブ要求の本文または URL で参照できます。次の構文を使用して参照を含めます: @{referenceId.FieldName}

参照 ID では 2 つの演算子を使用できます。

. 演算子は、応答の JSON オブジェクトの項目を参照します。たとえば、あるサブ要求で取引先レコードのデータを取得して、参照 ID Account1Data を出力に割り当てるとします。後のサブ要求で次のような取引先名を参照できます: @{Account1Data.Name}

[] 演算子は、応答で JSON コレクションをインデックス付けします。たとえば、1 つのサブ要求で sObject Basic Information リソースを使用して取引先基本情報を要求し、参照 ID AccountInfo を出力に割り当てるとします。応答の一部に、最近作成された取引先のコレクションが含められます。最近使ったデータのコレクションで最初の取引先の ID を参照できます。例: @{AccountInfo.recentItems[0].Id}

応答のコンテキストで意味をなす限り、各演算子を再帰的に使用できます。たとえば、取引先の複合住所項目の請求先市区郡コンポーネントを参照する場合: @{NewAccount.BillingAddress.city}

referenceId は大文字と小文字が区別されるため、参照している項目の大文字/小文字に注意を払ってください。「使用状況」を参照してください。

  • referenceId は、先頭を文字または数字にする必要があります。
  • referenceId には、文字、数字、アンダースコア (「_」) のみを使用する必要があります。

メモ

必須
url String 要求するリソース。
  • URL には、サブ要求がサポートするクエリ文字列パラメータを含めることができます。クエリ文字列は、URL 符号化されている必要があります。
  • パラメータを使用して、レスポンスボディを絞り込むことができます。
  • URL は /services/data/vXX.X/ で始まる必要があります。
必須
JSON の例

例 1

1{
2   "method" : "GET",
3   "url" : "/services/data/v54.0/sobjects/Account/describe",
4   "httpHeaders" : { "If-Modified-Since" : "Tue, 31 May 2016 18:00:00 GMT" },    
5   "referenceId" : "AccountInfo"
6}

例 2

1{
2   "method" : "POST",
3   "url" : "/services/data/v54.0/sobjects/Account",
4   "referenceId" : "refAccount",
5   "body" : { "Name" : "Sample Account" }
6}

例 3

1{
2   "method" : "GET",
3   "url" : "/services/data/v54.0/sobjects/Account/@{refAccount.id}",
4   "referenceId" : "NewAccountFields"
5}

例 4

1{
2   "method" : "PATCH",
3   "url" : "/services/data/v54.0/sobjects/Account/ExternalAcctId__c/ID12345",
4   "referenceID" : "NewAccount",
5   "body" : { "Name" : "Acme" }
6}
使用方法
referenceId は大文字と小文字が区別されるため、参照している項目の大文字/小文字に注意することが重要です。同じ項目でも、コンテキストによって異なる大文字/小文字が使用されることがあります。たとえば、レコードを作成する場合、ID 項目は応答で id と表示されます。ただし、sObject Rows リソースを使用してレコードのデータにアクセスする場合、ID 項目は Id と表示されます。例 3 の @{refAccount.id} 参照は有効です。例 2 に示すように refAccount が POST からの応答を参照するためです。@{refAccount.Id} と���様、代わりに Id を使用する場合 (すべて小文字ではなく大文字と小文字を併用)、参照 ID は大文字/小文字が間違っているため、要求の送信時にエラーが表示されます。

1 回のコールに最大 25 個のサブ要求を含めることができます。これらのサブ要求のうち最大 5 個を sObject コレクションまたはクエリ操作とすることができます (「Query」要求や「QueryAll」要求など)。

メモ