少ない往復回数での複数レコードの更新/挿入
sObject コレクションを使用した PATCH 要求によって、外部 ID 項目に基づいて最大 200 件のレコードを作成または更新 (更新/挿入) します。このメソッドでは、UpsertResult オブジェクトのリストを返します。エラーが発生した場合に要求全体をロールバックするかどうかを選択できます。この要求は、API バージョン 46 以降で使用できます。
要求の構文
PATCH /services/data/vXX.X/composite/sobjects/SobjectName/ExternalIdFieldName
パラメータ
| パラメータ | 説明 |
|---|---|
| allOrNone | 省略可能。いずれかのオブジェクトの作成が失敗したときに要求全体をロールバックするのか (true)、それとも要求内のその他のオブジェクトの作成を個別に続行するのかを示します。デフォルトは、false です。 |
| records | 必須。sObjects のリスト。sObject コレクションを使用する PATCH 要求では、各オブジェクトの type 属性を設定します。どのオブジェクトにも id 項目は設定しません。代わりに、要求 URI で指定された外部 ID 項目を、使用します。 |
使用のガイドライン
- リストには最大 200 個のオブジェクトを含めることができます。
- リストには要求 URI で指定された種別のオブジェクトのみを含めることができます。
- リクエストボディの各オブジェクトには属性の対応付けが含まれている必要があります。対応付けには type の値が含まれている必要があります。
- オブジェクトは、リクエストボディでリストされている順に作成または更新されます。UpsertResult オブジェクトも同じ順序で返されます。
- サポートされるのは外部 ID のみです。レコード ID は使用しないでください。
エラーの確認
- 要求が適切な形式でない場合、API は 400 Bad Request HTTP 状況を返します。要求の構文を修正し、再試行してください。
- 要求が適切な形式の場合、API は 200 OK HTTP 状況を返します。項目が正常に処理された場合、success フラグがその項目で表示されます。エラー情報は errors 配列で返されます。
リクエストボディの例
1PATCH /composite/sobjects/Account/MyExtId__c
2{
3 "allOrNone" : false,
4 "records" : [{
5 "attributes" : {"type" : "Account"},
6 "Name" : "Company One",
7 "MyExtId__c" : "AAA"
8 }, {
9 "attributes" : {"type" : "Account"},
10 "Name" : "Company Two",
11 "MyExtId__c" : "BBB"
12 }]
13}レスポンスボディの例
次の例は、すべての項目を正常に処理した場合の応答を示しています。
1Status: 200
2[
3 {
4 "id": "001xx0000004GxDAAU",
5 "success": true,
6 "errors": [],
7 "created": true
8 },
9 {
10 "id": "001xx0000004GxEAAU",
11 "success": true,
12 "errors": [],
13 "created": false
14 }
15]次の例は、一部の項目でエラーが発生し、allOrNone が false である場合の応答を示しています。
1HTTP/1.1 200 OK
2
3[
4 {
5 "id" : "001xx0000004GxDAAU",
6 "success" : true,
7 "errors" : [ ]
8 },
9 {
10 "success" : false,
11 "errors" : [
12 {
13 "statusCode" : "MALFORMED_ID",
14 "message" : "Contact ID: id value of incorrect type: 001xx0000004GxEAAU",
15 "fields" : [
16 "Id"
17 ]
18 }
19 ]
20 }
21]次の例は、一部の項目でエラーが発生し、allOrNone が true である場合の応答を示しています。
1HTTP/1.1 200 OK
2
3[
4 {
5 "id" : "001xx0000004GxDAAU",
6 "success" : false,
7 "errors" : [
8 {
9 "statusCode" : "ALL_OR_NONE_OPERATION_ROLLED_BACK",
10 "message" : "Record rolled back because not all records were valid and the request was using AllOrNone header",
11 "fields" : [ ]
12 }
13 ]
14 },
15 {
16 "success" : false,
17 "errors" : [
18 {
19 "statusCode" : "MALFORMED_ID",
20 "message" : "Contact ID: id value of incorrect type: 001xx0000004GxEAAU",
21 "fields" : [
22 "Id"
23 ]
24 }
25 ]
26 }
27]