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

sObject Rows by External ID を使用したレコードの更新/挿入

指定された外部 ID 項目の値に基づいて、レコードを更新/挿入します。外部 ID の値がすでに存在するかどうかに応じて、要求時に新しいレコードが作成されるか、または既存のレコードが更新されます。

  • 外部 ID が既存レコードと一致しない場合は、リクエストボディに従って新規レコードが作成されます。
  • 外部 ID が 1 つの既存レコードと一致する場合は、リクエストボディに従って既存レコードが更新されます。
  • 外部 ID が複数の既存レコードと一致する場合は、300 エラーが返され、レコードは作成も更新もされません。

リクエストボディに ID または外部 ID 項目を指定してはいけません。指定すると、エラーが発生します。

メモ

セキュリティ上の理由で、一部のトップレベルドメイン (TLD) は特定のファイル形式拡張子と競合する場合があります。実装を調整して、そのようなケースを回避してください。たとえば、メールアドレスが要求 URL の外部 ID として使用されていて、TLD ".inc" が項目値の一部として使用されている場合、その要求では「404 not found」エラーが返されます。

たとえば、

「404 not found」が返されます。
1curl https://MyDomainName.my.salesforce.com/services/data/v55.0/sobjects/Lead/Email/example@email.inc -H "Authorization: Bearer token" -X PATCH

回避策:

  • 別の外部 ID 項目を使用します。
  • メール項目と同じ新しい外部 ID 項目を作成し、このケースに対応するために「.」を「_」に置き換えます。
  • 「.inc」で終わるメールに対してクエリを実行し、レコード ID を取得してそれを upsert (更新/挿入) に使用します。
  • upsert 操作に REST API の代わりに SOAP API を使用します。
  • カスタム Apex REST API を作成して、メールをパスパラメータでなくクエリパラメータとして受け入れます。Apex を使用して、upsert 操作を実行します。

メモ

URI
/services/data/vXX.X/sobjects/sObjectName/fieldName/fieldValue
形式
JSON、XML
HTTP メソッド
PATCH
認証
Authorization: Bearer token
パラメータ
なし
使用方法

External ID 属性と Unique 属性の両方が選択された (インデックスが一意) カスタム項目を持つオブジェクトのレコードを更新/挿入する場合、特別な権限は必要ありません。Unique 属性は重複作成を防止します。[外部 ID] 属性が選択され、Unique 属性が選択されていない (インデックスが一意ではない) オブジェクトのレコードを更新/挿入する場合、クライアントアプリケーションがこのコールを実行するには「すべてのデータの参照」権限が必要です。