10倍速SFDC開発者への道： Salesforce DevToolsを使いこなそう！

# はじめに
Salesforce開発者として、日々案件の中に次のような非効率的な開発作業方法でやっていませんか？
**非効率なSalesforce開発方法例：**　 
- オブジェクト定義書作成には、Salesforce設定画面から一々コピペしながら作成する
- オブジェクトレコードデータ確認するには、タブを検索または新規作成して確認する
- 環境移行の時、項目セキュリティレベルの設定でマウスでひたすらチェックボックスをチェックする
など多々あります。。

# Salesforce DevToolsとは
[Salesforce DevTools](https://www.xgeek.net/ja/salesforce/tesforce-for-google-chrome/)はSalesforce開発者向け人気Chrome拡張機能で、海外Salesforce MVPでも好評紹介されています。（[紹介記事はこちら](https://www.jitendrazaa.com/blog/salesforce/top-google-chrome-extensions-for-salesforce/)）
様々機能の中、オブジェクト定義書自動生成機能は普段よく利用していますが、他に素晴らしい機能がたくさんあるので、各機能の利用方法や裏技をご共有したいと思います。これらの機能を日々の開発中に活用できれば開発スピードがガンガン上がることは間違いありません。

[今すぐChrome Web Storeからダウンロード](https://chrome.google.com/webstore/detail/salesforce-devtools/ehgmhinnhggigkogkbhnbodhbfjgncjf)

# 各機能を使いこなそう
### 1. オブジェクト定義書の自動生成
**人気NO.1** の機能といえばこのオブジェクト定義書自動生成機能でしょう。対象オブジェクトをチェックするだけでExcel形式のオブジェクト定義書あっという間に出力されます、綺麗にレイアウトされるので、このままで納品物として提出しても全く問題なさそうです。

**利用方法：**　
1.オブジェクト単体の定義書出力するには、設定ページ、リストビュー、詳細ページ上DevToolsを開くと "Export" メニューが表示されます。
![Salesforce DevToolsオブジェクト定義書](https://qiita-image-store.s3.amazonaws.com/0/342648/73e83539-9a7e-2d28-2841-004daabf1010.png)

2.複数オブジェクトまとめて出力したい場合、"Search Object"から対象オブジェクトを検索し、チェックした上で "Export"　ボタンをクリックします。一度チェックしたオブジェクトが保持されますので、検索しながら対象オブジェクトの指定もできます。
![Salesforce DevToolsオブジェクト定義書](https://qiita-image-store.s3.amazonaws.com/0/342648/e8d6b5d3-40f2-ee75-e984-9b6deb63f17a.png)
![Salesforce DevToolsオブジェクト定義書](https://qiita-image-store.s3.amazonaws.com/0/342648/9c52def7-c352-65ee-cfba-ad2951316090.png)

**※裏技：** カスタムオブジェクトだけ絞り込みたい場合、キーワード"**__c**"ですぐ絞込できます。

### 2. データモデル（ER図）の自動生成
ER図でも瞬時自動生成するのはなかなか素晴らしいです。オブジェクト多い時ER図レイアウトが複雑になってしまい、納品物としては難しいかもしれませんが、オブジェクトリファレンス関係確認するには、かなり便利な機能です。

**利用方法：**　
オブジェクト定義書出力機能のように"Search Object"から対象オブジェクト指定するだけで、１つER図として出力されます。
![Salesforce DevToolsデータモデル](https://qiita-image-store.s3.amazonaws.com/0/342648/47d8a731-4587-073d-c5e5-fdbb5299b8f3.png)

**※凡例：** 
標準オブジェクト：青背景
カスタムオブジェクト：白背景
参照関係：黒線
主従関係：赤線

### 3. オブジェクトの検索及びクイックアクセス
昔の開発現場には、よくある開発者が組織全体オブジェクト一覧と各オブジェクトのリストページへのリンクなど情報を表示するVFページを自作して、案件始めると必ずやっておく作業でしたが、Salesforce DevToolsさえあれば、どんな組織にも手間なくすぐ利用できますね。
上述の"Search Object"メニューやオブジェクトリスト・詳細・設定ページ上開けばすぐ見れます。
![Salesforce DevTools Quick Access.png](https://qiita-image-store.s3.amazonaws.com/0/342648/3f9e821d-d9c9-26d4-c741-6b1ce8bd55d9.png)
左から順番から言うと、"新規"、"リストビュー"、"設定"及び"Salesforce公式項目API参照ページ"という直リンクが提供されています。

### 4. SOQL生成及びデータエクスポート
開発者コンソールには指定オブジェクト項目からSOQL作成およびデータ確認機能がありますが、Salesforce DevToolsの"**Query Editor**" 優れる点としては、項目ラベルとAPI参照名確認しながら項目指定できる、SOQLエディターに項目やキーワードの自動アシスト、及びクエリ結果をそのままExcelとしてエクスポートできる、この３つです。

**利用方法：**　
1.オブジェクト設定ページ、リストビュー、詳細ページが開いているであれば、DevToolsを開くと対象オブジェクトの "Query Editor" メニューが表示されます。
![Salesforce DevTools Query Editor.png](https://qiita-image-store.s3.amazonaws.com/0/342648/917868e5-e702-b14f-2a70-283ba6a07360.png)

我々日本の開発者としてはAPI参照名よりやっぱり項目ラベルのほうがわかりやすいですよね、対象項目をチェックすると自動的上部のSOQLに反映されます。また手動でSOQL編集もできますので、対象オブジェクトの全て項目API参照名はアシスト候補キーワードとなります。
![Salesforce DevTools Query Editor.png](https://qiita-image-store.s3.amazonaws.com/0/342648/e2893e4f-c54a-5109-cb1e-f1ad378a4d1f.png)


**※裏技：** 他のオブジェクトの"Query Editor"を開きたい場合、わざとオブジェクトページを開く必要がありません、"Search Object"機能には各オブジェクトクエリエディターへのメニューが提供されています。
![Salesforce DevTools Query Editor.png](https://qiita-image-store.s3.amazonaws.com/0/342648/ddfd9c82-9d62-0bf0-f805-a385d65d1694.png)

### 5. デバッグログの検索及びログ内容のフィルタリング
デバッグログ確認する度に、何個かのログを各タブに開いて特定したことがありませんか？Salesforce DevToolsにはデバッグログの検索機能も提供されています。

**利用方法：**　
デバッグログ一覧ページ上Salesforce DevTools開くと”Search Debug Log”機能が表示されます、任意のキーワードを入力するだけで全てのデバッグログを検索できます。

ログ特定できたら”View”ボタンでログ詳細ページが開き、なんと、該当する行までスクロールしてくれます！
![Salesforce DevTools　Debug Log.gif](https://qiita-image-store.s3.amazonaws.com/0/342648/e62683d3-1801-3a06-3bf3-f8e708717794.gif)
そしてログ詳細ページに再びSalesforce DevToolsを開くとログ内容のフィルタリングメニューが表示されます、System.debug出力内容のみはもちろん、各カテゴリに分類され、Excelフィルター機能のようにチェック外すと該当するカテゴリもフィルターされます。System.debugの出力内容の確認やDBクエリ内容確認には非常に役に立ちます。
一連の操作イメージは以下ご覧ください。
![Salesforce DevTools　Debug Log.gif](https://qiita-image-store.s3.amazonaws.com/0/342648/c2beab5f-250a-81ad-2573-ee9e65ba9914.gif)
**※裏技** System.debug時にLogginglevelを入れることで、色分けで出力されます。またオブジェクトレコード内容(sObjectリストもしくは単一レコード)をdebug出力対象に入れると、レコード内容が整形され、popup形式で各レコード・項目内容確認にはとても便利です。

```System.debug(Logginglevel.INFO,'[INFO] Account : ' + account);
System.debug(Logginglevel.WARN,'[WARN] Account : ' + account);
System.debug(Logginglevel.ERROR,'[ERROR] Account : ' + account);
System.debug(Logginglevel.DEBUG ,'[DEBUG] Account : ' + account);```

**※注意** この機能はClassicのみ利用可能となっています。

### 6. オブジェクト・項目権限の一括チェック
環境移行中最も体力と時間かかるのは、プロファイル権限設定関連作業ではないでしょうか。この一括チェックがあれば相当作業時間が節約できますよ。
**利用方法：**　
任意のプロファイル編集をしますと、次のようにセッションごとに一括選択や一括チェック機能がでてきますので、設定作業が楽になります。

![Salesforce DevTools All Check.png](https://qiita-image-store.s3.amazonaws.com/0/342648/c7252038-a846-6a5c-fabe-6fc3ef29f6a3.png)

![Salesforce DevTools All Check.png](https://qiita-image-store.s3.amazonaws.com/0/342648/9da27482-24d8-5402-a14f-cb4dd00bf35b.png)

**注意：**　この機能利用するには、```設定/ユーザ管理設定/拡張プロファイルユーザインターフェース ``` を有効化しない前提です。

また、項目レベルセキュリティ一括チェック機能もサポートされているので、プロファイル参照画面上Salesforce DevToolsによって"編集"リンクが追加され、クリックすると直接項目レベルセキュリティ画面に遷移できます。
![Salesforce DevTools All Check.png](https://qiita-image-store.s3.amazonaws.com/0/342648/172b7acf-ac79-964f-c8aa-a24373c9cb60.png)
ヘッダーにある参照アクセス権と編集アクセス権をチェックするだけで、全ての項目に適用されます。１つオブジェクトに数百項目ある場合、作業時間が100倍以上短縮できますね！
![Salesforce DevTools All Check.png](https://qiita-image-store.s3.amazonaws.com/0/342648/10f0ff60-6b84-8183-87d4-f09a98aceb97.png)
# 最後に
長くなりましたが、DevToolsの様々な機能を実際の案件開発には是非ご活用ください。
また、問題点やご意見がある方、遠慮なくコメントください、もしくはGithub上Issue登録（[こちら](https://github.com/xgeek-net/salesforce-devtools/issues)）しましょう、ご要望に応じて新しいバージョンに順次取込まれます。