見出し画像

コードが書けないSalesforceエンジニアのみなさん!SOQLにチャレンジしてみませんか?



ご挨拶


こんにちは!株式会社SHIFT カスタマーサクセス部 Salesforceグループの大下と申します。カスタマーサクセス部という、お客様目線でサービスを提供する部署の中で、Salesforceという製品を扱っております。Salesforceとはなんだろう?という方は、ぜひともこのブログ をご覧ください。

SOQLとはなんでしょう


SOQLとは、Salesforce Object Query Languageの略で、Salesforce内のオブジェクトレコードを検索できるクエリ言語のことを言います。はぁ?と思ったあなた、安心してください。もうちょっと分解していきましょう。クエリとは、データベースに対する命令文のことです。条件を指定して「このオブジェクトのこれとこれとこれの条件を満たしているデータを私のもとに持ってきたまえ」とデータベースに対して命令することをSOQLって言います。

SOQLは、書けないより書けたほうがいいに決まってる


かくいう私もコードが書けないエンジニアのひとりです。標準機能いっぽんでここまで闘ってきました。ですが、簡単なSOQLなら書けます。何故か。必要にかられて覚えました。うっ…SOQLを…覚えなければ…不便すぎる…がんばって覚えなければ…と、SOQLの壁が目の前にそびえ立つ、そんなタイミングがいつかコードが書けないみなさんの元にも訪れます。

例えば、「あーあのオブジェクトのあの項目ってどんなデータが格納されてるんだろ。10件ぐらいExportしたいな。」みたいな時。「あのエラー、なんのレコードに対するエラーなんだろ。ちょっと調べてみたいな。」なんて時。「フロー修正して項目の値が表示されるか動作確認したいんだけど、ページレイアウトで表示してない項目じゃん。さらっと確認したい!」とか。

いつかあなたにも訪れるその日のために、今日は私と一緒に準備しましょう!知っておいて得はあっても損はないです!

とりあえずやってみよう


開発者コンソールは、いつでも画面右上の設定アイコンであなたのことを待っています

はい、どーん。

これが開発者コンソールです。

あっ、待って。帰らないで!無理とか言わないで。一緒にやればきっとできるようになります。元コードアレルギーの私が保証します!

よくエンジニアの人が言うじゃないですか「クエリを叩く」って。おおおおお、なんだなんだクエリを叩くって。かっけー。私もクエリ、叩いてみたい!よく知らんけど、とりあえず叩きたい!「じゃあ私、クエリ叩いてみますね!」って言ってみたい!どや顔で言ってみたい!ぱぱっと叩きたい!冷蔵庫のありもので料理しちゃうみたいにぱぱっと!

さぁ、勇気を出して叩いてみましょう、クエリを!私と一緒に!怖くないです。こっちからクエリを叩くことはあっても、クエリから叩かれることはありません!

まずは、「Logs」から「Query Editor」にタブを切り替えてみましょう

切り替えられましたか?なんだかよくわからない言葉が入力されてますね。不安になってきた方もいると思います。待って。そっとブラウザを閉じたくなったあなた、大丈夫。怖くないです。あとちょっとの我慢です。なにか間違ったとしてもパソコンが爆発したりはしません。

上のエリアには「ここにクエリを入力してね」って書いてます。

そして、下のエリアには「エラーがあった時にはここに表示されるよ」って書いてます。

ただ、それだけのことです。

上のエリアにこう入力してみましょう。

※シングルクォーテーションで囲まれたIDには、任意の取引先IDを入力してみてくださいね。

SELECT Id,Name,OwnerId FROM Account WHERE Id = '0012t00000UCkTVAA1'

そして「Execute」をクリックします。

そうすると、なんと!結果が!返ってきました!おかえりなさい!おかえり結果!

ね!あなたにもクエリ叩けたでしょう?

では更に、この取引先の所有者って誰なんだろ を調べてみましょう。

上のエリアにこれを入力します

※シングルクォーテーションで囲まれたIDには、さっきの結果で表示されたOwnerIdを入力してみてくださいね。

SELECT Id,Name FROM User WHERE Id = '0052t000001X4oeAAC'

で、Executeをクリックしてみましょう。

はい、結果返ってきました。もう楽勝じゃないですか。


ではおさらいです。

  • SELECT表示させたい項目のAPI参照名を指定します。

  • そして、FROM でオブジェクトのAPI参照名を指定

  • WHERE ID探して欲しいレコードIDを入力しました

すごい!やりましたね!今日はSOQL記念日です!

あとはアレンジするのみ


勇気を振り絞って開発者コンソールを開いたあなたはもう、勝ち組です。これでコードアレルギーからの、この支配からの卒業です。0から1にすることがいちばん労力がいるんです。ほんとはやればできるのに、できないと思い込んでしまっている自分から脱却することが、最も大変なことだったりします。あとはもう、ひたすらアレンジするのみ!ググってググってググりまくりましょう。

例えば、とりあえずレコードを10件だけ取得したい

SELECT Id,Name,CreatedDate FROM Account LIMIT 10

例えば、電話番号項目の値が空欄の取引責任者を取得したい

SELECT Account.Name,Name FROM Contact WHERE Phone != NULL

全ての商談件数を知りたい

SELECT COUNT(Id) FROM Opportunity

特定の取引先に紐づく商談レコードを取得したい

SELECT Id, Name, OwnerId, Owner.name, StageName, LastModifiedDate FROM Opportunity WHERE AccountId = '0012t00000UCkTVAA1'

※シングルクォーテーションで囲まれたIDには、商談レコードを持つ任意の取引先IDを入力してみてください。

などなど、SOQLはアレンジ次第でいろんなことを確認するために役立ちます。

もちろん開発者コンソールだけでなく、データローダでも使えるんですよ

データローダでExportメニューを選び、オブジェクトと出力先を指定した次の画面。

ここで、SOQLを入力することができます。

SELECT Active__c,Id,Industry,Name,NumberOfEmployees FROM Account WHERE LastModifiedDate >= 2021-12-01T00:00:00Z AND LastModifiedDate <= 2021-12-01T00:00:00Z

と、ここでは取引先の最終更新日を範囲指定してみました。

最後に


今日は、一緒にSOQLのお勉強をしました。

いかがでしたか?

ちょっと調べたい時、データローダで条件を指定したい時、必ず役立つと思います!

そして、最後までお付き合いいただき、ありがとうございました。

ぜひともハートをクリックしていただけると、嬉しいです!

※ブログ内の画像は、全てトライアル環境のものを使用しています


執筆者プロフィール:大下 亜希子
・SHIFT歴:2年半
・Salesforce歴:5年半
・Trailhead:バッヂの数はトリプルなのにポイントが不足し過ぎているDouble Star Ranger
・認定資格
 ◦ アソシエイト
 ◦ アドミニストレーター
 ◦ セールスエキスパート
 ◦ Platform アプリケーションビルダー
 ◦ 上級アドミニストレーター
 ◦ Sales Cloud コンサルタント
 ◦ Service Cloud コンサルタント
 ◦ Experience Cloud コンサルタント
 ◦ CRM Analytics and Einstein Discovery コンサルタント
 ◦ Marketing Cloud Account Engagement スペシャリスト
・私が住んでいるところ自慢
 ◦ 暑くて有名 梅雨明け頃から気象庁の最高気温ランキングの常連になるぐらい
 ◦ 冬もめちゃくちゃ寒い 庭の水道が凍るレベル なのに雪が東京より降らない
 ◦ UberEatsが来ない 出前館も来ない
 ◦ 最寄駅まで徒歩1時間
 ◦ 郡&町

お問合せはお気軽に
https://service.shiftinc.jp/contact/

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/

PHOTO:UnsplashMohammad Rahmani