LoginSignup
3
2

More than 5 years have passed since last update.

Dataloaderでローカルファイルをアップロードする

Last updated at Posted at 2016-08-13

はじめに

Salesforceの運用を自動化するため、Force CLIツールでレコードの作成や更新を実装したが、ローカルファイルのアップロードを実装できなかった。いろいろ調べたところDataLoaderを使用して実装可能なことが分かりましたので、実装するまでの過程を紹介します。

必要なツール

  • Windows PC
    • CLIqはWindowsのみ対応。今回の検証環境はWindows10。
  • SFDCアカウント
    • 本番アカウント・開発アカウントのどちらでも◎。
  • DataLoader
    • 当初v36で試したがうまくいかず、v29で試したところあっさりクリア。
      過去バージョンはこちらからダウンロード可能→apex-data-loader-archive
  • CLIq
    • バッチファイルでDataLoaderを実行できるツール。
      こちらからダウンロード可能→dataloadercliq

前提知識

詳しい知識は不要だが各種ツールの基本的な使用方法などを把握していると尚良し。

  • SFDCの基本知識
    • オブジェクトの種類、必要項目の種類 ...etc
  • SOQLを使った基本的なクエリの実行
  • DataLoaderの基本的な利用方法

実装方法

それでは実装方法の説明です。
DataLoaderは上記アーカイブからv29をダウンロードしてインストールするのみ。
CLIqはZIPファイルをダウンロードし解凍後、DataLoaderのファイルが保存されているフォルダにCLIqのフォルダごとコピーします。

以下にようなフォルダ構成になっていればOK。(cliq_processはこの時点でなくてもOKです)
alt

ファイルの配置が完了したらcliqフォルダの中にあるcliqバッチファイルを実行します。
alt

バッチファイルを実行するとコマンドプロンプトが立ち上がり、CLIqの画面が表示されます。
ここで実行内容を設定することで、次回よりバッチファイルの実行だけで必要な処理が実行されます。
image

入力内容は以下の通り。

  • Insertを選択
  • Enter Process Name: 適当な名前を入力。(attachment_test..etc)
  • Username/password: セールスフォースのアカウント情報。
  • Entity Name: 今回は添付ファイルをアップロードするので「Attachment」と入力。
  • Create Data Loader CLI Filesを押下。
    • ここで「指定されたパスが見つかりません」と表示される場合は、フォルダへのアクセス権に問題がある可能性が高いです。
      ログインしているユーザに参照権限を付与して再度実行しましょう。

ここまで実行すると「cliq_process」フォルダが作成され、その中にProcess名のフォルダが作成されているはずです。

「read」フォルダ内に実行する処理内容を記述したCSVファイルを配置し、実行することでローカルファイルをアップロードすることができます。

ここで注意!!
DataLoaderでは処理内容を記述して、項目名をMappingし実行だけでOKですが、
CLIqのMappingは「Config」ファイル内のSDLファイルに記載する必要があります。
これを忘れるといくら実行してもファイルはアップロードされません。
※他サイトではあまり記載がなく、ハマリました。

ProcessName.sdl
PARENTID=ParentId
NAME=Name
CONTENTTYPE=ContentType
BODY=Body
OWNERID=OwnerId

あとはCSVファイルに以下項目を記述して、バッチファイルを実行するだけです。

  • ParentId: AccountのIdでOK
  • Name: ファイル名。(xxxxx.pdf ..etc)
  • ContentType: (application/pdf ..etc)
  • Body: ローカルファイルのフルパス。
  • OwnerId: ユーザID

以上が実装までの手順になります。
添付ファイルのアップロードに関してはあまり参考資料がないので、是非試して頂ければ幸いです!

SFDC運用の自動化について

Force CLIツールを使用してSOQLでクエリを実行し、「read」フォルダ内のファイルを自動作成または更新をかけることでタスクの自動化が可能。
これらの自動化はBizRobo!を使用することで実装可能。
BizRobo!によるタスク自動化
image



参考ページ
- Salesforce Developer - データエクスポートのファイルを利用して、添付ファイルをインポートするには?
- Terra Sky - DataLoaderを使いこなそう

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2