問題
ある開発者が、メールアドレス’dev@uc.com’を持つ取引先責任者とユーザーを取得したいと考えています。開発者が使用すべきSOSL文はどれですか。
- FIND {dev@uc.com} IN Email Fields RETURNING Contact (Email), User (Email)
- FIND {Email = ‘dev@uc.com’} RETURNING Contact (Email), User (Email)
- FIND {Email = ‘dev@uc.com’} IN Contact, User
- FIND Email IN Contact, User FOR {dev2uc.com}
正解
- FIND {dev@uc.com} IN Email Fields RETURNING Contact (Email), User (Email)
- FIND {Email = ‘dev@uc.com’} RETURNING Contact (Email), User (Email)
- FIND {Email = ‘dev@uc.com’} IN Contact, User
- FIND Email IN Contact, User FOR {dev2uc.com}
解説
正しいSOSL文のひな形:
FIND {検索したい値} IN フィールド名 RETURNING オブジェクト名 (取得したいフィールド名)
説明:
SOSL文は、Salesforce内の複数のオブジェクトを跨いでデータを検索するための言語です。上記のひな形では、{検索したい値}
で指定した値を特定のフィールド内で検索し、該当するオブジェクトの指定したフィールドの値を返します。
それぞれの選択肢の理由について説明します。
□ FIND {dev@uc.com} IN Email Fields RETURNING Contact (Email), User (Email)
これは正解です。このSOSL文は、Emailフィールド内で’dev@uc.com’を検索し、該当する取引先責任者(Contact)とユーザー(User)のEmailフィールドの値を返します。この文は正しく、要件を満たしています。
□ FIND {Email = ‘dev@uc.com’} RETURNING Contact (Email), User (Email)
これは不正解です。 このクエリは「IN [フィールド名]」の部分を欠いています。SOSLでは、どのフィールドを検索対象とするかを明示する必要があります。FIND {dev@uc.com} IN Email Fields RETURNING Contact (Email), User (Email)
のように「IN Email Fields」を追加することで、メールフィールド内での検索を指定します。
□ FIND {Email = ‘dev@uc.com’} IN Contact, User
これは不正解です。 このクエリは「IN [フィールド名]」の形式が間違っています。また、検索値が正しく指定されていません。FIND {dev@uc.com} IN Email Fields RETURNING Contact, User
のように、正しい「IN [フィールド名]」の形式を使用し、検索値を適切に指定する必要があります。
□ FIND Email IN Contact, User FOR {dev2uc.com}
これは不正解です。 このクエリは全体的に文法が間違っており、SOSLの構文に従っていません。また、検索値が誤っています。FIND {dev@uc.com} IN Email Fields RETURNING Contact (Email), User (Email)
のように、正しいSOSL構文を使用し、正しい検索値を指定する必要があります。
コメント