У меня плохое понимание использования общедоступных, статических и глобальных ключевых слов с моими переменными и методами.
Ниже приведен фрагмент моего кода. Что я пытаюсь сделать, так это при загрузке страницы в моем конструкторе создать набор идентификаторов учетных записей, к которым у пользователя есть доступ (8-33, это работает). Этот набор будет использоваться для фильтрации запросов, используемых в последующих методах.
Я обнаружил, что публичный pageReference runSearch() имеет доступ к 'terrAccSet', но общедоступный статический список getsearchAccounts не имеет к нему доступа.
Если я изменю его на общедоступный статический Set terrAccSet, я не получу данные ни в одном из системных отладочных файлов - что я могу сделать?
global with sharing class MyClass {
public static List<FRM_Metrics_gne__c> accountSearchGmap {get; set;}
public Set<Id> terrAccSet;
public List<String> terrIdList;
//Constructor
public MyClass() {
terrAccSet = new Set<Id>();
terrIdList = new List<String>();
Set<Id> grpIdSet = new Set<Id>();
Id uid = '00570000001R95e'; //member of TWO territories
//UserTerritory Utid = [SELECT TerritoryId FROM UserTerritory where UserId = :userInfo.getUserId()];
List<UserTerritory> Utid = [SELECT TerritoryId FROM UserTerritory where UserId =: uid ];
for(UserTerritory usrTerr: Utid){
terrIdList.add(usrTerr.TerritoryId);
}
List<Group> grp = [Select Id from Group where RelatedID IN :terrIdList];
for (Group eachgroupd : grp ){
grpIdset.add(eachgroupd.Id);
}
List<AccountShare> accountidList = [SELECT AccountId,UserOrGroupId FROM AccountShare where UserOrGroupId in :grpIdset];
//all accounst that the user has access according to territory hiearchy
for(AccountShare eachas:accountidList ){
terrAccSet.add(eachas.AccountId);
}
}
public PageReference runSearch() {
//Has Data
system.debug('**terrAccSet runSearch** '+terrAccSet);
}
public static List<Custom_Object__c> getsearchAccounts(String multiSearchString) {
//terrAccSet variable is missing
system.debug('**terrAccSet getSearchAccounts** '+terrAccSet);
//logic
return accountSearchGmap;
}
}