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

一括更新/挿入のウォークスルー

このウォークスルーでは、レコードの更新/挿入、ジョブのデータのアップロード、状況の確認、結果の取得を行うジョブを作成する手順をガイドします。
  • このウォークスルーのすべての手順を一読してください。このドキュメントの残りを確認して、Bulk API 2.0 コールの概要と概念を把握しておくこともお勧めします。
  • ワークベンチに習熟します。このウォークスルーではワークベンチを使用して Bulk API 2.0 コールを発行しますが、REST 要求を実行できる任意のツールや開発環境を使用することもできます。
  1. オブジェクトが外部 ID 項目を使用していることを確認します。

    レコードを更新/挿入するには、ジョブに含まれるオブジェクトに外部 ID 項目が必要です。この項目は、組織の既存のレコードを識別するために使用されます。Bulk API 2.0 では、外部 ID 項目を使用して一括ジョブデータ内のレコードが既存レコードの更新と新規レコードの作成のどちらに使用されるかを判断します。

  2. データを含む CSV ファイルを作成します。

    任意のスプレッドシートツールを使用して、更新/挿入するレコードを含む CSV ファイルを作成します。CSV ファイルの最初の行には、処理するオブジェクトの項目名をリストします。それ以降の行は、挿入するレコードに対応します。

    CSV の列のいずれかが、ステップ 1 で識別された外部 ID 項目に対応する必要があります。

    使用可能な区切り文字や有効な日時形式など、CSV ファイルの準備についての詳細は、「Bulk API 2.0 取得」を参照してください。

  3. ジョブを作成します。

    レコードの挿入や更新など、Bulk API 2.0 タスクを実行するには、最初にジョブを作成します。ジョブでは、読み込むオブジェクトの種別 (Contact など) を指定します。また、実行する操作 (更新/挿入、挿入、削除など) も指定します。ジョブを作成したら、そのジョブの ID を Bulk API 2.0 要求で使用してジョブを終了または中止 (キャンセル) できます。

    1. ワークベンチで、組織にログインします。
    2. [Utilities (ユーティリティ)] | [REST Explorer] に移動します。Bulk API 2.0 を使用し、次の詳細を指定した POST 要求を発行して新規ジョブを作成します。
      要求ヘッダー:
      1Content-Type: application/json; charset=UTF-8
      2Accept: application/json
      URI:
      1/services/data/vXX.X/jobs/ingest/
      リクエストボディ:
      1{
      2    "object" : "Contact",
      3    "externalIdFieldName" : name of external id field
      4    "contentType" : "CSV",
      5    "operation" : "upsert"
      6}

      更新/挿入ジョブの作成時には、externalIdFieldName プロパティを使用して、外部 ID 項目の名前を指定する必要があります。Contact 以外のオブジェクトを挿入する場合は、リクエストボディの「Contact」を、使用するオブジェクト名に置き換えてください。

      ジョブの状況が Open のジョブ ID を含む応答が返されます。このジョブ ID は、次のステップの Bulk API 2.0 コールで使用します。応答の contentUrl 項目の URL も、次のステップでデータをアップロードするときに使用します。

  4. CSV データをアップロードします。

    新規ジョブを作成したら、データをアップロードできます。前に作成した CSV ファイルを使用してレコードデータを指定します。

    ワークベンチの REST Explorer で、Bulk API 2.0 を使用し、CSV データを含む新規ジョブデータ要求を作成します。次の詳細を指定して PUT 要求を発行します。

    要求ヘッダー:
    1Content-Type: text/csv
    2Accept: application/json
    URI:

    ステップ 3 の応答の contentUrl 項目に指定されている URI を使用します。この URI の形式は、次の例と似ています。

    1/services/data/vXX.X/jobs/ingest/jobId/batches/
    リクエストボディ:
    1(Content of your CSV file)

    リクエストボディを作成するには、CSV データをコピーしてワークベンチの [Request Body (リクエストボディ)] テキスト項目に貼り付けます。Bulk API 2.0 を使用して、(base64 エンコード後に) 合計サイズが 150MB を超えない範囲で CSV データを送信できます。

    状況がまだ Open のジョブ ID を含む応答が返されます。PATCH を使用してジョブの状況を Aborted に設定すれば、この時点でジョブをキャンセルすることができます。

  5. ジョブを終了します。

    データの送信が完了したら、ジョブを終了して Salesforce にジョブの処理準備ができたことを伝達できます。

    ワークベンチの REST Explorer で、次の詳細を指定して PATCH 要求を発行します。

    要求ヘッダー:
    1Content-Type: application/json; charset=UTF-8
    2Accept: application/json
    URI:
    1/services/data/vXX.X/jobs/ingest/jobId/
    リクエストボディ:
    1{
    2    "state" : "UploadComplete"
    3}
  6. ジョブの状況と結果を確認します。

    全体的なジョブの状況や処理されたレコード数など、ジョブに関する基本的な状況情報を取得するには、次の詳細を指定した GET 要求を使用します。

    要求ヘッダー:
    1Content-Type: application/json; charset=UTF-8
    2Accept: application/json
    URI:
    1/services/data/vXX.X/jobs/ingest/jobId/

    ジョブが完了して、状況が JobComplete (または Failed) になったら、次の詳細を指定して GET 要求を発行し、正常に処理されたジョブデータレコードの詳細を取得できます。

    要求ヘッダー:
    1Content-Type: application/json; charset=UTF-8
    2Accept: text/csv
    1/services/data/vXX.X/jobs/ingest/jobId/successfulResults/

    CSV データを含む応答が返されます。各行にはレコード ID とレコードが正常に処理されたかどうかに関する情報が含まれます。更新/挿入ジョブで作成されたレコードと更新されたレコードを判別するには、正常な結果の Created 項目を調べます。処理中にエラーが発生したレコードの詳細を取得するには、successfulResults リソースではなく failedResults リソースを指定した GET 要求を使用します。

    完全な結果セットを参照していることを確認するには、unprocessedRecords リソースを使用して、未処理のレコードを調べます。<リファレンスの「ジョブ未処理レコードの結果の取得」へのリンク>