Data Loaderをコマンドラインでバッチ実行する手順
Data Loaderは画面を開かなくても、コマンドラインからバッチで動かせます。暗号化キーの作成から実行までの手順と、Bulk APIとの使い分けを説明します。
なぜコマンドラインで実行するのか
Data Loaderは通常、ウィザード画面を開いてCSVを選び、ボタンを押して実行します。ですが、この操作は人が毎回手を動かす前提です。夜間バッチやタスクスケジューラから定期的にデータを取り込みたい場合、画面操作は使えません。
Data Loaderにはコマンドラインから実行する仕組みがあります。設定ファイルを一度用意すれば、あとはprocess.bat(Windows)やprocess.sh(macOS)を呼ぶだけで、同じ取り込みを繰り返し実行できます。
用意するもの
| 項目 | 内容 |
|---|---|
| Data Loader本体 | developer.salesforce.comの「Tools」ページからインストーラを入手します。ソースを変更したい場合はgithub.com/forcedotcom/dataloaderのオープンソース版も選べます |
| Java実行環境 | JRE 17以上が必須です。 Windows版のインストーラはJavaを同梱しないため、別途インストールします |
| CSVファイル | 取り込むレコードのデータ |
マッピングファイル(.sdl) | CSVの列とSalesforceの項目を対応づける設定 |
| 暗号化キーとprocess-conf.xml | 認証情報を含む実行設定 |
⚠️ 以前はJava 11で動く版もありましたが、現在のData LoaderはJRE 17以上を要求します。インストール済みのJavaが古い場合は、先にJRE 17以上を入れ直してください。バージョンの確認はjava -versionで行います。
暗号化キーを作る
process-conf.xmlにはSalesforceへ接続するパスワードを書きますが、平文では書けません。先に暗号化キーを作り、そのキーでパスワードを暗号化します。
Data Loaderのbinフォルダへ移動する
コマンドプロンプト(またはターミナル)で、インストール先の
binフォルダに移動します。キーファイルを作る
encrypt -kにキーファイルの保存先を指定して実行します。指定したパスにキーファイルが作られます。パスワードを暗号化する
encrypt -eにログインパスワードとキーファイルのパスを指定して実行します。出力された暗号化済みの文字列を、process-conf.xmlのsfdc.passwordに使います。
encrypt.bat -k "C:\dataloader\bin\dataLoader.key" encrypt.bat -e password "C:\dataloader\bin\dataLoader.key"
Windowsでの実行例です。キーファイル作成とパスワード暗号化の2回に分けて呼びます。
⚠️ encrypt -eに渡すのは、暗号化前の平文パスワードです。出力された暗号化済みの文字列のほうをprocess-conf.xmlに書きます。平文をそのままxmlに書いてしまう間違いがよくあります。
CSVとマッピングファイルを用意する
取り込むCSVには、Salesforceの項目に対応する列を用意します。取引先を新規登録する例です。
| CSVの列 | 対応するSalesforce項目(API参照名) |
|---|---|
| 名称 | Name |
| 電話番号 | Phone |
| 住所 | BillingStreet |
| 郵便番号 | BillingPostalCode |
| URL | Website |
この対応関係を書いたものがマッピングファイルです。拡張子は.sdlで、左側=右側の形で1行ずつ書きます。
名称=Name 電話番号=Phone 住所=BillingStreet 郵便番号=BillingPostalCode URL=Website
CSVの列名(左)とSalesforceのAPI参照名(右)の対応です。Data Loaderのウィザード画面で保存すると自動生成されます。
実行設定ファイルを作る
samples/confフォルダにあるprocess-conf.xmlをコピーし、必要な値へ書き換えます。接続先・認証情報・使うファイルのパスをすべてここにまとめます。
<?xml version="1.0" encoding="UTF-8"?> <beans> <bean id="AccountInsertProcess" class="com.salesforce.dataloader.process.ProcessRunner" scope="prototype"> <property name="name" value="AccountInsertProcess"/> <property name="configOverrideMap"> <map> <entry key="sfdc.endpoint" value="https://xxxx.my.salesforce.com"/> <entry key="sfdc.username" value="xxxxxxxx"/> <entry key="sfdc.password" value="xxxxxxxx"/> <entry key="process.encryptionKeyFile" value="C:\dataloader\bin\dataLoader.key"/> <entry key="sfdc.entity" value="Account"/> <entry key="process.operation" value="insert"/> <entry key="process.mappingFile" value="C:\dataloader\bin\AccountInsertMap.sdl"/> <entry key="dataAccess.name" value="C:\Account.csv"/> <entry key="dataAccess.type" value="csvRead"/> <entry key="process.outputSuccess" value="C:\log\success.csv"/> <entry key="process.outputError" value="C:\log\error.csv"/> </map> </property> </bean> </beans>
process-conf.xmlの例です。sfdc.username・sfdc.passwordは実際の値に置き換えます。sfdc.passwordは暗号化済みの文字列を入れます。
AccountInsertProcess)は、実行時に指定する「プロセス名」です。process-conf.xmlの中に複数のbeanを並べておいて、実行時に名前で選ぶこともできます。process.batで実行する
process-conf.xmlの準備ができたら、コマンド一つで実行できます。
cd C:\dataloader\bin
process.bat "C:\dataloader\bin" AccountInsertProcessconfigdirにはprocess-conf.xmlがあるフォルダを、続けて実行したいbeanのidを渡します。
実行後は、process-conf.xmlで指定したprocess.outputSuccess・process.outputErrorのCSVに結果が書き出されます。成功件数とエラー件数はここで確認します。
Bulk APIを使う場合
Data Loaderは既定でSOAPベースのAPIを使いますが、件数が多い取り込みではBulk APIのほうが速く終わります。Data Loaderのウィザード画面の「設定」から「Use Bulk API」を有効にすると、以降の実行がBulk API経由になります。
⚠️ Bulk APIを有効にすると、レコードの扱いが一部変わります。未入力値の扱いや、項目の文字数がSalesforce側の上限を超えたときの挙動がSOAP版と異なります。コマンドラインでの自動実行に組み込む前に、少数件のテストで挙動を確かめてください。
ここで間違えやすい
| 間違い | 何が起きるか |
|---|---|
| JRE 17未満のままインストールする | Data Loaderが起動しない、または動作が不安定になります |
encrypt -eの出力ではなく平文パスワードをxmlに書く | 認証に失敗します |
| process-conf.xmlをテキストエディタ以外(一部のXMLエディタ)で編集する | 余分なタグが自動挿入され、取り込みが失敗することがあります |
process.batのconfigdirに、process-conf.xmlの無いフォルダを指定する | 設定ファイルが見つからずエラーになります |
確認した環境
- 2026年9月 / Salesforce Summer '26(APIバージョン67.0)時点の公式ドキュメントで、Java要件・暗号化コマンド・process-conf.xmlの設定項目を確認しています
- パスとバージョンは、ご自身の環境に置き換えてください
まとめ
- Data Loaderはコマンドラインからバッチ実行できます。暗号化キー・CSV・マッピングファイル・process-conf.xmlの4つを用意します
- 現在のData LoaderはJRE 17以上が必須です。JavaはWindows版のインストーラに同梱されなくなりました
- パスワードは
encrypt -eで暗号化した文字列をprocess-conf.xmlに書きます。平文は書きません - 実行は
process.bat <configdirのパス> <beanのid>の形です - 件数が多い取り込みはBulk APIの利用も検討してください。SOAP版とは項目の扱いが一部異なります
Salesforceの導入・運用についてご相談ください
導入前の検討から、お使いの環境の改修・運用、AIとの連携まで承ります。状況を伺ったうえで、進め方をご提案します。