こんにちは、にいるです。
今回は「SOQLで簡単に全項目をSELECTする方法」について紹介します。
1.実はSpring’21でリリースされていたみたい
なんと!
全項目を一発で抽出する方法がすでにSpring’21でリリースされていたんですね。
前々からすごく欲しいと思っていたので、めちゃくちゃ嬉しいです。
(そして、ちゃんとリリースノートはチェックしないとだめだなと思いました。)
まずSOQLを知らない方へ説明すると、SOQLとはSalesforceでレコードを取得できる言語です。
英語の構文だとSVO的なイメージになります。(SOQL上Sの記載はないですが。)
基本構文は以下ですね。
直訳すると、「取引先からIdと名前項目を全件分抽出してください!」です。
1 |
SELECT Id,Name From Account |
SOQLの他の使い方については以下で紹介していますので、参考にご覧ください。
・【まとめ】Salesforceよく使うSOQL!
・【Salesforce】SOQLとSOSLクエリについて
・【Trailhead】SOQLクエリの作成
2.FIELDS()を試してみる
ただなんでもかんでもFIELDS()で賄えるというわけではないようです。
使い方に制約もあるので、それぞれ見ていきたいと思います。
2-1.FIELDS(ALL)
1 |
Select Fields(ALL) From Contact LIMIT 200 |
構文はこんな感じで使うみたいですね。
画面で見てみるとすごいことになっていますが、ちゃんと全部撮れていますね笑
The SOQL FIELDS function must have a LIMIT of at most 200
というメッセージが表示され、LIMIT 200を付けて!と言われます。
2-2.FIELDS(CUSTOM)
これはカスタム項目だけを全取得する方法です。
1 |
Select fields(CUSTOM) From Contact LIMIT 200 |
構文はFIELDSの()内をCUSTOMにするだけです。
これもALLと同じく、LIMIT 200を付けないと正常に動かないようです。
同じエラーメッセージ「The SOQL FIELDS function must have a LIMIT of at most 200」が表示されます。
2-3.FIELDS(STANDARD)
最後は標準項目だけを取得する方法です。
1 |
Select fields(Standard) From Contact |
これはLIMIT 200は不要です。
というのも、カスタム項目と違い、項目数が増減しないためです。
といっても、画面で見ると、すごい量の項目がありますが笑
3.まとめ
いかがでしたでしょうか。
項目を一つ一つ指定するのが面倒な場合に使用できるので、便利になっていいですね。
前からSQLでいうアスタリスク指定みたいなものがあればなー、と思っていたので今回の実装は個人的には嬉しいです。
皆さんもぜひ色々と試してみてください。
他にも色々と標準機能やSalesforce機能について紹介していますので、ご覧ください。
ではでは!
コメント