• Needhelpforsandy
  • NEWBIE
  • 0 Points
  • Member since 2019

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 4
    Replies
Hi Team,
I am inserting the account records into the salesforce through another system.
for account record we have written code to generate the external ID of the records based on the i.e.First Name , Last Name and Primary Email.
if customer is inserting the same record with same 3 field values (i.e.First Name , Last Name and Primary Email) then these record should update the existing records only.
but now update operation is not working. only insert operation is working.
Kindly check below code of Handler Class:

=============Handler Class========Trigger EVENT : After Insert======
    
     public void Uniqueaccount(){
           
        list<Account> accToUpdate = new list<Account>(); 
        for(Account accountObj : newAccountList){
             
            Integer blankCount = 0;
            Account acc = accountObj.clone();
            acc.Id = accountObj.Id;
            if(!String.IsBlank(accountObj.FirstName)) {
                                          
                acc.SVC_ExternalCustomerId__c = accountObj.FirstName + '|';
            } else {  
               
                acc.SVC_ExternalCustomerId__c = '|';
                
                blankCount++;
            }            
            if(!String.IsBlank(accountObj.LastName )) {                
               
                acc.SVC_ExternalCustomerId__c = acc.SVC_ExternalCustomerId__c + accountObj.LastName + '|';
            } else {                
               
                acc.SVC_ExternalCustomerId__c = accountObj.SVC_ExternalCustomerId__c + '|';
                blankCount++;
            }            
            if(!String.IsBlank(accountObj.PersonEmail)){                
                
                acc.SVC_ExternalCustomerId__c = acc.SVC_ExternalCustomerId__c + accountObj.PersonEmail; 
            }
            else {                
                blankCount++;
            }   
           
            if(String.isNotBlank(accountObj.clearmdm__MDMStatus__c) &&
               accountObj.clearmdm__MDMStatus__c.equalsIgnoreCase('Merge Source')){                   
                  
                   acc.SVC_ExternalCustomerId__c = acc.SVC_ExternalCustomerId__c + '|' + accountObj.Id;
               }
            else if(blankCount > 0){
                acc.SVC_ExternalCustomerId__c = accountObj.SVC_ExternalCustomerId__c + '|' + accountObj.Id;
                acc.SVC_ExternalCustomerId__c = acc.SVC_ExternalCustomerId__c + '|' + accountObj.Id;
            }
            accToUpdate.add(acc);
            
        }
        try{
           
            update accToUpdate; 
            
        }
        Catch(DmlException e) {
            System.debug('An exception occurred:setCustomerUniqueKey** ' + e.getMessage());
        
        }
       
    }
Hi Team,
I am inserting the account records into the salesforce through another system.
for account record we have written code to generate the external ID of the records based on the i.e.First Name , Last Name and Primary Email.
if customer is inserting the same record with same 3 field values (i.e.First Name , Last Name and Primary Email) then these record should update the existing records only.
but now update operation is not working. only insert operation is working.
Kindly check below code of Handler Class:

=============Handler Class========Trigger EVENT : After Insert======
    
     public void Uniqueaccount(){
           
        list<Account> accToUpdate = new list<Account>(); 
        for(Account accountObj : newAccountList){
             
            Integer blankCount = 0;
            Account acc = accountObj.clone();
            acc.Id = accountObj.Id;
            if(!String.IsBlank(accountObj.FirstName)) {
                                          
                acc.SVC_ExternalCustomerId__c = accountObj.FirstName + '|';
            } else {  
               
                acc.SVC_ExternalCustomerId__c = '|';
                
                blankCount++;
            }            
            if(!String.IsBlank(accountObj.LastName )) {                
               
                acc.SVC_ExternalCustomerId__c = acc.SVC_ExternalCustomerId__c + accountObj.LastName + '|';
            } else {                
               
                acc.SVC_ExternalCustomerId__c = accountObj.SVC_ExternalCustomerId__c + '|';
                blankCount++;
            }            
            if(!String.IsBlank(accountObj.PersonEmail)){                
                
                acc.SVC_ExternalCustomerId__c = acc.SVC_ExternalCustomerId__c + accountObj.PersonEmail; 
            }
            else {                
                blankCount++;
            }   
           
            if(String.isNotBlank(accountObj.clearmdm__MDMStatus__c) &&
               accountObj.clearmdm__MDMStatus__c.equalsIgnoreCase('Merge Source')){                   
                  
                   acc.SVC_ExternalCustomerId__c = acc.SVC_ExternalCustomerId__c + '|' + accountObj.Id;
               }
            else if(blankCount > 0){
                acc.SVC_ExternalCustomerId__c = accountObj.SVC_ExternalCustomerId__c + '|' + accountObj.Id;
                acc.SVC_ExternalCustomerId__c = acc.SVC_ExternalCustomerId__c + '|' + accountObj.Id;
            }
            accToUpdate.add(acc);
            
        }
        try{
           
            update accToUpdate; 
            
        }
        Catch(DmlException e) {
            System.debug('An exception occurred:setCustomerUniqueKey** ' + e.getMessage());
        
        }
       
    }