こんにちは!社内のSalesforceのシステム管理者をしているnakochiです。
今回はデータローダの活用方法についてわかりやすく説明していきます。
データローダって何?
いきなりデータローダ使ってみろっていわれた・・・
という方に、データローダでできることや、データローダの使い方を解説します。
データローダでできること
データローダを起動すると、このような画面が表示されます。
この画面にあるボタンを操作して機能を使うことができるのですが、まずはそれぞれのボタンの意味について解説します。
Insert:レコードの新規作成
Update:すでに登録されているデータをIDを指定して更新する
Upsert:Update+Insert。すでに登録されているデータのIDを指定して更新し、IDが登録されていないデータについては新しく作成する
Delete:IDを指定してデータを一括削除する
Export:オブジェクトを指定してデータを出力する(CSV形式)
Export All:アーカイブされたデータ(例ToDoオブジェクトで作成日から数年経過したレコードなど)を全て出力する
Insertの活用例
大量の新規の見込み顧客リストがあり、新しくデータをSalesforce に作成したいという場合はInsert を使用します。
Updateの活用例
すでに登録しているデータに対して、Salesforce ではなくてExcel やGoogle スプレッドシートなどで加工し、加工後のデータを一気にSalesforce でも更新したいというときにはUpdate を使用します。
Upsertの活用例
すでに登録しているデータを一括編集し、同時に、同じ管理項目の列で、新しいデータを一括で作成してSalesforce で更新と新規作成を同時に行いたい場合はUpsert を使用します。
※nakochiはあんまりUpsert を使用しません。
使用しない理由としては、大量のデータをInsert するときに、入力規則によってデータの登録がされないことがあります。Update の処理は、すでにSalesforce に登録されているデータは、Salesforce の内部にある入力規則を満たしているためエラーが出ることはあまりありません。Insert の対象となるデータは、入力規則を意識してExcel やGoogle スプレッドシートでデータ作成できているかが不明で、エラーが起こりやすいです。Insert したい行のデータでエラーが出ることと、Update したい行のデータでエラーが出ること、このエラーの出方の特徴が異なるため、新しくデータを作成するならInsert で、データを更新するならUpdate で、という風になこちは使い分けています。
Deleteの活用例
すでに登録しているSalesforce のデータで、必要がなくなったデータや、間違えて大量にInsert してしまったという場合に、IDを指定して削除します。Delete を行う際、Delete する前のデータのバックアップを必ず取るようにしましょう。Expert で、削除するデータの項目すべてを出力してファイルを保存するか、削除対象となるデータを抽出したレポートからファイルをダウンロードして、そのデータを残しておくことをオススメします。
※Update しようとしたつもりが、Delete ボタンを押してしまっていた、という経験はシステム管理者としてたくさんの方が通ってきた道だと思います。バックアップを絶対にしましょう。あなたの悲しい顔をみたくないです。
Exportの活用例
Export では、指定したオブジェクトの指定した項目のレコードを出力することができます。
※なこちはあまり使いません。
データローダで出力した項目は、項目名がすべてAPI参照名(英語の項目名)となっていて、出力後のファイルをみてもわけがわからいことがあります。Field_754__c なんて、ふざけたAPI参照名になっているカスタム項目はありませんか?この項目名で出力されても、なんのデータなのかわからないです。
そのためデータをExportしたいときには、Salesforce のレポートで、Export したいオブジェクトの、レコードID、必要な項目、を出力するように設定して保存しています。そしてレポートを出力します。こうすることで、Upsert やDelete の処理を行った後に出力用に作成したレポートを確認することで、正常にデータの処理を完了できたかを確認することができます。Export もレポートも、どっちも使いこなせるようになりましょう。
Export Allの活用例
例えばToDo のレコードは、作成日から数年経過するとアーカイブという状態になり、レポートの機能では表示できなくなってしまいます。Salesforce を長い期間にわたって契約している組織の、過去のToDoのデータから統計を取りたい、過去のToDoのデータはもう必要ないから、一括削除するためにToDoのデータのIDを出力したい、といった時に使用します。
※なこちはほとんど使いません。
データローダを使ってみよう
ここでは、データローダの基本的な使い方について解説します。サンプルデータを用意していますので、ぜひ同じように操作を体験してみてください。
Insert 取引先にレコードを一括登録
データローダでデータをInsert するためのデータを準備しましょう。準備するデータは、Salesforce でInsert したいオブジェクトの入力規則を満たしている必要があります。
ここでは、サンプルデータを用意していますので、もしご自身でデータを用意できない、自分でも操作してみたいという方は以下のURLからアクセスしてみてください。
※2020年1月時点で作成しています。別記事の作成などで、URLが無効となる可能性もあります。あらかじめご了承ください。
※@gmail.com 環境のGoogle ドライブにスプレッドシートで作成しています。もしアクセスできない方は、シークレットウインドウでGoogle アカウントにログインしていない状態でアクセスしていただき、ご自身のExcel やテキストエディタなどにコピーして貼り付け、CSV形式で保存してください。
サンプルデータにアクセスして、
ファイル>ダウンロード>カンマ区切り(CSV、現在のシート)をクリック
データローダを起動し、Insert ボタンをクリック
自分が使っているSalesforce 環境にログイン
※ログインできない場合は、契約している環境のSalesforce がAPIによるアクセスを許可していない、ログインアクセスの認証がされていない、といったことが考えられます。システム管理者に、「データローダ使ってみたいけどアクセスできない」と、相談してみましょう。
ユーザ名とパスワードを正しく入力し、「Log in」ボタンをクリックすると、
「Login Successful」が表示されますので、「Next」 をクリック
Insert などの処理を行いたいオブジェクトを探します。
ここでは、取引先オブジェクトに対して操作をしたいので、画面下の方にスクロールして、取引先をクリックします。
「Choose CSV file 」で、Insert を行うためのファイルを指定します。
「Browse…」をクリックして、ファイルを指定してください。
ここでは、上記のサンプルデータをダウンロードしたものを指定します。
ファイルを指定したら、「Next 」をクリック
データに問題がなければ、このように処理を行うデータの件数が表示されます。
ここで、「OK」をクリック
※エラーが出る場合、空白の列、空白の行が含まれていないか、などを確認してください。
すると、このような画面が表示され、
CSVのファイルのどの列を、指定したオブジェクトのどの項目と対応付けるか、を指定する画面が表示されます。
ここで、「Create or Edit aMap」をクリックします。
項目ひとつひとつを、ドラッグアンドドロップによって対応付けることもできますが、
「Auto-Match Fields to Columns」ボタンをクリックすると、CSVファイルの先頭行の項目名と、Salesforce の項目名が完全に一致している場合、
あるいはSalesforce のAPI参照名と完全に一致している場合に、対応付けが自動的に設定されます。
取引先名
町名・番地(請求先)
都道府県(請求先)
の項目名が完全に一致していたため、Salesforce の項目と自動的に対応付けされます。
ここでは、これ以上の項目を対応付けることはしませんので、このままOKを押してみましょう。
※ここから、データをInsert して作成した後に、Delete でInsert したデータを削除します。
Salesforce の本番環境でこの操作を体験するのは危ないので、見てるだけ、をオススメします。
対応付け画面で、「Next」をクリックすると、
処理の結果を記載したファイルをどこのフォルダ内に保存するか、を決めます。
「Browse…」をクリックして、デスクトップにでも設定しておきましょう。
「Finish」ボタンをクリックすると、警告のポップアップが表示されます。
ここの警告ポップアップでは
「あなたは新しいレコードをインサートするっていう操作を選んでいます。「はい」をクリックするとその処理を始めちゃいますよ?処理を始めていいですか?」
という質問になっています。
実行したい処理と、このメッセージが合っているなら「はい」をクリックします。
※ここで、Delete の操作と間違えてしまう人がたくさんいます。その悲しみを私はたくさん知っています。Delete の処理は、やりなおせなくて本当に悲しい思いをしますので、本当の本当に、注意してこの画面を見てください。疲れてるときとか、超危険ですので気をつけて。
はい、をクリックした直後にInsert の処理が始まり、処理が成功した件数、エラーとなった件数が表示されます。
※ここでは、エラーは0件。正常に登録できるようにデータを用意しています。
※デスクトップに保存場所を指定したので、「erroorhogehoge.csv」「successhogehoge.csv」のファイルがデスクトップに作成されています。
エラーがある場合、エラーのファイルにエラーの理由が表示されます。
「successhogehoge.csv」のファイルをExcel で開いてみると、
このようにデータがSaleforce に登録されたことがわかります。
Salesforce で作成されたデータを表示すると、
※今日作成された取引先、などのリストを作ると確認できますね
取引先のリストをみると、データローダでInsertした情報が登録されていることがわかります。
「successhogehoge.csv」の、IDの列に表示されている文字列が、Salesforce に作成されたレコードのIDとなり、このIDを指定することで、Update やDelete の処理を行うことができます。
Delete 取引先の指定したレコードを一括削除
取引先にサンプルデータを作成しましたが、このデータが登録する必要のないもので、誤って登録してしまったという場合を想定してみましょう。
Insert した直後に、Insert じゃなくてUpdate するべきデータだった!二重にデータを登録してしまった!ということは、本当はあってほしくはないのですが、けっこうよくあることです。
そんなとき、作成してしまった直後の「successhogehoge.csv」のデータのIDを使用してデータを削除すれば、削除対象のデータを特定して削除することが簡単にできます。
※削除の操作は、本当に危険なので、体験されたい方は自己責任でお願いします。
一回削除してしまったら最後、削除後にバックアップはできません。
データローダからSalesforce にログインしている状態で、
「Delete 」ボタンをクリックします。
削除したいデータがあるオブジェクトをクリックし、
削除したいレコードIDが入力されているCSVファイルを指定します。
※ここでは、先ほどの操作で生成された、「successhogehoge.csv」を指定します。
ファイルを指定すると、このように「100件のレコードがありますよ」と表示されますので、OKをクリック
Delete の際も、CSVファイルに含まれる先頭行の項目名が表示されますが、Delete で必要となる項目の対応付けは「ID」だけとなります。
削除したいオブジェクトのレコードのIDさえ指定できれば、その他の項目は上書きをするわけではないので不要です。
「Auto-Match Fields to Columns」から、ID項目を対応付けましょう。
対応が完了したら「OK」をクリックして、「Next」をクリックして、
どこに処理の結果のファイルを保存するかを指定したら
「Finish」ボタンをクリックします。
すると、いまだに私も慣れない警告画面、
「貴殿は既存レコードの消去を選択しておいでだ。はい をクリックすることで処理を開始するのだが、本当に間違いはないのだな?始めていいの?」
と、いう内容のメッセージが表示されます。
本当に削除をしたい、Update ではなく、Delete をしたい、と自信を持って言えるときに、「はい」をクリックしましょう。
すると、さらに怖いメッセージが現れます。
本当に危険なアクションであることがわかりますね。
「警告
あなたののゴミ箱にはレコード数に制限がある。
あなたが実行しようとしている処理は、あなたの組織のごみ箱に存在しているデータに
回復不可能なデータの損失を与えるかも知れません。
本当に、本当に処理を継続しますか?」
というメッセージを表示します。
データローダからDelete したデータはゴミ箱に残りませんが、すでにゴミ箱に存在しているデータももしかしたら完全に削除されるかもしれない、という可能性があることを示しています。
Delete は本当に怖いので、慎重にしましょう。
はいを押すと、データは消去されます。
IDだけを指定するので、消去のためのデータの用意自体は簡単にできます。
Insert したデータに間違いがあったときにはDelete か、修正ができるならUpdate による一括編集ができます。
データを削除すると、Insert 後に表示されていたデータは表示されなくなり、ごみ箱にも存在せず完全に削除されます。
まとめ
この記事では、データローダの操作をとりあえず体験し、どのような機能があるのかを理解するために操作手順を解説しました。
Insert だけでなく、すでに存在しているレコードのIDや更新したい項目を指定してデータを出力して、Update を行うことで一括編集をすることもできます。
繰り返しになりますが、データローダの各機能は以下のようになっています。
Insert:レコードの新規作成
Update:すでに登録されているデータをIDを指定して更新する
Upsert:Update+Insert。すでに登録されているデータのIDを指定して更新し、IDが登録されていないデータについては新しく作成する
Delete:IDを指定してデータを一括削除する
Export:オブジェクトを指定してデータを出力する(CSV形式)
Export All:アーカイブされたデータ(例ToDoオブジェクトで作成日から数年経過したレコードなど)を全て出力する
Salesforce を導入したばかりや、これから導入しようとしている企業で、どのように活用したらいいのか、データの移行に悩んでいる、などありましたら、ぜひお問い合わせフォームからご相談ください。
対応内容や稼働時間などご相談のうえ、お見積もりを作成いたします。