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

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

:::note alert
Windowsのコマンドプロンプトから暗号化キーを生成 (データローダ バージョン 45 以降の場合)
:::

### 1. データローダインストール

[データローダインストール手順](https://help.salesforce.com/s/articleView?id=sf.loader_install_windows.htm&type=5)

※環境変数の設定を注意しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1835427/079e23d5-1a31-0ba0-3c7e-e19bfc97c3a4.png)


### 2. データローダのパスワードを暗号化

##### 2-1. データローダのインストール場所へ移行
`cd　C:\Users\<Windows ユーザ名>\dataloader\<データローダバージョン>\bin`

##### 2-2. 暗号化キーファイルを生成
`encrypt.bat -k <path to key file> `
※コマンド中の path to key file は任意のディレクトリ、およびファイル名(拡張子は.keyとします)に置き換えます。path to key file の指定がない場合、 "C:\Users\<Windowsユーザ名>\.dataloader\dataLoader.key" として暗号化キーファイルが生成されます。


##### 2-3. 暗号化キーファイルが生成されたことを確認
 `Keyfile "C:\Users\<Windowsユーザ名>\.dataloader\dataLoader.key" was created!`
※このファイルは次のステップでパスワードを暗号化する際に使用します。 

##### 2-4.暗号化パスワードを作成
  `encrypt.bat -e password "C:\Users\<Windowsユーザ名>\.dataloader\dataLoader.key" `
※暗号化キーファイルを用いて、データローダのパスワードを**暗号化パスワード**に変換します。
+ password はデータローダが Salesforce にログインするために使用するパスワード+セキュリティトークン
+ filepath は ".key"を保存したディレクトリに置き換え、コマンドプロンプト上で実行します。 

:::note warn
**暗号化パスワード＝[Salesforce のログインパスワード]＋[セキュリティトークン]**
:::
 
※「セキュリティトークンのリセット」
(https://help.salesforce.com/s/articleView?id=sf.user_security_token.htm&type=5)



### 3. SDLファイルの作成
入力ファイルと Salesforce のオブジェクトとの項目の対応付けファイルを作成 

##### 3-1. 対応付けファイルを新規作成して、拡張子に .sdl を指定します。 
##### 3-2. 次の構文に従って対応づけファイルを作成します。 
 
データ挿入の列の対応付けの例
``` #Mapping.sdl
#Thu May 26 16:19:33 GMT 2011
Name=Name
NumberOfEmployees=NumberOfEmployees
Industry=Industry
```

### 4. データローダの設定ファイルの作成
データローダがデータを処理するための設定ファイルを作成 
##### 4-1. データローダのインストールディレクトリから [\samples\conf] ディレクトリから [process-conf.xml] ファイルをコピーします。 
##### 4-2. お客様のログイン情報、設定ファイル、処理に必要な各ファイルの情報を [process-conf.xml] に上書きします。 
 
<設定例> 
``` process-conf.xml
<entry key="sfdc.endpoint" value="https://login.salesforce.com"/> 
<entry key="sfdc.username" value="hogehoge@test"/> 
<entry key="sfdc.password" value="******暗号化パスワード*****"/> 
<entry key="process.encryptionKeyFile" value="C:\Users\<Windowsユーザ名>\.dataloader\dataLoader.key"/> //(データローダ バージョン 43 の場合)
<entry key="process.mappingFile" value="test.sdl"/> 
<entry key="dataAccess.name" value="test_data.csv"/> 
<entry key="sfdc.debugMessages" value="true"/> 
<entry key="sfdc.debugMessagesFile" value="testMap.sdl"/> 
<entry key="process.outputSuccess" value="C:\test\success.csv"/> 
<entry key="process.outputError" value="C:\test\error.csv"/> 
<entry key="dataAccess.type" value="databaseWrite"/> 
``` 

+ sfdc.endpoint : 組織の Salesforce の URL (https://login.salesforce.com など)
:::note warn
Salesforce 組織の URL 内[私のドメイン] を使用する
:::
+ sfdc.username : データローダがログインに使用するユーザ名 
+ sfdc.password : 暗号化パスワードの値 
+ process.encryptionKeyFile : 暗号化パスワードを作成する際に使用した暗号化キー、もしくは暗号化キーファイル
+ process.mappingFile : 対応付けファイルのパスとファイル名 
+ dataAccess.Name : インポートする取引先を含むデータファイルのパスとファイル名 
+ sfdc.debugMessages : トラブルシューティングの項。必要に応じて [true/false] を記載 
+ sfdc.debugMessagesFile : SOAP メッセージを保存するファイルのパスとファイル名 
+ process.outputSuccess : 成功ログファイルのパスとファイル名 
+ process.outputError : エラーログファイルのパスとファイル名 
+ dataAccess.type : ファイル種別と入出力タイプを入力 [例:csvRead、databaseWrite] コマンドラインのログファイル 



### 5. データをインポート
コマンドプロンプトウィンドウで、次のコマンドを入力します。
 `process.bat "[file path to process-conf.xml]" process name `

:::note warn
[file path to process-conf.xml]にprocess-conf.xmlを含まない、配置先のパスのみ
:::
file path to process-conf.xml を process-conf.xml を含むディレクトリのパスに置き換えます。
process name を process-conf.xml に指定されたプロセスに置き換えます。
コマンドは、次のようになります。

<実施コマンド例>
 `process.bat "C:\DLTest\Command Line\Config" accountInsert `

プロセスが実行されると、コマンドプロンプトウィンドウに成功とエラーのメッセージが表示されます。また、ログファイル (insertAccounts_success.csv と insertAccounts_error.csv) を確認できます。プロセスが正常に実行されると、insertAccounts_success.csv ファイルには、インポートしたレコードと各レコードの ID と状況が含まれます。状況ファイルについての詳細は、「データローダの出力ファイルの確認」を参照してください。

-----------------------
### 参考文献
https://help.salesforce.com/s/articleView?id=000386154&type=1
https://help.salesforce.com/s/articleView?id=sf.command_line_create_config_file.htm&type=5
https://help.salesforce.com/s/articleView?id=sf.user_security_token.htm&type=5
https://help.salesforce.com/s/articleView?id=sf.command_line_create_mapping_file.htm&type=5
https://help.salesforce.com/s/articleView?id=sf.importing.htm&type=5