【Salesforce】SOQLツールを使いこなす

# はじめに
Apex開発を行う際に個人的に1番面倒だと感じる作業が、SOQLへのオブジェクト項目名記述です。
1つ2つなら問題ないのですが、必要項目が多数あった場合に1つ1つコピペするのは骨が折れます。

そこで今回は、開発が非常に捗るSOQL関連のツールを3つご紹介したいと思います。

- [Salesforce DevTools](https://chrome.google.com/webstore/detail/salesforce-devtools/ehgmhinnhggigkogkbhnbodhbfjgncjf)  
- [SOQL Builder(Salesforce Extensions for Visual Studio Code ベータ版)](https://developer.salesforce.com/tools/vscode/ja/soql/soql-builder)  
- [LWC SOQL Builder](https://lwc-soql-builder.github.io/) 

# [1. Salesforce DevTools](https://chrome.google.com/webstore/detail/salesforce-devtools/ehgmhinnhggigkogkbhnbodhbfjgncjf)
【できること】

- 項目名の自動補完、GUIで選択
- エクスポート(csv)

皆さんご存知のChrome拡張機能です。
オブジェクトの定義書やER図が簡単に作成できるだけでなく、クエリエディターも使用できます。
今回紹介するツールの中では1番シンプルですが、その分お手軽に使用できます。

1. 拡張機能を起動し、`Search Objects`を選択
1. 対象オブジェクトのラベル名 or API名を入力し、Query Editorを開く
1. クエリ項目をクリックして選択し、Queryで結果取得・Exportでcsvファイルをダウンロード

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573865/285af845-d7a9-a617-7938-123c4d838b1c.png)

とても簡単にクエリを構築できました。WHERE句の追記も可能なのでこれだけでも十分すぎるほど便利です。
入力フォームからApexへコピペも可能です。

詳しい使い方については、別記事で詳しく紹介されていますのでそちらをご覧下さい。
[10倍速SFDC開発者への道： Salesforce DevToolsを使いこなそう！](https://qiita.com/sfdcdeveloper/items/50d8fd8cd2209ac63f94)

# [2. SOQL Builder(Salesforce Extensions for Visual Studio Code ベータ版)](https://developer.salesforce.com/tools/vscode/ja/soql/soql-builder)
【できること】

- 項目名の自動補完、GUIで選択
- エクスポート(csv / json)
- Apex向けのフォーマット
- WHERE・ORDER BY・LIMITの指定
- 集計関数の使用

多少[事前準備](https://developer.salesforce.com/tools/vscode/ja/getting-started/install/)が必要になりますが、Visual Studio Code内でSOQLを実行できます。
上記インストールの完了後、プロジェクトフォルダ > scripts > soql フォルダに`.soql`拡張子のファイル（名称は任意）を作成すれば準備完了です。
作成したファイル上で、画面右上の`Switch Between SOQL Builder and Text Editor`アイコンをクリックすると、通常のエディタとSOQLビルダー画面を切り替えることが可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573865/aa987e8b-3cfe-d741-3edc-b7da5a1515de.png)

ここではGUIでオブジェクト・項目が選択できるだけでなくWHERE句なども細かく指定できるため、SOQLに不慣れな方でも必要なクエリが発行できます。
またSOQL文を作成した後にもう一度`Switch Between~`をクリックすると、以下画像の様に整形されたSOQL文がエディタに反映されているため、Apexファイルにそのままコピペ可能です。
画面がイケてて便利なのですが、項目のラベル名が使用できないため、結局別の場所でAPI名を参照する必要があるのでご注意を。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573865/a5f0a088-05f6-2634-9d88-73a0d6f4491a.png)

# 3.[LWC SOQL Builder](https://lwc-soql-builder.github.io/)
【できること】

* オブジェクト/項目一覧をクリックするだけでSOQLが作れる！
* サブクエリ、親リレーションもクリックで挿入できる！
* 項目の入力補完にも対応！
* オブジェクト/項目はAPI名だけでなくラベルでも検索可能！
* CSVエクスポートできる！
* 削除済みレコードも検索できる！
* 管理パッケージ開発組織ではネームスペースを省略できる！
* PWAサポート！デスクトップアプリのように動く！
* SOQLを整形できる！Apexにきれいに貼れる。
* LWC OSSで作っているのでLWCのサンプルアプリとしても使える。

※上記記事より抜粋

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573865/160abf1f-5b76-3145-10bb-bb42c3b58e1c.png)


ただ一言、とにかく便利です。
ラベル名でクエリに追加できるし、自動でフォーマットされるのでそのままApexにコピペできてとても捗ります。
なにより親リレーションはもちろん、子リレーションのサブクエリまでクリックで構築可能。
WHERE句以下は自分で書く必要がありますが、項目の入力補完機能もあるので十分過ぎる機能性です。
面倒な準備も一切不要なので、とにかく一度使ってみて下さい。世界が変わります。

# 最後に
ご紹介したツールの特徴・使い所をまとめます。

- [Salesforce DevTools](https://chrome.google.com/webstore/detail/salesforce-devtools/ehgmhinnhggigkogkbhnbodhbfjgncjf)  
 → 手軽にSOQLを実行したい方
- [SOQL Builder(Salesforce Extensions for Visual Studio Code ベータ版)](https://developer.salesforce.com/tools/vscode/ja/soql/soql-builder)  
 → Visual Studio Code内でSOQLを実行したい方
- [LWC SOQL Builder](https://lwc-soql-builder.github.io/)  
 → とにかく多機能にこだわる方

まだ使った事がないツールがあればぜひ導入してみて下さい！