Как упоминалось ранее, поля WhoId и WhatId в задаче являются полиморфными (это означает, что они могут указывать на несколько целевых объектов. Если у вас нет Функция полиморфизма SOQL включена, как описывает @eyescream, единственная" связанная " поля, которые вы можете запросить, - это те, которые находятся на «Имя» объекта API, но есть исключения, которые задокументированы в этом документе.
Пример 1: select Who.FirstName, Who.LastName, Who.Email from Task
Это вернет данные для FirstName и LastName, если у контакта / интереса есть эти поля, но, как говорится в приведенном выше документе, он никогда не вернет результаты для Who.Email, потому что ни один из двух возможных целевых объектов поля Who
(Контакт , Lead) - это объект User
.
Пример 2: select Owner.Name, Owner.Email from Case
Если вы используете очереди с объектом Case, то владельцем дела может быть запись пользователя или группы (из которых Queue является типом). Поскольку и Name
, и Email
находятся на объекте Name
, вышеуказанный запрос всегда будет возвращать данные для имени и, если целевой объект является пользователем, он БУДЕТ возвращать данные для Owner.Email.
Пример 3: select What.Name, WhatId from Task where What.Type in ('Case','Account','Solution')
Это очень интересный пример, потому что поле Name объекта Case на самом деле CaseNumber
, а не Name --- есть пара других стандартных объектов с "нестандартными" (ироничными) полями Name, например SolutionTitle, а есть другие, у которых даже нет полей Name, например CampaignMember
. ОДНАКО, одна из замечательных особенностей Salesforce, имеющих полиморфные поля, технически указывающие на объект Name
, заключается в том, что приведенный выше запрос БУДЕТ возвращать результаты для обращений! Если CaseNumber для дела - 00001234, то What.Name в приведенном выше запросе вернет 00001234, тогда как для учетной записи он вернет имя учетной записи, а для решения он вернет SolutionTitle.
Здесь также полезно заметить, что вы МОЖЕТЕ ограничить, какие целевые объекты возвращаются, путем фильтрации по полю «Тип», которое является специальным полем объекта Name
.
person
zachelrath
schedule
01.08.2013