Salesforce初心者のためのデータローダの使い方
Salesforce初心者のためのデータローダの使い方
みなさんこんにちは、PhoneAppliの堀です。
今回はSalesforceを利用する上で使えると便利なデータローダについて、データローダを使い始めた頃の感覚を思い出しつつ、Salesforceの復習も兼ねてご紹介していきます。
こんな方に読んでほしい!
・「オブジェクト?項目?なにそれ?」なSalesforce初心者の方
・突然Salesforceを導入することが決まり、勉強する暇もなく管理者に抜擢され困っている情報システム担当の方
・OJT期間中に突然データローダを使った検証を頼まれ、戸惑っている方
目次
1.データローダとは
Salesforceのヘルプサイトより引用します。
データローダは、データを一括でインポートまたはエクスポートするためのクライアントアプリケーションです。
Salesforce レコードの挿入、更新、削除、またはエクスポートに使用します。
搭載している機能はシンプルで、名前通りなアプリケーションです。
GUIで操作できるアプリケーションなので(Windows限定でCLIでの操作も可能)それほど特別な知識も必要ないです。
ただ、データローダの表示言語が英語だったり、Salesforce特有のオブジェクトや項目といった表現があり、少しとっつきにくい印象があります。
今回はデータローダを利用するにあたって必要な前提知識や実践的な利用方法も交えながらご紹介していきます。
2.前提知識として
ここでは、前提知識としてSalesforceに絡むデータを扱う上で重要な概念である「オブジェクト」「レコード」「項目」について解説していきます。
・オブジェクトとは
オブジェクトとは、情報を入れるための大きな箱のようなものです
Salesforceには取引先オブジェクトというものがありますが、その中には取引先レコードやそれを構成する取引先名や住所、電話番号といった 多くの情報が格納されており、それらによって取引先オブジェクトは構成されています。
それらの情報が入った大きな箱をオブジェクトと呼んでいます。
また、Salesforce上には「標準オブジェクト」と「カスタムオブジェクト」の2種類のオブジェクトが存在します。
標準オブジェクトは、Salesforceにデフォルトで存在するオブジェクトです(例:取引先、商談オブジェクト等)
カスタムオブジェクトは、Salesforceにデフォルトで存在しないオブジェクトで、ユーザが要件に応じて作成したり、 SalesforceのアプリケーションであるAppexchangeをインストールした時に作成されるオブジェクトです (例:プロジェクトを管理するために独自に作成したプロジェクトオブジェクト、 弊社のPhoneAppli for Salesforceをインストールした時に作成される社外連絡先オブジェクト等)
・レコードとは
レコードとは、オブジェクトを構成する1件のデータ群のことを指します。
レコードは複数の項目によって構成されています。
取引先オブジェクトで言えば株式会社A等のことを指し、株式会社Aは取引先名や電話番号等の複数の項目で構成されています。
取引先オブジェクトの中に株式会社A、B、Cと存在している場合、3件のレコードが存在すると捉えます。
・項目とは
項目とは、オブジェクトの中にあるレコードを構成するひとつひとつの小さな情報を指します(株式会社Aレコードの取引先名項目や電話番号項目等)
こちらもオブジェクトと同じく標準項目とカスタム項目の二つが存在します。
また、項目には様々なデータ型があり、自動採番、数式、外部IDのデータ型の項目は、読み取り専用項目で、データローダでの挿入や更新を行うことはできません。
3.データローダの機能
・Insert→データの登録
・Update→既存データの更新
・Upsert→データの登録と既存データの更新
・Delete→データの削除
・Hard Delete→データの完全削除(復元不可)。デフォルトではボタンが非活性になっているので利用したい場合はこちらのヘルプの方法で利用可能な状態にしてください。
https://help.salesforce.com/articleView?id=000334785&language=ja&type=1&mode=1
・Export→データの出力
・Export All→データの全出力
4.使用するための準備と基本的な使い方
今回は基本的な使い方として弊社の製品であるPhoneAppli for Salesforceで取り込んだ社外連絡先オブジェクトの中にあるtestというレコードの備考項目のデータを更新してみます。
1.データローダのインストール
基本的なインストール方法は公式より。WindowsでもMacでも使用できます。
https://help.salesforce.com/articleView?id=000317204&language=ja&type=1&mode=1
2.ログインからupsert完了まで
①データローダを起動し、insert等のボタンを押下することで、ログイン画面に遷移できます(ここではupsertを選択しています)
②Password Authenticationのラジオボタンを選択し、Username、Password、必要があればSalesforce Login URL(sandboxの場合URLの入力が必要です)を入力し、Loginボタンを押下することでログイン可能です。
この時UsernameとPasswordが合っているのにログインできない場合があります。
※IPアドレス制限が開放されていない場合など、詳しくは「『ログイン履歴に API セキュリティトークンが必要です』の表示が出る場合の対処方法」もご覧ください。
その場合は、パスワードの末尾にセキュリティトークンを追記していただくことでログインが可能になります。セキュリティトークンの取得方法は下記です。
https://help.salesforce.com/articleView?id=user_security_token.htm&type=5
ログイン後、Nextを押下してください。
③オブジェクト一覧から社外連絡先オブジェクトを選択し、Browseボタンを押下しupsertに使用するCSVファイルを選択します。
選択後、Nextを押下し、次に表示される画面ではOKを押下してください。
今回使用したCSVファイルの中は下記画像のようになっています。
各列の1行目は社外連絡先オブジェクトに存在する項目のAPI参照名になっています。API参照名は設定>オブジェクトマネージャ>任意のオブジェクトを選択>項目とリレーションから参照したり、データローダより任意のオブジェクトの項目をExportすることで参照できます。
IDはそのレコードが持つ一意のIDになっており、下記画像のようにレコード詳細ページのURLから参照したり、大量のレコードのIDを知りたい場合はデータローダで対象のオブジェクトのID項目をExportすることで参照することができます。
普段の業務の中では、対象のオブジェクトの項目をExport→Exportしたファイルを編集→upsertのような流れで行なっています。
④リストより、データのマッチングに使用する項目を選択します。今回はIdを選択し、Nextを押下してください。
⑤Create or Edit a Mapボタンを押下し、遷移先の画面でAuto-Match Fields to Columnを押下し、CSVファイルのヘッダーと項目をマッピングし、OKを押下します。
この時、自動でマッピングされない場合がありますが、項目をドラッグ&ドロップすることで手動でマッピングすることも可能です。
マッピングがややこしい場合は今回のように更新に必要な最小限の項目のみCSVファイルに記載することをお勧めします。
マッピングが完了し次第、Nextを押下してください。
⑥エラーファイルの保存先をBrowseボタンより選択し、Finishボタンを押下し、OKを押下することでupsert完了です。
testレコードを見てみましょう!
備考項目が更新され、値が入力されています。
今回はわかりやすくするために1つのレコードの1つの項目を更新しましたが、たくさんのレコード、項目を更新することが可能です。
ぜひ応用して、Salesforceをより便利にご活用ください!
5.実践的な使い方
今回は実践的な使い方として、過去に弊社で作成したマニュアルを交えながら便利な機能をご紹介したいと思います。
1.項目の値を使用して絞り込み
下記マニュアルの2ページ目で、Export時にExportしたいレコードを項目の値で絞り込む作業をしています。
https://app.box.com/s/7lodh2jrq93zq3b5uv3qrwo7ipxdrepk
ここではOwnerIdが値に一致するものを抽出していますね。
ご覧になられている皆様のSalesforceにはおそらくたくさんのレコードが存在していることと思います。
たくさんのレコードをExportしようとすると時間がかかりますし、CSVを編集する時もやや手間がかかります。
絞り込めるものは出来るだけ絞り込み、効率よくデータローダを活用していきましょう!
2.SOQL(Salesforce Object Query Language)による絞り込み
下の画像では、SOQLを使用してレコードを絞り込んでいます。
SELECT p.Assignee.Name,p.Assignee.id,p.Assignee.EmployeeNumber
FROM PermissionSetAssignment p
WHERE p.Assignee.IsActive = true and p.Assignee.thanksgo_pa__incentivepoint_login_id__c = null and p.PermissionSet.Label like 'ThanksGo%'
ここではThanksGoという表示ラベルの権限セットが割り当てられていて、かつログインID項目が空のユーザの名前、ID、従業員番号を抽出しています。
実は項目の値での絞り込みの時にもAdd Conditionを押した時点でSOQLを追加しています。
SOQLの使用には多少前提となる知識が必要なのでデータローダを使用する上でのSOQLについて参考になるヘルプを下記に記載します。
・データのエクスポート
https://help.salesforce.com/articleView?id=exporting_data.htm&type=5
・SOQL および SOSL リファレンス
6.お困りの場合は
何かデータローダを使用していて困ったことがありましたら、公式のヘルプを検索してみてください。
過去困った時に参考になった公式ヘルプのURLを記載し、この記事を終わらせていただきます。
・データローダの設定
https://help.salesforce.com/articleView?id=configuring_the_data_loader.htm&type=5
・データローダのトラブルシューティングに役立つリンク集
https://help.salesforce.com/articleView?id=000322182&language=ja&type=1&mode=1
最後まで読んでいただき、ありがとうございました!