2014-01-13 2 views

ответ

1

Код должен выглядеть как-то вроде этого

list<Group> map_group = [Select Id, RelatedId from Group where Type='Territory' AND RelatedId =: 'TerritoryId']; 


List<AccountShare> lst_AccountShare = [Select Id, UserOrGroupId, AccountId from AccountShare where (UserOrGroupId IN : map_group)AND RowCause IN ('Territory', 'TerritoryManual', 'TerritoryRule')]; 
+0

У меня нет организации с территориями вокруг, но из того, что я помню, это даст только «прямые ссылки» (не будет отображаться accs с территорий ниже)? Есть трюк, который мы использовали для хранения иерархии территории в текстовом поле (255) в записи, чтобы мы могли запросить 'WHERE Hierarchy__c LIKE 'Territory/Subterritory/SubSub%'', и это вызвало идентификаторы родителя и всех детей. Все еще - бит болезненный;) – eyescream

0

Проверьте эти вопросы на http://salesforce.stackexchange.com, чтобы начать. Если вы все еще застряли - опубликуйте код, который вы пробовали до сих пор?

Вам может понадобиться рекурсивную обработку запросов на AccountShare, чтобы выяснить, счета, которые связаны именно с этой территории + учетные записи, связанные со всеми subteritories ... Если вы не чувствуете вроде бы - несколько сумасшедшая идея - создать отчет с сохраненным уровнем территории, а затем просто получить результаты этого отчета, используя обновленный API Google Analytics.

Смежные вопросы