はじめに
Salesforceの運用を自動化するため、Force CLIツールでレコードの作成や更新を実装したが、ローカルファイルのアップロードを実装できなかった。いろいろ調べたところDataLoaderを使用して実装可能なことが分かりましたので、実装するまでの過程を紹介します。
必要なツール
- Windows PC
- CLIqはWindowsのみ対応。今回の検証環境はWindows10。
- SFDCアカウント
- 本番アカウント・開発アカウントのどちらでも◎。
- DataLoader
- 当初v36で試したがうまくいかず、v29で試したところあっさりクリア。
過去バージョンはこちらからダウンロード可能→apex-data-loader-archive
- 当初v36で試したがうまくいかず、v29で試したところあっさりクリア。
- CLIq
- バッチファイルでDataLoaderを実行できるツール。
こちらからダウンロード可能→dataloadercliq
- バッチファイルでDataLoaderを実行できるツール。
前提知識
詳しい知識は不要だが各種ツールの基本的な使用方法などを把握していると尚良し。
- SFDCの基本知識
- オブジェクトの種類、必要項目の種類 ...etc
- SOQLを使った基本的なクエリの実行
- DataLoaderの基本的な利用方法
実装方法
それでは実装方法の説明です。
DataLoaderは上記アーカイブからv29をダウンロードしてインストールするのみ。
CLIqはZIPファイルをダウンロードし解凍後、DataLoaderのファイルが保存されているフォルダにCLIqのフォルダごとコピーします。
以下にようなフォルダ構成になっていればOK。(cliq_processはこの時点でなくてもOKです)
ファイルの配置が完了したらcliqフォルダの中にあるcliqバッチファイルを実行します。
バッチファイルを実行するとコマンドプロンプトが立ち上がり、CLIqの画面が表示されます。
ここで実行内容を設定することで、次回よりバッチファイルの実行だけで必要な処理が実行されます。
入力内容は以下の通り。
- 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ファイルに記載する必要があります。
これを忘れるといくら実行してもファイルはアップロードされません。
※他サイトではあまり記載がなく、ハマリました。
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!によるタスク自動化
参考ページ