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

sObject Rows by External ID を使用したレコードの作成

リクエストボディに含まれる項目値に基づいて、新しいレコードを作成します。このリソースでは、外部 ID 項目を使用する必要はありません。

リクエストボディに 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 POST

回避策:

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

メモ

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

特殊なケースとして、API バージョン 37.0 以降では、/services/data/vXX.X/sobjects/sObjectName/Id に対する POST 要求を使用してレコードを作成できます。Id の値が null であるため、要求から除かれ、リクエストボディに従ってレコードが作成されます。このリソースを使用したレコードの作成では、新規レコードごとに各 POST 要求で同じ URI を使用できるため便利です。この場合、レコードを作成するために外部 ID を指定する必要はありません。