поле для количества мероприятий для каждого контакта, независимо от типа или статуса. Полное описание: Требование состоит в том, чтобы иметь возможность создавать отчеты на основе контактов или учетной записи или возможностей и просматривать поле «Сводка» для общего количества мероприятий, связанных с контактами, учетными записями или возможностями. Обратите внимание, что мы не хотим видеть строку для каждого действия, мы хотим видеть одну строку для каждого контакта или opp или учетной записи с подсчетом сводки активности. Примечание: Оригинальный запрос также включал в себя возможность подсчета уникальной активности в отчетахтриггер по контакту для подсчета истории событий, а также обновлен на счетном объекте и объекте
0
A
ответ
0
Я не тестировал этот код, но вы могли бы сделать что-то подобное для вставки (вам также нужно будет освещать обновления и удаляет). В этом примере NumberOfActivites__c - это ваше собственное поле счетчика задач на объекте Contact:
Map<Id,Integer> countMap = new Map<Id,Integer>();
List<Contact> contactList = new List<Contact>();
for (Task t : trigger.new){
//get id's of all contacts affected by the batch
Id w = t.whoId;
if (w.getSObjectType().getDescribe().getName() == 'Contact'){
//since there could be more than one task related to a contact
//in a batch, you would have to count them
if (countMap.keyset().containts(w)){
countMap.get(w) += 1;
} else {
countMap.put(w,1);
}
}
}
//get list of contacts to be updated
contactList = [Select Id, NumberOfActivities__c
From Contact
Where Id In :countMap.keyset()];
//modify contacts in list with new count
for (Contact c : contactList){
c.NumberOfActivites__c = c.NumberOfActivites__c + countMap.get(c.Id));
}
//do the update
update contactList;