この記事の目次
SalesforceのBulk APIとは?

Bulk APIを使用する方法

【Step1】Salesforceにログインする
Bulk APIは一括処理に特化したAPIのため、ログイン処理がサポートされていません。そのため、SOAP APIを利用して、Salesforceにログインします。 1.テキストファイルを「loginInfo.txt」という名前で作成し、ログイン情報を記述します。Salesforceのユーザー名を<n1:username>要素の値に、パスワードは<n1:password>要素の値に設定します。<?xml version=""1.0"" encoding=""utf-8"" ?>
<env:Envelope xmlns:xsd=""http://www.w3.org/2001/XMLSchema""
xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""
xmlns:env=""http://schemas.xmlsoap.org/soap/envelope/"">
<env:Body>
<n1:login xmlns:n1=""urn:partner.soap.sforce.com"">
<n1:username>test_user1</n1:username>
<n1:password>user1_password</n1:password>
</n1:login>
</env:Body>
</env:Envelope>
2.コマンドの{version}をAPIのバージョンに置き換えてから実行します。
curl https://login.salesforce.com/services/Soap/u/{version} -H ""Content-Type: text/xml; charset=UTF-8"" -H ""SOAPAction: login"" -d @loginInfo.txt
3.ログイン処理のレスポンスがXML形式で返ってきますので、次の内容を控えます。
・<sessionId>要素の値
・<serverUrl>要素内のホスト名の最初にあるインスタンス
【Step2】ジョブを作成する
取引先を登録するジョブを作成します。 1.テキストファイルを「jobInfo.txt」という名前で作成し、作成するジョブの情報を記述します。要素に次の値を入力します。 ・<operation> 操作種別 ・<object> 操作対象のオブジェクト ・<contentType> 操作時に利用するファイルの形式<?xml version=""1.0"" encoding=""UTF-8""?>
<jobInfo xmlns=""http://www.force.com/2009/06/asyncapi/dataload"">
<operation>insert</operation>
<object>Account</object>
<contentType>CSV</contentType>
</jobInfo>
2.コマンドを次の内容に置き換えてから実行します。
・{instance}
【Step1】の<serverUrl>要素内のホスト名の最初にあるインスタンス
・{version}
APIのバージョン
・{sessionId}
【Step1】の<sessionId>要素の値
curl https://{instance}.salesforce.com/services/async/{version}/job -H ""X-SFDC-Session: {sessionId}"" -H ""Content-Type: application/xml; charset=UTF-8"" -d @jobInfo.txt
3.ジョブ作成のレスポンスがXML形式で返ってきますので、<id>要素の値を控えます。
【Step3】取引先の登録バッチを追加する
取引先の登録バッチを追加します。 1.CSVファイルを「accountData.csv」という名前で作成し、登録する取引先情報を記述します。""Name""
""取引先1""
""取引先2""
2.コマンドを次の内容に置き換えてから実行します。
・{instance}
【Step1】の<serverUrl>要素内のホスト名の最初にあるインスタンス
・{version}
APIのバージョン
・{jobId}
【Step2】の<id>要素の値
・{sessionId}
【Step1】の<sessionId>要素の値
curl https://{instance}.salesforce.com/services/async/{version}/job/{jobId}/batch -H ""X-SFDC-Session: {sessionId}"" -H ""Content-Type: text/csv; charset=UTF-8"" --data-binary @accountData.csv
3.バッチ追加のレスポンスがXML形式で返ってきますので、<id>要素の値を控えます。
【Step4】ジョブを終了する
Salesforceへのバッチのデータ送信が完了したことを通知するために、ジョブを終了します。 1.テキストファイルを「closeJob.txt」という名前で作成し、ジョブ終了の情報を記述します。<?xml version=""1.0"" encoding=""UTF-8""?>
<jobInfo xmlns=""http://www.force.com/2009/06/asyncapi/dataload"">
<state>Closed</state>
</jobInfo>
2.コマンドを次の内容に置き換えてから実行します。
・{instance}
【Step1】の<serverUrl>要素内のホスト名の最初にあるインスタンス
・{version}
APIのバージョン
・{jobId}
【Step2】の<id>要素の値
・{sessionId}
【Step1】の<sessionId>要素の値
curl https://{instance}.salesforce.com/services/async/{version}/job/{jobId} -H ""X-SFDC-Session: {sessionId}"" -H ""Content-Type: application/xml; charset=UTF-8"" -d @closeJob.txt
【Step5】バッチの実行状況を確認する
バッチの実行状況を確認します。 1.コマンドを次の内容に置き換えてから実行します。 ・{instance} 【Step1】の<serverUrl>要素内のホスト名の最初にあるインスタンス ・{version} APIのバージョン ・{jobId} 【Step2】の<id>要素の値 ・{batchId} 【Step3】の<id>要素の値 ・{sessionId} 【Step1】の<sessionId>要素の値curl https://{instance}.salesforce.com/services/async/{version}/job/{jobId}/batch/{batchId} -H ""X-SFDC-Session: {sessionId}""
2.<state>要素の値がCompletedの場合、バッチの処理が完了したとなります。
Bulk APIを利用してみよう

この記事の監修者・著者

-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞