この記事の目次
データローダバッチとは?

データローダとは?
その前にそもそも「データローダ」とは?という話が必要ですので解説します。 データローダとは、Salesforce社が公式で用意しているデータのインポート&エクスポートのためのツールです。 これを使用することで、Salesforceのデータを入出力できるようになります。 手動でSalesforceに取り込む、ということであればデータローダを使わなくても、Salesforceの機能として用意してあるデータインポートウィザードを使用すれば多くのオブジェクトはインポートが可能です。 しかし、自動でインポートを行う場合はデータローダを使って、正確には自動的にデータローダを動かしてデータをインポートする必要があります。データローダをバッチで動かす方法
データローダはWindowsではコマンドラインで動かすことが可能です。 通常はGUI画面で動かすのですが、その際も裏ではコマンドラインで動いているのがわかります。 このデータローダをコマンドラインからバッチモードで動かすことで、GUIの画面を介さずにデータローダを動かすことができます。 実際はセキュリティトークンを取得して使うなど、動かすためにそれなりの手続きはありますが、手順通りの設定ができればデータローダを動かすことができます。 運用する手順としては、まずインポートしたいデータファイルを所定のフォルダに入れていただき、Windowsのタスクスケジューラ機能で起動するように設定すると自動的に実行されます。 インポート用のファイルを1日の終わりの作業として所定のフォルダに格納する作業を20時に行うとして、起動時間を毎日23時にしておけば日付が変わるまでに外部データを連携できることになります。最も大事なのはマッピングファイル
ここまでの流れは、データローダに処理をさせるCSVファイルを所定のフォルダ内に置いておけば、Windowsのスケジューラー機能で自動実行するだけなのでさほど難しくはありません。 ここで難しいのはマッピング作業となります。 マッピング作業とは読み込むCSVファイルの列に対して、Salesforceのどの項目を当てるのかを指定する作業のことです。 Salesforceの項目のAPI名が英語なので、その英語で表記された項目に、読み込むファイルのどの列を関連付けるのかを設定し、そのマッピング情報を設定ファイルとして保存しておく必要があります。 データローダバッチはただファイルを読み込んで処理するだけではなく、マッピングをしたSDLファイル(拡張子:*.sdl)に基づいてインポート処理をしています。SDLファイルの作り方
上記で出てきたマッピングファイル(SDLファイル)は、データローダのGUIモードで作ることができます。 CSVファイルを読み込んで、データローダでインポートしようとすると、マッピングを手動で設定するか、SDLファイルを読み込むかを選択させられます。 このマッピングを手動で設定して、SDLファイルとして書き出すことができれば、データローダをバッチモードで動作させる時にこのSDLファイルを使うことが可能となります。データを読み込む際には順番にも注意する
データローダバッチを起動するにあたって、最後に注意をしたい点はファイルを読み込む際の「順番」です。 これがマスタデータをインポートするという場合は順番は問題がないのですが、トランザクションデータを入れる場合は、先にマスタデータをインポートしてから、外部IDを使用してトランザクションデータをインポートする必要があります。 若干難しく感じるかも知れませんが、取引先責任者や商談をインポートしようとする際は、先にリレーションする親の取引先のデータを入れてからにしましょうということです。 この順番を間違えると、取引先のない取引先責任者や商談をインポートさせようとするため、エラーが発生します。 従って、先にインポートするのは取引先で、その取引先には外部IDを入れておきましょう。 取引先責任者や商談は外部IDとして参照させる項目を持っておいて、それを取引先の外部IDとして参照させながらインポートを行います。データローダバッチを実現する他の方法

Java等のプログラム実行が良い点
基本的にはJavaプログラムのようなものは作らなくても、上記でご案内した方法を取れば自動的にインポートを実施する仕組みは設定できます。 しかし、Javaプログラムを使用することで、細かな処理を入れることができます。 たとえば基幹システムのデータに都道府県がコードでしか入っていない場合、それを都道府県に変換してSalesforceに入れるというのは、Salesforceだけでやろうとすると大変な作業になります。 また、項目のフォーマット変換を行ったり、特定条件のレコードをインポートから除外したりするようなことはプログラムに処理や判定ロジックを入れないと実行できません。 そのような場合にはJava等でプログラムを組む方が応用性があります。 また複数のCSVファイルを読み込む際も、どのファイルを先に読んで、次にこのファイルを読むといったようなこともプログラムで処理をしますので、自由度も高いです。プログラムの動き方は同じ
Windowsのスケジューラーでデータローダバッチを使用するのも、Javaプログラムなどを通じてデータローダバッチを使用するのもプログラムの動き方は同じです。 ①所定のフォルダからCSVファイルを読み込む ②マッピングを行う ③データローダバッチを起動する これを行うのに、プログラムの開発を必要とするかどうかが異なる点です。シンプルにできるなら前者が良いですし、細かく色々な処理を入れたいなら後者をお勧めします。外部データ連携はデータローダバッチで

この記事の監修者・著者

-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞