MENU
Abo
某SIer勤務。
ITエンジニアです。
日々の学びをつらつらと書いています。
保有資格:
Salesforce認定アドミニストレーター  
Salesforce認定Platformデベロッパー
Salesforce認定上級Platformデベロッパー
カテゴリー
アーカイブ

【Salesforce】エンジニアでなくともSOQLは学んでおいたほうがいいよって話

こんな方へ向けた記事です
  • これまでSOQLに触れてこなかったSalesforceのシステム管理者やアドミニストレーター、コンサルタント
  • SOQL?聞いたことあるけど、使う意味あんの?というSalesforceにかかわるすべての人


普段Salesforceのエンジニアとして開発業務に携わっておられる方であれば、SOQLの使用は当たり前のことでしょう。
では、Salesforceのシステム管理者やアドミン、コンサルタントの場合はどうなんでしょう。

私の肌感では半分ほどの方がSOQLを触ったことがない、もしくはちょろっと理解しているがほぼ業務で使わないくらいのレべル感であるという印象です。

もちろんSOQLを学んでいなくとも業務は回るし、仕事は進んでいるので問題ないのですが、使えるようになった方が遥かに効率よく仕事が進むのになあと思っている今日この頃です。

そこでこの記事では、エンジニアでなくともSOQLは学んでおいたほうがいいよっていう話を日々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よりシンプルかな。

これを使いこなせると便利だよっていう話なんですが、システムサイドにいるSalesforce業務に携わる方でもけっこう使い方がわからないって方が多いと感じています。

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 DevToolsなどを使用してクエリ検索ができればすぐさまその場で回答できるわけです。
それが議論の前進、発展につながることも少なくありません。

Salesforce DevToolsとは

デベロッパー向け開発支援機能を有する「Chrome拡張機能」の1つ。
SOQLをボタン操作で発行したり、結果をエクスポートしたりできる。

Salesforce DevTools

おわりに

自分は今エンジニアと名乗りつつガッツリ開発の現場にはいません。

どちらかというと管理者サイドでSalesforceの運用を行っているのですが、コードを書く機会がなくなってもSOQLを使用する頻度は相変わらず高いです。

それはやはり素早く複雑な条件のデータでも簡単に取得できるからだと思います。

よくある場面として、ミーティングで一人がしゃべっている間に私がSOQLを叩いてデータを確認し「ほら、そんなデータ存在しないって言ったでしょ?」というように説得材料として使うとかですね(こんな嫌味っぽくは言わないですよ。)

エンジニアであろうがコンサルであろうが、システム管理者やアドミンであろうが、SOQLを書けるというのはもっていて損はないスキルです。

というか持っていると得をするスキルだと思うのでぜひちょっとずつ学習してみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

某SIer勤務。
Salesforceエンジニアです。
日々の学びをつらつらと書いています。
Certified Administrator
Certified Platform DeveloperⅠ
Certified Platform DeveloperⅡ
Certified Sales Cloud Consultant

コメント

コメントする

CAPTCHA


目次