我收到这个错误,两个联系人的合并无法工作。感谢您的帮助。
以下是我在日志中收到的一个错误:"23:10:48:243 EXCEPTION_TROWN[14]| System.DmlException:更新失败。id为a0A1a0000095ZDxEAM的行0上的第一个异常;第一个错误:ENTITY_is_DELETED,实体已删除:[]"
这是我的合并类(自定义字段是联系人查找):
public class BatchMerge implements Database.Batchable<sObject> {
public Database.QueryLocator start(Database.BatchableContext context) {
return Database.getQueryLocator([SELECT Contact_to_Merge_Into__c, Contact__c FROM Contact_Merge_Record__c]);
}
public void execute(Database.BatchableContext context, Contact_Merge_Record__c[] records) {
for(Contact_Merge_Record__c record: records) {
try {
Database.merge(new Contact(Id=record.Contact_to_Merge_Into__c), record.Contact__c);
record.Merge_Status__c = 'Success';
} catch(exception e) {
record.Merge_Status__c = 'Failed';
}
}
update records;
}
public void finish(Database.BatchableContext context) {
}
}
当您调用Database.merge(new Contact(Id=record.Contact_to_Merge_Into__c), record.Contact__c);
时,您的record
对象将被合并并删除。然后,您尝试通过执行record.Merge_Status__c = 'Success';
来更新其状态。显然,如果对象已被删除,则不能更改其字段。