Позвольте мне убедиться, что я понимаю вашу проблему. В настоящее время у вас есть карта, которая использует идентификатор учетной записи в качестве ключа к значению списка идентификаторов ведущего - значит, карта -> Список. Верный?
Ваша цель - перейти от идентификатора ведущего к идентификатору учетной записи.
Если это правильно, значит, вы находитесь в плохом состоянии, потому что ваша текущая структура требует очень медленного итеративного поиска. Правильный код будет выглядеть следующим образом (заменить комментировала строку с этим кодом):
for(ID actID : leadMap.keySet()) {
for(ID leadID : leadMap.get(actId)) {
if(newLead.id == leadID) {
newLead.Account__c = actId;
leads_to_update.add(newLead);
break;
}
}
}
Мне не нравится это решение, потому что это требует Перебора карты, а затем над каждым из списков в каждом из значений , Это медленно.
Если это не bulkified кода, вы можете сделать запрос Select и получить значение Account__c от существующего Lead, выполнив:
newLead.Account__c = [ SELECT Account__c FROM Lead WHERE Id = :l.id LIMIT 1];
Однако это зависит от вашего кода не зацикливание на этой линию, попав на лимит губернатора.
Или вы могли бы повторно написать свой код СОЭ, что ваша карта на самом деле:
Map<ID, List<Leads>> leadMap = Map<ID, List<Leads>>();
Затем в запросе, где вы строите карту вы убедитесь, что ваш Свинец также включает в себя поле Account__c.
Любой из этих вариантов должен работать, все зависит от того, как этот фрагмент кода выполняется и где.
Удачи вам!
какой вы код ошибки? вы не должны вводить новый идентификатор существующего в новый ... –
Проблема заключается в том, что в моей LeadMap у меня есть список, который состоит из всех ссылок, связанных с идентификатором учетной записи. Зная только 1 ключевой идентификатор, как извлечь идентификатор учетной записи? –