ステップ 5: 一括更新/挿入
-
オブジェクトが外部 ID 項目を使用していることを確認します。
レコードを更新/挿入するには、ジョブに含まれるオブジェクトに外部 ID 項目が必要です。Bulk API 2.0 は、レコードが既存レコードの更新とレコードの作成のどちらに使用されるかを外部 ID 項目を使用して判断します。
この例では、外部 ID 項目 customExtIdField__c が Account オブジェクトに追加されているものと想定します。オブジェクトマネージャーでこのカスタム項目を組織に追加するには、次のプロパティを使用します。詳細は、Salesforce ヘルプの「カスタム項目の作成」を参照してください。- データ型 — text
- 項目表示ラベル — customExtIdField
- [外部 ID] を選択します
-
更新/挿入するレコードを含む CSV ファイルを作成します。
CSV ファイルの最初の行には、処理するオブジェクトの項目名をリストします。それ以降の行は、挿入するレコードに対応します。
CSV ファイル内の 1 列は、外部 ID 項目 customExtIdField__c に対応している必要があります。
使用可能な区切り文字や有効な日時形式など、CSV ファイルの準備については、「Bulk API 2.0 取り込み」を参照してください。
この例では、次の情報を accountupsert.csv という名前のファイルにコピーします。
-
外部 ID 項目を含むジョブを作成します。
次の情報を newupsertjob.json という名前のファイルにコピーします。
URI
一括更新/挿入ジョブの作成例
レスポンスボディの例
応答にはジョブ ID が含まれており、ジョブの状態として Open が示されています。ジョブ ID と contentUrl 項目の URL は、次のステップでデータをアップロードするときに使用します。
-
作成した CSV データファイルをアップロードします。
URI
便宜上、ステップ 1 での応答の contentUrl 項目の URI を使用します。URI は次のようになります。
データのアップロード例
レスポンスボディの例
レスポンスボディは返されません。
-
state を UploadComplete に設定します。
データの送信が完了したら、ジョブデータのアップロードが完了し、処理できる状態になったことを Salesforce サーバーに通知します。
upload_complete.json という名前の JSON ファイルを作成し、次の内容を含めます。
URI
/services/data/v60.0/jobs/ingest/jobId/
state を UploadComplete に設定する例
レスポンスボディの例
-
成功の結果を取得します。
ジョブの状態が JobComplete または Failed になったら、どのジョブデータレコードが正常に処理されたかについての詳細を取得できます。
URI
成功の結果の取得例
応答には CSV 形式のデータが含まれており、各行には正常に処理されたレコードのレコード ID が入っています。
レスポンスボディの例
エラーが発生したレコードの詳細を取得するには、failedResults リソースを使用します。完全な結果セットを参照していることを確認するには、unprocessedRecords リソースを使用します。「ジョブ未処理レコードの結果の取得」を参照してください。