はじめに
初めまして、「MuleSoft Advent Calendar 2019」に参加させていただきます。川口です。現在、「MuleSoft Certified Developer Level1 [Mule4]」を取得しようと頑張ってますが、プロジェクトワークが忙しくwebassessorに登録している試験日を6回のリスケジュールしています。なかなか暇にならないですね。(笑)
今回は、「dataloader.io」について書きたいと思います。「あれっ!?」と思う方いらっしゃると思いますが、dataloader.ioはMuleSoftを使って構築したアプリケーションということを知り、テーマに選びました。開発に関係ないテーマで申し訳ございません。最初、知ったときはもう少し開発に近い機能だと思ってました。。。
さて、「dataloader.io」をご存知ですか?、私は知ったのは最近です。データローダーをダウンロードしようと、クイック検索したところこの機能のことを知りました。
去年のSalesforce Winter '19 リリースノートで[設定]画面で[インテグレーション]というカテゴリが作成され「dataloader.io」というメニューに加わりました。
Salesforceのメニューに加わってから、時間は経ってしまっているのですが、SalesforceのヘルプでSalesforceへデータをインポートをする方法の一つとして紹介されているので、お客様に紹介できるように機能の特徴やメリット、考慮事項等説明していきます。
dataloader.ioとは
dataloader.ioの公式ガイドLearn dataloader.io in under 20 min!で、dataloader.ioは、MuleSoftを使ったクラウドサービスです。
操作は簡単で、ウィザード形式に画面に従って操作することで簡単にデータのエクスポート、インポート、デリートが出来るサービスだと紹介されています。データローダという名前の通りですね。
また、このサービスの特徴は以下の通りです。
- タスク登録 - GUIからタスクを登録し、ルックアップで属性項目を指定して自レコードの登録、参照項目の設定ができます。
- 外部ストレージサービスの利用 - FTPやDropbox、データベースを選択することができます。ファイルのデータフォーマットはCSV(UTF-8)のみサポートされています。データの投入方法は、直接アップロードする方法とストレージサービスから読み込む方法があります。
- スケジュール機能 - 毎時(有償)、日次、週次(有償)、月次(有償)で実行をスケジュールリングできます。
- 通知 - 処理結果のメール通知ができます。
いつからサービスが提供されたか
Salesforceのメニューとして加わったのは去年の12月ですが、AppExchangeでは、2012年からdataloader.io)のサービスが提供されています。インテグレーションサービスとして高い評価がついています。
SalesforceのHelpでデータをインポートするオプションとして紹介
データをインポートする方法の選択では、データをSalesforceにインポートするオプションとして紹介されています。その表では、Salesforceのエディションにほぼ全て扱えることや、Salesforceのレコード件数の制約がないこと(dataloader.ioはエディションの制約あり)、対象のオブジェウトの制約がないことが説明されていました。
私が考えるお勧めできるポイント
実際にdataloader.ioを利用した感想は、デスクトップアプリケーションのデータローダ(以下データローダ)をリッチにしたサービスだと感じました。
データローダは、運用や開発の現場で広く利用されおり、Salesforceのデータを扱う場合に、まず利用される身近なツールです。
ただ、Salesforceのデータを運用作業で外部で利用する機会が増えてくると、画面操作だけでは対応できなくなってきます。複数のオブジェクトに対して継続的に同じ操作する場合、バッチ化やスケジュール実行を考えます。データローダにはバッチ実行機能がついているのですが、運用担当者が構築するにはパスワード暗号化やXML編集、Dosコマンドの知識が必要ですし、配布後のメンテナンスを考えると色々考えなければいけないことが増え運用が難しくなります。
dataloader.ioはそのような機能が、画面で簡単に設定できるので、日本語対応ができたら、お客様にぜひお勧めしたいサービスですね。
考慮事項
1. データをSalesforceにインポートする際に、日本語のヘッダーや値が含まれるとエラーが発生する。
3. dataloader.ioのエディション毎に制約があります。
dataloader.ioのエディションには、Free、Professional、Enterpriseの3つがあり、価格表に各エディション毎に制限があります。
気になる違いは以下の通りです。
- 月単位でインポートやエクスポート、デリートで処理できる累積レコード件数
- アップロードできるファイル最大サイズ
- スケジュールできるタスク数
- Salesforce接続数
- タスクの保持期間
- Email通知
- サポート
考慮点は以上です。
実際に試してみましょう!
今回は、基本機能のエクスポート、インポート、デリートを実行します。
ログイン
まずは、dataloader.ioにログインします。
1) Salesforceの[設定] > [Dataloader.io]クイック検索
2) [dataloader.io]画面の[dataloader.io]ボタンを押下
3) サードパーティーのdataloader.ioのページが表示されます。
4) 右上の[Login with Salesforce]ボタンを押下します。
5) カスタムドメインや接続環境(本番またはサンドボックス)を設定して[Login]ボタンを押下。
※dataloaser.ioのログインはOAuth認証でログインします。
※パスワードをdataloader.ioに入力することはありません。
6) 接続先のSalesforceログインが完了するとOAuth接続の認可の画面が表示されます。
7) OAuthの範囲を確認し[はい]ボタンを押下します。
8) dataloader.ioのホーム画面が表示されます。
以上でログインができました。
エクスポート
次に既存のSalesforceデータをエクスポートします。
1. タスクの登録
1) ヘッダーメニューの[NEW TASK]をクリックし、プルダウン[EXPORT]を選択します。
2) [Export]のウィザード形式のポップアップが表示されます。
3) 接続先の[Connection]を確認します。
4) Objectで対象のオブジェクトを選択します。キーワード検索やフィルター機能がついています。
5) [Fields]一覧に対象オブジェクトと参照先オブジェクトの項目が一覧で表示されています。
6) [Fields]一覧から項目をチェックします。キーワード検索が利用できます。
7) [Filter]や[Order by]を任意で設定できます。
8) 設定がリアルタイムに[SOQL Query]に反映されます。インポートの日本語対応が未対応だと考えられるため、このSOQLを変更するとCSVのヘッダーが表示ラベルからAPI名に変更されます。
9) [Summay]画面が表示されます。
10) タスクの名前を設定します。日本語は文字化けするので英語名で設定します。また、この名前はエクスポートするファイルの名前に使われます。
11) [Schedule Task]を[none]からHourly(有償版)、Daily、Weekly(有償版)、Monthly(有償版)を選択するとタスクのスケジュール登録ができます。Free版は、スケジュールタスクは1つのみ登録可能です。
12) 実行結果の通知先にメールアドレスを設定する。Free版は1つのみ設定可能です。
ちなみに、Free版で[Schedule Task]を[Daily]以外を選択すると下記のワーニングポップアップが表示されます。
13) [Date Format]を設定します。ここではインポートを考慮して[MM/DD/YYYY]を設定します。
14) オンラインストレージサービスを設定します。GoogleなどのOpenIDで認証できます。
15) Dropboxにログインします。
16) dataloader.ioのアクセスを認可します。
17) タスク一覧が表示され、登録したタスクが確認できます。
エクスポートの設定は以上です。
2. 出力確認
1) タスク完了通知が、送信元”notifications@dataloader.io”から通知されます。
2) 直接結果ファイルが、[32 successes]のリンクをクリックするとダウンロードできます。
3) オンライストレージサービスにファイルが格納されていることを確認できます。
4) 履歴は、タスク一覧でタスクをクリックすると右側に表示されます。
デリート
Salesforceのデータを削除します。
1. タスク登録
1) ヘッダーメニューの[NEW TASK]をクリックし、[DELETE]メニューを選択する。
2) 削除対象のSalesforce接続を確認し対象オブジェクトを選択する。
3) 削除元データを選択する。
4) 削除レコードのキー項目を設定する。SFIDの項目を設定します。
SFID項目意外を選択すると、ワーニングが表示されます。
5) [Summay]セクションの[Name]にタスク名を設定する。
削除タスクの登録手順は以上です。
2. 結果確認
1) タスク一覧でタスクの結果を確認できます。
2) Dropboxを自分のPCとシンクすると結果ファイルがローカルで確認できます。
3) 結果確認できます。
インポート
Salesforceのデータをインポートします。
今回の説明では、Insertだけ紹介します。InsertやUpsert、Updateはデータローダと基本的に同じです。
dataloader.ioの特徴として、外部IDで登録や参照先設定をする意外に、ルックアップで属性項目を指定し設定することが可能です。
1. タスク登録
1) ヘッダーメニューの[NEW TASK]をクリックし、プルダウンメニュー[IMPORT]ボタンを選択する。
2) インポート先のSalesforce接続を確認する。
3) インポートの[Operation]項目は、[Insert]、[Upsert]、[Update]から選択します。
4) インポートの対象オブジェクトを選択します。
5) インポートデータの投入方法を選択します。ここでは、Dropboxを選択します。一度Dropboxの接続設定をすると接続情報はインポートでも利用できます。
6) 各項目はクリックしてポップアップの中から項目を選択して設定します。
7) 参照先IDをルックアップで参照先の名前を指定して設定します。また、複数検索が該当した場合の振る舞いを選択することができる。
2. 結果確認
2) Dropboxでインポート結果のCSVが作成され、各レコード毎の登録ステータスを確認できます。
利用状態の確認
dataloader.ioでは、エディション毎に制約があります。[Subscription]画面で利用状況を確認します。
1) アバターをクリックするとプルダウンメニュー[Settings]を選択する。
2) [Settings]画面の[Subscription]タブを選択すると利用状態を確認できます。
3) 同じ組織の別ユーザでログインした場合、利用状態は別でカウントされることを確認できました。
最後に
いかがだったでしょうか?
冒頭でも説明した通り、実際にdataloader.ioを利用した感想は、デスクトップアプリケーションのデータローダをリッチにしたサービスだと感じました。
dataloader.ioが日本語対応できたら、Salesforceのデータを操作するオプションの一つとしてぜひ、お勧めしたいですね。では!