Profile__c 레코드를 복제하려고합니다. 리드에는 프로필 __c이 (가) 연관되어 있습니다. 전환이 발생하면 리드의 Profile_c가 생성 된 계정에 복사됩니다. 필자가해야 할 일은 변환 후에 생성 된 새 계정에서 Profile__c의 깊은 복제입니다. profile_c를 복사 할 수 있지만 복제에서이 오류가 발생합니다.Salesforce Lead Trigger CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY
오류 : System.DmlException : 업데이트하지 못했습니다. ID가 00QJ0000007dDmHMAU 인 행 0에 대한 첫 번째 예외. 첫 번째 오류 : 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
}
여기에서 문제는 Profile__c 레코드를 복제하려고합니다. . 리드에는 프로필 __c이 (가) 연결되어 있으므로 계정도 연결됩니다. 전환이 발생하면 리드의 Profile_c가 생성 된 계정에 복사됩니다. 내가해야 할 일은 전환 후 계정의 Profile__c에있는 모든 필드를 복제하는 것입니다. –
가능합니다. 트리거를 사용하여 리드 변환 후 Profile__c 레코드를 가져온 다음 모든 필드를 계정에 복사하고 해당 계정을 업데이트 할 수 있습니다. – Promila
필드를 필드에 복사하지 않습니다. 저는 프로필 __c을 리드에 계정을 변환 한 후 연결하는 것입니다. 즉, profile__c는 리드 및 계정 개체에 대한 관련 목록입니다. 전환 후 이미 리드와 연결된 프로필 __c을 복제하고 두 계정을 계정과 연결하려고합니다. –