- これまでSOQLに触れてこなかったSalesforceのシステム管理者やアドミニストレーター、コンサルタント
- SOQL?聞いたことあるけど、使う意味あんの?というSalesforceにかかわるすべての人
エンジニアでなくともSOQLは学んでおいたほうがいいよっていうお話です。
この記事の内容は個人の見解です。
へえ、そういう考えがあるんだというくらいに受け取っていただけるとうれしいです。
SOQLとは
本題に入る前にちょろっと書きます。
そもそもSOQLとは何ぞやっていう話です。
SOQLとは「Salesforce Object Query Language」の略でSalesforceのデータベースからデータをクエリ(取得)するための言語です。
SOQLは、Salesforceのデータベースに保存されているオブジェクト(例えば、リード、取引先、取引先責任者、商談など)のデータを検索し、取得するために使用されます。
書き方はこんな感じ↓で
- [SELECT]の後に取得したい項目
- [FROM]の後に取得元のオブジェクト
- [WHERE]の後に取得条件
指定します。
SELECT Id, Name, Email FROM Contact WHERE AccountId = '0011N00001GRsnYQAT'
SQLに似ていますが、Salesforceのオブジェクトに特化した言語です。
結合とかがないのでSQLよりシンプルかな。
これを使いこなせると便利だよっていう話。
SOQLを学ぶ意義
さて、本題ですが、私がSOQLをエンジニア以外も学んだ方がよいと感じる理由は大きく3つあります。
- データ操作の効率化
- データ構造の理解が深まる
- ビジネスインサイトの提供
データ操作の効率化
まず1つ目がデータ操作の効率化です。
データ操作とは、データを作成、更新、削除したりすることです。
データ操作をする際は対象のレコードを特定して更新したり削除したりしますよね。
SOQLを使えればこのデータの特定が簡単に行えます。
特にデータローダで対象データをエクスポートする際はSOQLの使用が便利ですね。条件にあてはなるレコードを一括で取得でき、その後のデータ操作に移れるのでいちいちレポート作成して対象を絞り込む必要がなくなります。
データ構造の理解が深まる
SOQLを学ぶとデータ構造の理解が深まるんじゃないかなと。
Salesforceには参照関係や主従関係といったデータ構造がありますよね。
いわゆるリレーションってやつです。
さらにその中でレコードが1対1で紐づいているのか1対Nなのか、はたまたN対Nなのかといったリレーションの種類があったりします。
これを言葉ではなんとなく理解しているもののデータ構造的にどのようになっているか理解できていない人がちらほらいるように思います。
これもSOQLのWHERE句での条件指定方法などを学ぶことで一定理解が深まると思っています。
例えば、特定の取引先の商談を抽出したい時、SOQLなら以下のように取得します。
SELECT Id, Name StageName FROM Opportunity WHERE AccountId = '0011N00001GRsnYQAT'
WHERE句で指定できる関連先のレコードは親のレコードなので(※サブクエリはいったんおいておく)、取引先が商談の親にあることが分かります。
取引先がないと商談が成り立たないので当たり前といえば当たり前なんですが、SOQLからリレーションのイメージをつかむことはできますよね。
ビジネスインサイトの提供
あと1つは、ビズネスインサイトの提供があります。
ちょっとカッコよく書きましたが、要はユーザーが求めていたり認識していない情報を素早く的確に取得し提供できますよってことです。
例えば機能追加の要件定義ミーティングの最中に、この特定条件にあてはまる取引先データって何件あるんだっけ?っといった状況があったとします。
もちろんレポート作成して件数を確認することはできますが時間がかかりすぎます。
ミーティング時間は限られているので、可能な限り最短で結論に辿りつきたいものです。
そんな時、SOQLを書ければクエリ検索ができ、すぐさまその場で回答できるわけです。
それが議論の前進、発展につながることもあったり。
おわりに
自分は今エンジニアと名乗りつつガッツリ開発の現場にはいません。
どちらかというと管理者サイドでSalesforceの運用を行っているのですが、コードを書く機会が少なくなってもSOQLを使用する頻度は相変わらず高いです。
それはやはり素早く複雑な条件のデータでも簡単に取得できるからだと思います。
エンジニアであろうがコンサルであろうが、システム管理者やアドミンであろうが、SOQLを書けるというのはもっていて損はないスキルです。
というか持っていると得をするスキルだと思うのでぜひちょっとずつ学習してみてください。
Chromeの拡張機能のDevToolsは定番。
めちゃ便利にSOQL書けます。
デベロッパー向け開発支援機能を有する「Chrome拡張機能」の1つ。
SOQLをボタン操作で発行したり、結果をエクスポートしたりできる。
コメント