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

System.DmlException: Update failed. First exception on row 0; first error: MISSING_ARGUMENT, Id not specified in an update call: []:
Hi all,
I am trying to invoke Lead assignment rule when ever certain criteria meets the trigger should fire.
But I am getting the following error : execution of AfterInsert caused by: System.DmlException: Update failed. First exception on row 0; first error: MISSING_ARGUMENT, Id not specified in an update call: []:
Can anyone guide me where I am donig wrong.Thanks in advance.
My Trigger:
trigger LeadAssignment on Lead (After insert,After update) {
List<Lead> updateLeads = new List<Lead>();
Lead newLead = new Lead();
for(Lead l : trigger.new)
{
if(l.Status == '01-New' || l.Status == '50-Qualified')
{
AssignmentRule AR = new AssignmentRule();
AR = [select id from AssignmentRule where SobjectType = 'Lead' and Active = true limit 1];
Database.DMLOptions dmlOpts = new Database.DMLOptions();
dmlOpts.assignmentRuleHeader.assignmentRuleId= AR.id;
system.debug('dmlOpts***********'+dmlOpts);
newLead.setOptions(dmlOpts);
// updateLeads.add(newLead);
}
}
update newLead;
system.debug('updateLeads************'+newLead);
}
I am trying to invoke Lead assignment rule when ever certain criteria meets the trigger should fire.
But I am getting the following error : execution of AfterInsert caused by: System.DmlException: Update failed. First exception on row 0; first error: MISSING_ARGUMENT, Id not specified in an update call: []:
Can anyone guide me where I am donig wrong.Thanks in advance.
My Trigger:
trigger LeadAssignment on Lead (After insert,After update) {
List<Lead> updateLeads = new List<Lead>();
Lead newLead = new Lead();
for(Lead l : trigger.new)
{
if(l.Status == '01-New' || l.Status == '50-Qualified')
{
AssignmentRule AR = new AssignmentRule();
AR = [select id from AssignmentRule where SobjectType = 'Lead' and Active = true limit 1];
Database.DMLOptions dmlOpts = new Database.DMLOptions();
dmlOpts.assignmentRuleHeader.assignmentRuleId= AR.id;
system.debug('dmlOpts***********'+dmlOpts);
newLead.setOptions(dmlOpts);
// updateLeads.add(newLead);
}
}
update newLead;
system.debug('updateLeads************'+newLead);
}
Try the below trigger:
trigger LeadAssignment on Lead (After insert,After update) {
List<Lead> updateLeads = new List<Lead>();
for(Lead l : trigger.new)
{
if(l.Status == '01-New' || l.Status == '50-Qualified')
{
updateLeads.add(new Lead(id = l.Id));
}
}
if(!updateLeads.IsEmpty())
{
AssignmentRule AR = [select id from AssignmentRule where SobjectType = 'Lead' and Active = true limit 1];
Database.DMLOptions dmlOpts = new Database.DMLOptions();
dmlOpts.assignmentRuleHeader.assignmentRuleId= AR.id;
Database.update(updateLeads, dmlOpts);
}
}
Thanks,
Maharajan.C