Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

Organization

Dataloader47.0バッチの作成手順について

はじめに

日々、Salesforceを開発または運用する中で、環境の情報を不定期に複数の環境で複数のオブジェクト対して、同じ問い合わせを実行したい場合があると思います。
そういった場合、ETLツールなどのツールが利用できない場合、候補に上がるのが公式に提供される無料ツール、DataLoaderバッチです。
ただし、利用するには暗号化やプロセス定義などCLIで実行しなければいけない手順があり、時々実行するには少々敷居が高いです。私も何回か作っていますが、バージョンによってオプションが違うので苦手意識がありました。
備忘録として、手順を説明したいと考えています。

事前準備

環境変数JAVA_HOMEの設定

Dataloaderは去年ごろか、OpenSDKの利用が必須になりました。
また、暗号化バッチ(encrypt.bat)は、内部で、JAVA_HOMEで参照しているので環境変数の設定が必要です。
設定は、[スタート] > [コントロールパネル] > [環境変数]ボタンを押下して設定してください。

JAVA_HOME = C:¥zule(※後ほど正確な格納さきを記載します。)

Dataloaserのバージョン

バージョン毎に暗号化バッチ(encrypt.bat)のオプションが違うので記載します。
作業を割り振る場合や自分でやる場合にもオプション部分が一番苦労します。
DataLoaderバージョン:47.0

作成手順

実行までの作業手順を記載します。

暗号化鍵の生成

パスワード暗号化する際に利用する暗号化鍵を生成します。
パスワードを複合化する際にも利用するので、binフォルダにまずは作成します。

公式ドキュメント:コマンドラインからの暗号化

encrypt -k dataloader.key #(鍵ファイル)

パスワードの暗号化

Salesforceにログインするパスワードを、生成した暗号化鍵で暗号化します。
実行すると暗号化された結果が画面に表示されますのでメモ帳などで書き留めます。
後ほど、プロセス設定ファイル(process-config.xml)に各プロセス毎に設定します。

encrypt.bat -e {sf.password} dataloader.key

プロセス定義

dataloaderのホームディレクトリには、バッチ用のサンプルプログラム(samlple)が格納されています。
定義(conf)のプロセス定義ファイル(process-config.xml)に登録、更新、削除、照会のプロセスが記述されていますので、ログインエンドポイント、sf.userIdとsf.passwordを変更することで動作を確認することができます。
公式ドキュメント:設定パラメータ

プロセス実行

デフォルトは、”../conf”に設定されています。dataフォルダで実行する場合は、confの設定を省略することも可能です。

公式ドキュメント:バッチモードでの実行:Salesforce開発者ドキュメント

process ../conf accountMasterProcess

注意事項

多くの場合、実際に運用するのは多くのエンドユーザです。
初期段階からパスワード変更や、バージョン管理、端末の格納先を設計する必要があります。
配布してから、場当たり的に設計するのはやめましょう!

最後に

いかがだったでしょうか、Dataloderバッチは身近になったでしょうか?
日々の作業では、他の作業もあることから情報を取得する作業はあまり時間をかけられません。
しっかりとデータ見せ方を考えるために、データ取得にはあまり時間をかけたくないものですね。
自分の負荷を下げるためにはいろいろ工夫していきましょう。では!!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
3
Help us understand the problem. What are the problem?