You need to sign in to do that
Don't have an account?

Send Email is not creating bulk tasks
Hi,
I have functionality to send 100 emails when Click on Notify button.
List<Messaging.SingleEmailMessage> mails = new List<Messaging.SingleEmailMessage>();
for(Contact con : contact)
{
Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
email.setTargetObjectId(con.Id);
email.setWhatId(accountId);
email.setSaveAsActivity(true);
mails.add(email);
}
if(mails.size()>0)
{
Messaging.SendEmailResult [] r = Messaging.sendEmail(mails);
}
When emails are sent, it will create Task record in contact. I have trigger on Task Object to update field in account. When 100 task records are getting created, it is calling SOQL query in my below trigger 100 times. Please advice if my trigger is bulkified or is there any issue in Email sending code.
List<account> accountId = new List<ACcount();
List<Task> triggerTask = Trigger.new != null ? Trigger.new : Trigger.old;
for (Task task: triggerTask){
String accountId = task.WhatId;
if(task.Status =='Completed' && task.Isclosed==true && task.IsRecurrence == false && accountId !=null){
accountId.add(task.whatId);
}
}
if(accountId.size()>0){
List<accountId> accountList = [SELECT Id, (SELECT Id FROM Tasks where Status='Completed' and Isclosed=true and IsRecurrence = false) FROM Account WHERE Id IN :accountId];
for(Account acc:accountList) {
if(acc.Tasks != null) {
acc.Activities__c= acc.Tasks.size();
}
}
if(accountList.size()>0){
update accountList;
}
}
I have functionality to send 100 emails when Click on Notify button.
List<Messaging.SingleEmailMessage> mails = new List<Messaging.SingleEmailMessage>();
for(Contact con : contact)
{
Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
email.setTargetObjectId(con.Id);
email.setWhatId(accountId);
email.setSaveAsActivity(true);
mails.add(email);
}
if(mails.size()>0)
{
Messaging.SendEmailResult [] r = Messaging.sendEmail(mails);
}
When emails are sent, it will create Task record in contact. I have trigger on Task Object to update field in account. When 100 task records are getting created, it is calling SOQL query in my below trigger 100 times. Please advice if my trigger is bulkified or is there any issue in Email sending code.
List<account> accountId = new List<ACcount();
List<Task> triggerTask = Trigger.new != null ? Trigger.new : Trigger.old;
for (Task task: triggerTask){
String accountId = task.WhatId;
if(task.Status =='Completed' && task.Isclosed==true && task.IsRecurrence == false && accountId !=null){
accountId.add(task.whatId);
}
}
if(accountId.size()>0){
List<accountId> accountList = [SELECT Id, (SELECT Id FROM Tasks where Status='Completed' and Isclosed=true and IsRecurrence = false) FROM Account WHERE Id IN :accountId];
for(Account acc:accountList) {
if(acc.Tasks != null) {
acc.Activities__c= acc.Tasks.size();
}
}
if(accountList.size()>0){
update accountList;
}
}
List<Messaging.SingleEmailMessage> mails = new List<Messaging.SingleEmailMessage>();
for(Contact con : contact)
{
Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
email.setTargetObjectId(con.Id);
email.setWhatId(accountId);
email.setSaveAsActivity(true);
mails.add(email);
}
if(mails.size()>0)
{
Messaging.SendEmailResult [] r = Messaging.sendEmail(mails);
}
Is it in a trigger as this doesn't seem to be bulkified...
any news on this issue. Seems like a bug.