Windows のシステム要件
データローダは Windows で署名されています。Windows 用のデータローダを使用するためのシステム要件は、次のとおりです。
Microsoft® Windows® 10 (64 ビット、Intel x86 版)
120 MB のハードディスクの空き容量
256 MB の空きメモリ
Windows 用の Java Runtime Environment (JRE) バージョン 11 以降 (Zulu OpenJDK バージョン 11 以降など)
v52.0.0
の情報です{{...}}
は適宜読み替えてくださいJAVA_HOME
を設定Download Azul Zulu Builds of OpenJDKからZule OpenJDK 11をダウンロードします。
※ データローダはOracleのJDKではなくZulu OpenJDK 11を使用します(2021-10-07時点)。
C:\Program Files\Zulu\zulu-11\
にインストールした前提で勧めます。
システムのプロパティ
を表示するにはWindows + r
に以下を入力する。
sysdm.cpl
新規
より変数名JAVA_HOME
を追加します。
JAVA_HOME
C:\Program Files\Zulu\zulu-11\
)Salesforce管理画面からインストールしてください。
本ドキュメントではC:\Uesr\my-user\dataloader\v52.0.0
にインストールした前提で進めます。
データローダをダウンロードしたディレクトリにsample
があるので、それをコピーして作成。
C:\Users\my-user.dataloaderに以下を作成。
.dataloader
|
|-- conf
|
|-- accountMap.sdl
|
|-- process-conf.xml
|
|-- data
|
|-- log
|
|-- status
|
|-- dataLoader.key <-- 「データローダ用暗号化パスワード生成」で作成される
基本的にはマップファイルxxxMap.sdl
とprocess-conf.xml
を作成する。
process-conf.xml
などにバッチ処理の設定内容を記載データローダ用暗号化パスワードには以下情報が必要です。
データローダ用暗号化パスワード生成は2つのステップが必要です。
$ cd C:\Uesr\my-user\dataloader\v52.0.0\bin
$ encrypt -k
# デフォルトでは以下フォルダにdataloader.keyが作成されます。
C:\Uesr\my-user\.dataloader\dataLoader.key
Step1でC:\Uesr\my-user\.dataloader\dataLoader.key
を作成済みとします。
$ cd C:\Uesr\my-user\dataloader\v52.0.0\bin
$ encrypt -e {{pass}}{{security token}} C:\Uesr\my-user\.dataloader\dataLoader.key
# 暗号化パスワード表示
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
↑で生成された暗号化パスワードは process-conf.xml
の中で使用します。
https://help.salesforce.com/s/articleView?id=sf.command_line_create_config_file.htm&type=5
C:\Uesr\my-user\dataloader\v52.0.0\bin\process.bat
process-conf.xml
にバッチ処理の内容を記載以下の形式でバッチ処理を実行する。
$ process.bat "{{/path/to/conf dirctory}}" {{process name}}
{{process name}}
はprocess-conf.xml
に記載したプロセスです。
ref. https://help.salesforce.com/articleView?id=command_line_intro.htm&type=5
具体例)
$ cd C:\Uesr\my-user\dataloader\v52.0.0\bin
$ process.bat "C:\Users\.dataloader\conf" accountInsert
※ process-conf.xml
をC:\Users\.dataloader\conf
に作成している前提です。
Windowsタスクスケジューラ
を使用する。タスクスケジューラ
を表示するにはWindows + r
に以下を入力する。
taskschd.msc
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="accountInsert"
class="com.salesforce.dataloader.process.ProcessRunner"
scope="prototype">
<description>accountInsert job gets the account record from the CSV file
and inserts it into Salesforce.</description>
<property name="name" value="accountInsert"/>
<property name="configOverrideMap">
<map>
<entry key="sfdc.debugMessages" value="true"/>
<entry key="sfdc.debugMessagesFile"
value="C:\DLTest\Log\account InsertSoapTrace.log"/>
<entry key="sfdc.endpoint" value="https://login.salesforce.com"/>
<entry key="sfdc.username" value="dataloader@eampleco.jp"/>
<!--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 the encrypt.bat utility -->
<entry key="sfdc.password" value="暗号化パスワード"/>
<entry key="process.encryptionKeyFile"
value="C:\Users\my-user\.dataloader\dataLoader.key"/>
<entry key="sfdc.timeoutSecs" value="600"/>
<entry key="sfdc.loadBatchSize" value="50"/>
<entry key="sfdc.entity" value="Account"/>
<entry key="process.operation" value="insert"/>
<entry key="process.mappingFile"
value="C:\Users\my-user\.dataloader\conf\accountInsertMap.sdl"/>
<entry key="dataAccess.name"
value="C:\Users\my-user\.dataloader\data\insertAccounts.csv"/>
<entry key="process.outputSuccess"
value="C:\Users\my-user\.dataloader\log\accountInsert_success.csv"/>
<entry key="process.outputError"
value="C:\Users\my-user\.dataloader\log\accountInsert_error.csv"/>
<entry key="dataAccess.type" value="csvRead"/>
<entry key="process.initialLastRunDate"
value="2005-12-01T00:00:00.000-0800"/>
</map>
</property>
</bean>
</beans>
#Mapping values
#Thu May 26 16:19:33 GMT 2011
Name=Name
NumberOfEmployees=NumberOfEmployees
Industry=Industry
バッチサイズ (Batch size) 一度の挿入、更新、更新/挿入、削除操作で Salesforce に対して入出力されるレコードは、このオプションで指定したサイズで増分されます。最大 200 レコードです。50 から 100 までの値をお勧めします。 [Bulk API を使用] オプションがオンの場合、最大値は 10,000 です。
https://help.salesforce.com/s/articleView?id=sf.configuring_the_data_loader.htm&type=5
Bulk API を使用 このオプションを選択すると、Bulk API を使用して、レコードの挿入、更新、更新/挿入、削除、および物理削除が行われます。Bulk API は、多数のレコードを非同期で読み込みまたは削除するように最適化されます。並列処理を行い、ネットワーク往復数を少なくすることで、デフォルトの SOAP ベースの API よりも高速に動作します。 警告 データローダで [Use Bulk API (Bulk API を使用)] をオンにすると、レコードを物理削除できます。物理削除されたレコードはただちに削除され、ごみ箱から復元することはできません。
一括 API に対して順次モードを有効にする Bulk API に並列処理ではなく順次処理を使用する場合、このオプションを選択します。並列処理を行うと、データベースの競合が生じる可能性があります。競合が激しいと、読み込みに失敗する可能性があります。順次モードでは、バッチが 1 つずつ処理されますが、読み込みの処理時間が長くなる可能性があります。 [Bulk API を使用] オプションがオンの場合、このオプションだけを使用できます。
Bulk APIを有効にしても順次モードを適用することができる
[一括 API に対して順次モードを有効にする] オプションをオンにすることもできます。並列処理を行うと、データベースの競合が生じる可能性があります。競合が激しいと、読み込みに失敗する可能性があります。順次モードでは、バッチが 1 つずつ処理されますが、読み込みの処理時間が長くなる可能性があります。 注意: データローダで [Use Bulk API (Bulk API を使用)] をオンにすると、レコードを物理削除できます。物理削除されたレコードはただちに削除され、ごみ箱から復元することはできません。
https://help.salesforce.com/s/articleView?id=sf.loader_params.htm&type=5
rem バッチファイルのコメントはremコマンドを使います
@echo off
rem %0はバッチファイル名が渡されます
rem sample.bat a b c
rem %0 => sample.bat
rem %1 => a
rem %2 => b
rem %3 => c
rem リダイレクト >> によってファイルに追記
echo %0 >> log.txt
echo %1 >> log.txt
echo %2 >> log.txt
echo %3 >> log.txt
> cd /path/to/project
> ./sample.bat a b c
ref.
v45からはJavaがZulu 11が必須となった。しかしZulu 11は64ビットしか対応していない。 そのために32ビット機で動かすためにGitHubからダウンロード。
Java8をインストールしたら自動で環境変数JAVA_HOME
が追加されてPATH
にJDKのパスが追記された。
C:\Program Files\Java\jre1.8.0_271
C:\Program Files\Java\jre1.8.0_271\bin
を先頭に追加C:\Program Files\Common Files\Oracle\Java\javapath;
を末尾に移動JavaのPATHへの追加は下記を参照。
http://ooltcloud.sakura.ne.jp/blog/201802/article_09182611.html
https://teratail.com/questions/35801
https://web.plus-idea.net/2017/04/java_home-swich-jdk/
$ C:\Users\{{{username}}\AppData\Local\salesforce.com\Data Loader\bin