• Adil Shaik (HYD)
  • NEWBIE
  • 10 Points
  • Member since 2021

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 2
    Questions
  • 1
    Replies
trigger AccountEmail on Account (before insert, before Update) {
    for(Account acc : trigger.new){
        List<user> lstuser = [Select id, email from user];
        Map<id, string> MapUserIdEmail = new Map<id, string>();
        if(Acc.adilshaik__Email_Status__c == 'Send Email' && acc.adilshaik__User__c != null){
            acc.adilshaik__Email_Status__c = 'Success';
       
                Messaging.SingleEmailMessage message  = new Messaging.SingleEmailMessage();
                List<string> toaddress = new List<string>();
                toAddress.add(MapUserIdEmail.get(acc.adilshaik__User__c));
                message.setSubject('Email Check');
                message.setToAddresses(toAddress);
                message.setHtmlBody('Body of the Message'); 
                Messaging.SingleEmailMessage[] messages = new List<Messaging.SingleEmailMessage> {message};
                    Messaging.SendEmailResult[] results = Messaging.sendEmail(messages);
                if (results[0].success) {
                    System.debug('The email was sent successfully.');
                    
                } else {
                    System.debug('The email failed to send: '
                                 + results[0].errors[0].message);
                }  
              
        }  
    }
}
======================================
Here is my Test Class
trigger AccountEmail on Account (before insert, before Update) {
    for(Account acc : trigger.new){
        List<user> lstuser = [Select id, email from user];
        Map<id, string> MapUserIdEmail = new Map<id, string>();
        if(Acc.adilshaik__Email_Status__c == 'Send Email' && acc.adilshaik__User__c != null){
            acc.adilshaik__Email_Status__c = 'Success';
       
                Messaging.SingleEmailMessage message  = new Messaging.SingleEmailMessage();
                List<string> toaddress = new List<string>();
                toAddress.add(MapUserIdEmail.get(acc.adilshaik__User__c));
                message.setSubject('Email Check');
                message.setToAddresses(toAddress);
                message.setHtmlBody('Body of the Message'); 
                Messaging.SingleEmailMessage[] messages = new List<Messaging.SingleEmailMessage> {message};
                    Messaging.SendEmailResult[] results = Messaging.sendEmail(messages);
                if (results[0].success) {
                    System.debug('The email was sent successfully.');
                    
                } else {
                    System.debug('The email failed to send: '
                                 + results[0].errors[0].message);
                }  
              
        }  
    }
}
trigger PositionTrigger on Position__c (before insert,before update, before delete) {
    if(trigger.isBefore && (trigger.isInsert || trigger.isUpdate)){
        PositionTrigger_Handler.RecordTypeUpdate(Trigger.New);
    }
}
=============
public class PositionTrigger_Handler {
    Public Static void RecordTypeUpdate(List<Position__c> lstpos){
        Map<string,id> MappingRec = new Map<string, id>();
        List<RecordType> lstRec = [Select id, Developername from RecordType where SObjectType = 'Position__c'];
        for(RecordType rec: lstRec){
            MappingRec.put(rec.DeveloperName, rec.Id);
        }
        for(Position__c pos : lstpos){
            if(pos.Phase__c == 'Phase 1'){
                pos.RecordTypeId = MappingRec.get('Phase_1');
            }
            if(pos.Phase__c == 'Phase 2'){
                pos.RecordTypeId = MappingRec.get('Phase_2');
            }
            if(pos.Phase__c == 'Phase 3'){
                pos.RecordTypeId = MappingRec.get('Phase_3');
            }
        }
    }
}
=============================
@isTest
public class PositionTrigger_Handler_Test {
    
    Static testmethod void TestTrigger (){
        List<Position__c> lstpos = New List<Position__c> ();
        try{
            Position__C pos1 = New Position__C(Name='Test1', Amount__c=500, Phase__c='Phase 1');
            Position__C pos2 = New Position__C(Name='Test2', Amount__c=500, Phase__c='Phase 2');
            Position__C pos3 = New Position__C(Name='Test3', Amount__c=500, Phase__c='Phase 3');
            lstpos.add(pos1);
            lstpos.add(pos2);
            lstpos.add(pos3);
            insert lstpos;   
        }
        catch(DmlException e){
            system.debug('the following exception has occured: '+e.getMessage());
        }
        
    }
}
Hi,
Below is my code for the trigger for  duplicate prevention on the account . It works well, but if I have 50k records this impacts scalability and not feasible.
So please any one can help to code in better way.
thanks in advance.
trigger AccountDuplicate on Account (before insert) {
 List<Account> dup = new List<Account>();
 dup = [Select id, Name from Account];
 for(Account a:Trigger.New){
 for(Account a1:dup){
 if(a.Name==a1.Name){
 a.Name.addError('Name already Exist ');
 }
 }
 }   
 }