【Salesforce 認定Platformデベロッパー】試験対策:第213問

問題

開発者が、「Universal Containers」という会社名を持つリード、取引先、および取引先責任者のIdと名前(Name)を取得するために使用すべきクエリはどれですか。

A

SELECT Lead.Id, Lead.Name, Account.Id, Account.Name, Contact.Id, Contact.Name 
FROM Lead, Account, Contact 
WHERE CompanyName = 'Universal Containers'

B

FIND 'Universal Containers' IN Name Fields RETURNING lead(id, name), account(id, name), contact(id, name)

C

FIND 'Universal Containers' IN CompanyName Fields RETURNING lead(id, name), account(id, name), contact(id, name)

D

SELECT lead(id, name), account(id, name), contact(id, name) 
FROM Lead, Account, Contact 
WHERE Name = 'Universal Containers'

正解

B

FIND 'Universal Containers' IN Name Fields RETURNING lead(id, name), account(id, name), contact(id, name)

クエリエディタ用(開発者コンソール)

FIND {Universal Containers} IN NAME FIELDS RETURNING Lead(Id, Name), Account(Id, Name), Contact(Id, Name)
  • ポイント
    • IN NAME FIELDS を使用することで、Lead, Account, Contact の Name 項目を対象に検索できる。
    • クエリエディタでは、検索語 (Universal Containers) を {} で囲む必要がある。

匿名 Apex 実行用

List<List<SObject>> searchResults = 
    [FIND 'Universal Containers' IN NAME FIELDS RETURNING Lead(Id, Name), Account(Id, Name), Contact(Id, Name)];
System.debug(searchResults);
  • ポイント
    • 匿名 Apex 実行時は、検索語を {} ではなく ‘ ‘(シングルクォート)で囲む。

解説

それぞれの選択肢の理由について説明します。

A

SELECT Lead.Id, Lead.Name, Account.Id, Account.Name, Contact.Id, Contact.Name 
FROM Lead, Account, Contact 
WHERE CompanyName = 'Universal Containers'

これは不正解です。SOQLでは、FROM句に複数のオブジェクトを指定することはできません。

B

FIND 'Universal Containers' IN Name Fields RETURNING lead(id, name), account(id, name), contact(id, name)

これは正解です。SOSL(Salesforce Object Search Language)を使用すると、異なるオブジェクト(リード、取引先、取引先責任者)を横断して検索できます。このクエリはName項目に「Universal Containers」を含むリード、取引先、および取引先責任者を検索するため、要件を満たしています。

C

FIND 'Universal Containers' IN CompanyName Fields RETURNING lead(id, name), account(id, name), contact(id, name)

これは不正解です。SOSLでは “CompanyName Fields” という検索範囲指定は存在しないため、このクエリは構文エラーとなります。SOSLで指定できる検索範囲は ALL FIELDS, NAME FIELDS, EMAIL FIELDS, PHONE FIELDS, SIDEBAR FIELDS のいずれかです。さらに、リードの会社名は Company、取引先の会社名は Name 項目を使用するため、検索範囲に NAME FIELDS を指定するのが適切です。

D

SELECT lead(id, name), account(id, name), contact(id, name) 
FROM Lead, Account, Contact 
WHERE Name = 'Universal Containers'

これは不正解です。SOQLでは、FROM句に複数のオブジェクトを指定することはできません。

次の問題へ

前の問題へ

1問目から復習する

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

この記事を書いた人

雇われのシステムエンジニアです。
普段は車載ECUのセキュリティー分野に従事しております。

コメント

コメント一覧 (2件)

コメントする

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約が適用されます。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次