Apex合并不起作用-实体已删除



我收到这个错误,两个联系人的合并无法工作。感谢您的帮助。

以下是我在日志中收到的一个错误:"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';来更新其状态。显然,如果对象已被删除,则不能更改其字段。

最新更新