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

ステップ 4: マルチパート要求を使用する一括挿入

この Bulk API 2.0 の例では、新規レコードを挿入するジョブの作成、ジョブデータのアップロード、状況の確認、および結果の取得の手順について説明します。また、1 つのマルチパート要求を使用してジョブを作成し、データをアップロードします。

この例の場合、BOUNDARY は、リクエストボディのジョブの詳細とその CSV データの境界を示すために使用されています。

  1. このマルチパートの JSON 形式のコンテンツを newmultipartjob.json という名前のファイルにコピーします。

    この例のすべてのファイルをターミナルの現行の作業ディレクトリに保存します。

    メモ

    1--BOUNDARY
    2Content-Type: application/json
    3Content-Disposition: form-data; name="job"
    4
    5{
    6  "object":"Contact",
    7  "contentType":"CSV",
    8  "operation": "insert",
    9  "lineEnding" : "LF"
    10}
    11
    12--BOUNDARY
    13Content-Type: text/csv
    14Content-Disposition: form-data; name="content"; filename="content"
    15
    16FirstName,LastName,MailingCity
    17Astro,Nomical,San Francisco
    18Hootie,McOwl,San Francisco
    19Appy,Camper,San Francisco
    20Earnie,Badger,San Francisco
    21--BOUNDARY--
  2. ジョブを作成します。

    URI

    1/services/data/v58.0/jobs/ingest/

    ジョブの作成例

    1curl https://MyDomainName.my.salesforce.com/services/data/v58.0/jobs/ingest/ -H 'Authorization: Bearer 00DE0X0A0M0PeLE!AQcAQH0dMHEXAMPLEzmpkb58urFRkgeBGsxL_QJWwYMfAbUeeG7c1EXAMPLEDUkWe6H34r1AAwOR8B8fLEz6nEXAMPLE' -H "Content-Type: multipart/form-data; boundary=\"BOUNDARY\"" -H "Accept: application/json" -H "X-PrettyPrint:1" --data-binary @newmultipartjob.json -X POST

    応答にはジョブ id が含まれており、ジョブの state として UploadComplete が示されています。このジョブ id は次のステップで使用します。

    レスポンスボディの例

    1{
    2  "id" : "7303gEXAMPLE4X2QAN",
    3  "operation" : "insert",
    4  "object" : "Contact",
    5  "createdById" : "0055fEXAMPLEtG4AAM",
    6  "createdDate" : "2022-01-02T19:26:52.000+0000",
    7  "systemModstamp" : "2022-01-02T19:26:52.000+0000",
    8  "state" : "UploadComplete",
    9  "concurrencyMode" : "Parallel",
    10  "contentType" : "CSV",
    11  "apiVersion" : 58.0,
    12  "lineEnding" : "LF",
    13  "columnDelimiter" : "COMMA"
    14}
    マルチパートジョブは、作成された後に自動的に終了します。ジョブを手動で終了する必要はありません。
  3. 次の URI を使用してジョブの状況と結果を確認します。

    URI

    1/services/data/v58.0/jobs/ingest/jobId/

    ジョブの状況と結果の確認例

    1curl https://MyDomainName.my.salesforce.com/services/data/v58.0/jobs/ingest/7303gEXAMPLE4X2QAN/ -H 'Authorization: Bearer 00DE0X0A0M0PeLE!AQcAQH0dMHEXAMPLEzmpkb58urFRkgeBGsxL_QJWwYMfAbUeeG7c1EXAMPLEDUkWe6H34r1AAwOR8B8fLEz6nEXAMPLE' -H "Accept: application/json" -H "X-PrettyPrint:1" -X GET

    レスポンスボディの例

    1{
    2  "id" : "7303gEXAMPLE4X2QAN",
    3  "operation" : "insert",
    4  "object" : "Contact",
    5  "createdById" : "0055fEXAMPLEtG4AAM",
    6  "createdDate" : "2022-01-02T19:54:04.000+0000",
    7  "systemModstamp" : "2022-01-02T19:54:05.000+0000",
    8  "state" : "JobComplete",
    9  "concurrencyMode" : "Parallel",
    10  "contentType" : "CSV",
    11  "apiVersion" : 58.0,
    12  "jobType" : "V2Ingest",
    13  "lineEnding" : "LF",
    14  "columnDelimiter" : "COMMA",
    15  "numberRecordsProcessed" : 4,
    16  "numberRecordsFailed" : 0,
    17  "retries" : 0,
    18  "totalProcessingTime" : 50,
    19  "apiActiveProcessingTime" : 6,
    20  "apexProcessingTime" : 0
    21}
  4. 成功の結果を取得します。

    ジョブの状態が JobComplete または Failed になったら、どのレコードが正常に処理されたかについての詳細を取得できます。

    URI

    1/services/data/v58.0/jobs/ingest/jobId/successfulResults/

    成功の結果の取得例

    1curl https://MyDomainName.my.salesforce.com/services/data/v58.0/jobs/ingest/7303gEXAMPLE4X2QAN/successfulResults/ -H 'Authorization: Bearer 00DE0X0A0M0PeLE!AQcAQH0dMHEXAMPLEzmpkb58urFRkgeBGsxL_QJWwYMfAbUeeG7c1EXAMPLEDUkWe6H34r1AAwOR8B8fLEz6nEXAMPLE' -H "Content-Type: application/json" -H "Accept: text/csv" -H "X-PrettyPrint:1" -X GET

    レスポンスボディの例

    1"sf__Id","sf__Created",FirstName,LastName,MailingCity
    2"0038c00002hMS4kAAG","true","Astro","Nomical","San Francisco"
    3"0038c00002hMS4lAAG","true","Hootie","McOwl","San Francisco"
    4"0038c00002hMS4mAAG","true","Appy","Camper","San Francisco"
    5"0038c00002hMS4nAAG","true","Earnie","Badger","San Francisco"

    処理中にエラーが発生したレコードの詳細を取得するには、failedResults リソースを使用して GET 要求を発行します。完全な結果セットを参照していることを確認するには、unprocessedRecords リソースを使用して、未処理のレコードを調べます。「ジョブ未処理レコードの結果の取得」を参照してください。