ネストされたレコードを作成する
sObject Tree リソースを使用して、ルートレコードタイプを共有するネストされたレコードを作成できます。たとえば、1 回の要求で、取引先とその子取引先責任者、さらに 2 件目の取引先とその子取引先および子取引先責任者を作成できます。要求が処理されると、レコードが作成され、親と子が自動的に ID でリンクされます。要求データに、レコード階層、必須および省略可能な項目値、各レコードのタイプ、および各レコードの参照 ID を指定し、リソースの POST メソッドを使用します。要求が成功すると、レスポンスボディには作成されたレコードの ID が含まれます。失敗すると、応答にはエラーが発生したレコードの参照 ID とエラー情報のみが含まれます。
次の例では、2 セットのネストされたレコードを作成します。最初のセットには、取引先と 2 件の子取引先責任者レコードが含まれます。2 つ目のセットには、取引先、1 件の子取引先レコード、および 1 件の子取引先責任者レコードが含まれます。レコードデータは newrecords.json で指定されます。
- 2 件の新規取引先とその子レコードを作成する例
-
1curl https://MyDomainName.my.salesforce.com/services/data/v59.0/composite/tree/Account/ -H "Authorization: Bearer token -H "Content-Type: application/json" -d "@newrecords.json" - 2 件の新規取引先とその子レコードを作成するためのリクエストボディ newrecords.json ファイルの例
-
1{ 2"records" :[{ 3 "attributes" : {"type" : "Account", "referenceId" : "ref1"}, 4 "name" : "SampleAccount1", 5 "phone" : "1234567890", 6 "website" : "www.salesforce.com", 7 "numberOfEmployees" : "100", 8 "industry" : "Banking", 9 "Contacts" : { 10 "records" : [{ 11 "attributes" : {"type" : "Contact", "referenceId" : "ref2"}, 12 "lastname" : "Smith", 13 "Title" : "President", 14 "email" : "sample@salesforce.com" 15 },{ 16 "attributes" : {"type" : "Contact", "referenceId" : "ref3"}, 17 "lastname" : "Evans", 18 "title" : "Vice President", 19 "email" : "sample@salesforce.com" 20 }] 21 } 22 },{ 23 "attributes" : {"type" : "Account", "referenceId" : "ref4"}, 24 "name" : "SampleAccount2", 25 "phone" : "1234567890", 26 "website" : "www.salesforce.com", 27 "numberOfEmployees" : "52000", 28 "industry" : "Banking", 29 "childAccounts" : { 30 "records" : [{ 31 "attributes" : {"type" : "Account", "referenceId" : "ref5"}, 32 "name" : "SampleChildAccount1", 33 "phone" : "1234567890", 34 "website" : "www.salesforce.com", 35 "numberOfEmployees" : "100", 36 "industry" : "Banking" 37 }] 38 }, 39 "Contacts" : { 40 "records" : [{ 41 "attributes" : {"type" : "Contact", "referenceId" : "ref6"}, 42 "lastname" : "Jones", 43 "title" : "President", 44 "email" : "sample@salesforce.com" 45 }] 46 } 47 }] 48} - レコードとリレーションが正常に作成された場合のレスポンスボディの例
-
1{ 2 "hasErrors" : false, 3 "results" : [{ 4 "referenceId" : "ref1", 5 "id" : "001D000000K0fXOIAZ" 6 },{ 7 "referenceId" : "ref4", 8 "id" : "001D000000K0fXPIAZ" 9 },{ 10 "referenceId" : "ref2", 11 "id" : "003D000000QV9n2IAD" 12 },{ 13 "referenceId" : "ref3", 14 "id" : "003D000000QV9n3IAD" 15 },{ 16 "referenceId" : "ref5", 17 "id" : "001D000000K0fXQIAZ" 18 },{ 19 "referenceId" : "ref6", 20 "id" : "003D000000QV9n4IAD" 21 }] 22}
要求が処理されると、6 件のレコードすべてが要求に指定された親-子リレーションで作成されます。