• Prashant Kumar 438
  • NEWBIE
  • 10 Points
  • Member since 2020

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 3
    Questions
  • 1
    Replies
trigger InterviewTrigger on Interview__c (before insert, before Update, after update, after insert, after delete, after undelete, before delete) {
  if(Trigger.isAfter  && Trigger.isUpdate){
       InterviewSlotsTriggerHandler.sendColdFeetEmail(Trigger.oldMap, Trigger.newMap);
  }
}


// Handler class

public class InterviewSlotsTriggerHandler {

   public static void sendColdFeetEmail(Map<Id, Interview__c> oldIntMap, Map<Id, Interview__c> newIntMap){
        
        EmailTemplate emailTemp = [SELECT Id, Subject, Description, HtmlValue, DeveloperName, Body FROM EmailTemplate 
                                   WHERE Name = 'Cold Feet' LIMIT 1];   
        
        for(Interview__c inter : newIntMap.Values()){
            
            Interview__c oldInt = oldIntMap.get(inter.Id);
            if( (inter.Interviewee_didn_t_join__c == true) && (oldInt.Interviewee_didn_t_join__c == false) ){
                
                Messaging.SingleEmailMessage message = new Messaging.SingleEmailMessage(); 
                message.setTargetObjectId(inter.Application__r.Candidate__r.id);
                message.setUseSignature(false); 
                message.setBccSender(false); 
                message.setSaveAsActivity(false); 
                message.setWhatId(inter.Id);
                message.setTemplateID(emailTemp.Id);
                message.toAddresses = new String[] { inter.Candidate_Email__c};
                    System.debug('toAddresses '+message.toAddresses);
                Messaging.SingleEmailMessage[] messages = new List<Messaging.SingleEmailMessage> {message};
                    Messaging.SendEmailResult[] results = Messaging.sendEmail(messages);
                System.debug('results '+results);
                if (results[0].success) 
                {
                    System.debug('The email was sent successfully.');
                } else {
                    System.debug('The email failed to send: ' +  results[0].errors[0].message);
                }
            }
        } 
    } 



}

This Error I'm getting :    REQUIRED_FIELD_MISSING, Missing targetObjectId with template: []

Thanks in advance.
 public static void updateDateTime(List<Interview__c> interList){
        Set<Id> slotId = new Set<Id>();
        for(Interview__c inter : interList)
        {
            slotId.add(inter.Interviewer_Slot__c);
        }
        
        
        System.debug(slotId);        
        Map<Id,Interviewer_Slot__c> intMap = new Map<Id,Interviewer_Slot__c>([SELECT Date__c, Start_Time__c FROM Interviewer_Slot__c WHERE
                                                                              id in: slotId]);
        for(Interview__c inter : interList)
        {
            Date dd = intMap.get(inter.Interviewer_Slot__c).Date__c;
            Time tt = intMap.get(inter.Interviewer_Slot__c).Start_Time__c;
            DateTime dt = Datetime.newInstance(dd, tt);
            inter.Interview_Date_and_Time__c = dt;
            System.debug(inter);
        }
    }
System.DmlException: Insert failed. First exception on row 0; first error: FIELD_CUSTOM_VALIDATION_EXCEPTION, Choose Appropriate Date/Time: [Interview_Date_and_Time__c]

@isTest(seeALLData = true)
public class InterviewerSlotBatch_TestClass {
    @isTest
    public static void InterviewerSlotBatch_TestMethod(){
        
        List<Contact> conList = [SELECT Id, Name, Interviewer__c FROM Contact];
        List<Interviewer_Slot__c> slots = new List<Interviewer_Slot__c>();
        
        Interviewer_Slot__c intSlot = new Interviewer_Slot__c(Date__c = Date.today(), Start_Time__c = Time.newInstance(3, 14, 15, 926), End_Time__c 
                                                              = Time.newInstance(4, 0, 0, 926), Contact__c = conList[0].Id);
        
        
        slots.add(intSlot);
        insert slots;
        test.startTest();
        InterviewerSlotBatch InterviewerSlotBatch_TestClass = new InterviewerSlotBatch();
        Database.executeBatch(InterviewerSlotBatch_TestClass);
        test.stopTest();
    }
}
trigger InterviewTrigger on Interview__c (before insert, before Update, after update, after insert, after delete, after undelete, before delete) {
  if(Trigger.isAfter  && Trigger.isUpdate){
       InterviewSlotsTriggerHandler.sendColdFeetEmail(Trigger.oldMap, Trigger.newMap);
  }
}


// Handler class

public class InterviewSlotsTriggerHandler {

   public static void sendColdFeetEmail(Map<Id, Interview__c> oldIntMap, Map<Id, Interview__c> newIntMap){
        
        EmailTemplate emailTemp = [SELECT Id, Subject, Description, HtmlValue, DeveloperName, Body FROM EmailTemplate 
                                   WHERE Name = 'Cold Feet' LIMIT 1];   
        
        for(Interview__c inter : newIntMap.Values()){
            
            Interview__c oldInt = oldIntMap.get(inter.Id);
            if( (inter.Interviewee_didn_t_join__c == true) && (oldInt.Interviewee_didn_t_join__c == false) ){
                
                Messaging.SingleEmailMessage message = new Messaging.SingleEmailMessage(); 
                message.setTargetObjectId(inter.Application__r.Candidate__r.id);
                message.setUseSignature(false); 
                message.setBccSender(false); 
                message.setSaveAsActivity(false); 
                message.setWhatId(inter.Id);
                message.setTemplateID(emailTemp.Id);
                message.toAddresses = new String[] { inter.Candidate_Email__c};
                    System.debug('toAddresses '+message.toAddresses);
                Messaging.SingleEmailMessage[] messages = new List<Messaging.SingleEmailMessage> {message};
                    Messaging.SendEmailResult[] results = Messaging.sendEmail(messages);
                System.debug('results '+results);
                if (results[0].success) 
                {
                    System.debug('The email was sent successfully.');
                } else {
                    System.debug('The email failed to send: ' +  results[0].errors[0].message);
                }
            }
        } 
    } 



}

This Error I'm getting :    REQUIRED_FIELD_MISSING, Missing targetObjectId with template: []

Thanks in advance.