У меня есть пакетная программа, которая мне нужна для объединения (свертывания) нескольких полей валюты по конкретному контакту и фонду. Мне нужен свежий взгляд на это, так как я не могу понять, как мне нужно правильно сворачивать поля по контакту и фонду.как заполнить записи в списке
Вот мой текущий код в пакетной программе:
for (My_SObject__c obj : (List<My_SObject__c>)scope) {
if(!dbrToContactMap.isEmpty() && dbrToContactMap.size() > 0) {
if(dbrToContactMap.containsKey(obj.DBR__c)) {
List<Id> contactIds = dbrToContactMap.get(obj.DBR__c);
for(Id contactId : contactIds) {
My_Rollup__c rollup = new My_Rollup__c();
rollup.Fund_Name__c = obj.FundName__r.Name;
rollup.DBR__c = obj.DBR__c;
rollup.Contact__c = contactId;
rollup.YearToDate__c = obj.YearToDate__c;
rollup.PriorYear__c = obj.PriorYear__c;
rollupsToInsert.add(rollup);
}
}
}
}
if(!rollupsToInsert.isEmpty() && rollupsToInsert.size() > 0) {
insert rollupsToInsert;
}
Я итерация объем записей, что составляет около 275000 записей, которые возвращаются. У меня есть карта, которая возвращает список контактов по ключевому полю в моей области.
Теперь, когда я контактирую через каждый контакт, я помещаю их в список и вставляю. Проблема в том, что мне нужно объединять (сворачивать) фонды и контакты.
Например, карта возвращает контакт для «John Doe» десять раз для конкретного поля ключа. Итак, в записи контакта «John Doe» будет 10 записей.
Проблема в том, что один и тот же фонд может быть в тех 10 записях, которые необходимо объединить.
Итак, если «Фонд А» появляется в 5 раз, а «Фонд Б» появляется 3 раза, а «Фонд С» появляется 2 раза, тогда у меня должно быть всего 3 связанных записи в общей сложности на «Джон Доу», контактные данные, которые агрегируются (свертываются) фондом.
Мне не удалось выяснить, как сделать накопительный фонд в моем списке.
Может ли кто-нибудь помочь?
Любая помощь приветствуется.
Спасибо.
Спасибо! Это именно то, что мне нужно! – Dman100