セーブポイントが見つからない

【Trailhead】SOSLクエリの作成

こんにちは。にいるです。

Twitterで見たんですが、2週間の内にアドミン、上級アドミン、SalesCloudの試験に合格している方がいましたね。
すごいポテンシャルですね。Salesforceエンジニアというからには、標準機能をもっと勉強しないといけないなと感じました。

はい、今日はApexの初心者モジュール最終です。
Trailheadの「SOSLクエリの作成」について紹介したいと思います。
→Trailheadはこちらからご覧ください。

1.SOSLクエリとは?

1-1.SOSLの基本的な構文

FIND句の後に検索するキーワードを記載します。
In SearchGroupには下記のどれかを記載し、検索箇所を指定します。

 1.ALL FIELDS
 2.NAME FIELDS
 3.EMAIL FIELDS
 4.PHONE FIELDS
 5.SIDEBAR FIELDS

RETURNING ObjectsAndFieldsは検索結果を返す情報ですが、省略することも可能です。
省略した場合、見つかったオブジェクトのIDを返します。

1-2.SOQLとSOSLの違い

SOSLとはSalesforce Object Search Languageの略語です。
SOSLと使うとオブジェクトの標準項目、カスタム項目の区別なく、構文で指定する単語をもつレコードを返すことができます。

例えば、このコードだと全項目のどこかに「Salesforce」を持つ、取引先と取引先責任者を返すことができます。

SOQLは一つのオブジェクト検索ですが、SOSLでは全オブジェクトを一気に検索することが可能です。

またApex内に記載したSOSLをインラインSOSLと呼びます。

2.SOSLクエリの作成

今回のチャレンジ内容です。
今回はSOSLで返すレコードを先に作成する必要がありますね。

 1.アクセス修飾子がpublicで名前がContactAndLeadSearchのクラスにしてください。
 2.メソッドはsearchContactsAndLeadsにしてください。
 3.そのメソッドは引数の型としてstringを指定してください。
 4.メソッドで返す方はList型にしてください。
 5.メソッドは、姓または名の一部として文字列に一致する連絡先またはリードを見つける必要があります。
 6.注:SOSLは検索用のデータにインデックスを付けるため、このチャレンジをチェックする前に連絡先レコードとリードレコードを作成する必要があります。両方のレコードの姓はスミスでなければなりません。チャレンジでは、これらのレコードをSOSL検索に使用します。

書いてみました。

searchクラスのメソッド使用してクエリを文字列の変数に格納してそれを呼び出しています。
この場合の戻り値はsObjectになります。

→Apex開発者ガイド「Searchクラス」

3.まとめ

今回はSOSLについてのTrailheadでした。
DML、SOQL、SOSLとレコードの作成や、クエリでの検索方法を三つの言語で紹介しました。

ここで紹介しているものは、Salesforceの基本的な開発機能です。
ベースとしてはApexコードが書けるというスキルが必要になってきます。

やはり最初は難しいとは思いますが、まずはコードが読めるように構文を覚えることがコツだと思います。
ApexコードはWeb上にもなかなか出回らないので、目にすることがあまりないですが、

公式のヘルプサイトやコミュニティを見てみると、掲載されていることもあるので学習する際は使用してみるのもいいかもしれませんね。

他にも標準機能やアドミン試験関連、VisualforceのTrailheadなども紹介しています。
→標準機能の使い方
→アドミン試験関連
→VisualforceのTrailheadまとめ

ではでは!