Я хочу клонировать запись Profile__c. Лид имеет связанный с ним profile__c. Когда происходит конвертация, Profile_c лида копируется в созданную учетную запись. Мне нужно сделать глубокий клон Profile__c в новой учетной записи, созданной после преобразования. Я могу скопировать profile_c, но клонирование вызывает эту ошибку:
Ошибка: System.DmlException: не удалось выполнить обновление. Первое исключение в строке 0 с идентификатором 00QJ0000007dDmHMAU; первая ошибка: CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY, профиль: выполнение AfterUpdate, вызванное: System.DmlException: Ошибка вставки. Первое исключение в строке 0; первая ошибка: CANNOT_UPDATE_CONVERTED_LEAD, не может ссылаться на преобразованный интерес: [] Trigger.profile :, столбец 1: [] (системный код)
trigger profile on Lead (after update) {
Map<Id, Lead> cl = new Map<Id,Lead>();
Lead parent;
List<Contact> clist = new List<Contact>();
Set<Id> convertedids = new Set<Id>();
//list of converted leads
for (Lead t:Trigger.new){
Lead ol = Trigger.oldMap.get(t.ID);
if(t.IsConverted == true && ol.isConverted == false)
{
cl.put(t.Id, t);
convertedids.add(t.ConvertedContactId);
}
}
Set<Id> leadIds = cl.keySet();
List<Profile__c> mp = [select Id, lock__c, RecordTypeId, reason__c, End_Date__c,startus__c , Opportunity__c, Account__c, Lead__c from Profile__c where Lead__c in :leadIds];
List<ID>AccountIDs = new List<ID>();
List<Profile__c>clonedList = new list<Profile__c>();
for (Profile__c mpi:mp){
parent = cl.get(mpi.Lead__c );
mpi.opportunity__c = parent.ConvertedOpportunityId;
mpi.account__c = parent.ConvertedAccountId;
AccountIDs.add(parent.ConvertedAccountId);
Profile__c profile = mpi.clone(false,true,false,false);
clonedList.add(profile);
mpi.lock__c= true;
mpi.reason__c= 'Converted';
}
update mp;
insert clonelist
}