DataLoaderバッチモードの設定方法

By | October 13, 2022

設定の流れ

  1. 事前準備
    • データローダのインストール
    • JREのインストール
    • 環境変数の設定
  2. バッチファイル設定用のディレクトリの作成
  3. 暗号化用の鍵ファイルの作成
  4. 暗号化パスワードの作成
  5. Mappingファイルの作成
  6. 設定ファイルの更新
  7. batファイルの直接実行(※テスト用)
  8. batファイルのタスクスケジューラによる実行

事前準備

◾️データローダとJREのインストール

こちらのドキュメントの案内に従い、それぞれインストール

◾️環境変数の設定

DataLoaderをバッチモードで動作させる場合、JAVA_HOMEシステム環境変数としてZulu OpenJDKのインストールディレクトリを指定する必要がある。

指定に際しては、パスに空白が含まれることによるbatファイル実行エラーを避けるため、「Programi Files」のディレクトリ指定をショートファイルネームによって行うことが望ましい。

Program Files → PROGRA~1
Program Files (x86) → PROGRA~2

◾️参考エラー

Files\Zulu\zulu-11 was unexpected at this time

バッチファイル設定用のディレクトリの作成

dataloaderのインストールディレクトリからsamplesフォルダをコピーし、それをベースにバッチファイル設定用のディレクトリを作成する。

dataloader_batch(※会社名の英数字を設定するとよい)
 └conf:マッピングファイル・設定ファイル
 └data:CSVファイル
 └key:暗号化用の鍵ファイル
 └log:実行ログ
 └result:データローダの実行結果

暗号化用の鍵ファイルの作成

データローダのbinディレクトリに移動し、以下を実行

cd C:\Users\regardie\dataloader\v55.0.1\bin
enctypt.bat -k C:\Users\regardie\dataloader_batch/key/dataLoader.key
//encrypt.bat -k [生成する鍵ファイルのパス]

暗号化パスワードの作成

データローダのbinディレクトリで引き続き、以下を実行

encrypt.bat -e testpassword "C:\Users\regardie\dataloader_batch/key/dataLoader.key"
//encrypt.bat -e [パスワードorセキュリティトークン] "[暗号化に利用する鍵ファイルのパス]"

Mappingファイルの作成

samples/confに格納されている各sdlファイルを参考に、Mappingファイルを仕上げる。

設定ファイルの更新

process-conf.xmlを適切な内容に変更する

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <bean id="opportunityUpsertProcess"
          class="com.salesforce.dataloader.process.ProcessRunner"
          scope="prototype">
        <description>Opportunity Upsert job gets the Customer record updates from a CSV file and uploads them to salesforce using 'upsert'.</description>
        <property name="name" value="opportunityUpsertProcess"/>
        <property name="configOverrideMap">
            <map>
                <entry key="sfdc.endpoint" value="https://login.salesforce.com"/>
                <entry key="sfdc.username" value="user@mycompany.com"/>
                <!-- password below has been encrypted using key file, therefore it will not work without the key setting: process.encryptionKeyFile
                the password is not a valid encrypted value, please generate the real value using encrypt.bat utility -->
                <entry key="sfdc.password" value="暗号化パスワード"/>
                <entry key="process.encryptionKeyFile" value="暗号化用の鍵ファイルのパス"/>
                <entry key="sfdc.timeoutSecs" value="600"/>
                <entry key="sfdc.loadBatchSize" value="200"/>
                <entry key="sfdc.externalIdField" value="外部キー項目のAPI参照名"/>
                <entry key="sfdc.entity" value="Opportunity"/>
                <entry key="process.operation" value="upsert"/>
                <entry key="process.mappingFile" value="Mappingファイルのパス"/>
                <entry key="dataAccess.name" value="CSVファイルのパス"/>
                <entry key="dataAccess.type" value="csvRead"/>
                <entry key="sfdc.debugMessages" value="true"/>
                <entry key="sfdc.debugMessagesFile" value="実行ログ"/>
                <entry key="process.outputSuccess" value="成功ログ"/>
                <entry key="process.outputError" value="失敗ログ"/>
            </map>
        </property>
    </bean>
</beans>

batファイルの直接実行(※テスト用)

cd C:\Users\regardie\dataloader\v55.0.1\bin
process.bat "C:\Users\regardie\dataloader_batch/conf" opportunityUpsertProcess
//process.bat "[process-conf.xmlのパス]" [process-conf.xmlで定義した実行プロセスの名前]

batファイルのタスクスケジューラによる実行

①タスクスケジューラの起動

②画面右側のCreate Basic Taskをクリックし、タスク名(任意)を記入

③実行の頻度・タイミングを設定

④実行内容の種別を決定(※デフォルトのStart a programを指定する)

⑤実行するスクリプトとしてprocess.batファイル、引数として[マッピングファイル・設定ファイルを格納したディレクトリのパス] [process-conf.xmlで定義した実行プロセスの名前]を指定(※要するに直接実行と同じ設定をすればよい)

⑥確認画面で問題がないか確認し、「Finish」をクリック

⑦スケジュールが登録されているかどうか、Task Scheduler Libraryから確認する

参考

データローダガイド – Windows でのデータローダのインストール

Salesforce Help – データローダをバッチモードで使用する際の設定手順