function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Sindhu BandariSindhu Bandari 

how to give a condition for inserting a record when case is created with certain record type

Hi, I  need to create a record on a custom object when the new case is created with record type  ombuds_record_type, I wrote the below code for insert trigger, I am getting below error
KSU_Ombuds_Snapshot: execution of AfterInsert caused by: System.NullPointerException: Attempt to de-reference a null object ()
can anyone help.
thanks in advance 

public  class KSU_Ombuds_Snapshot_Class {


public static void getContactSnapshot( List<Case> cas ) {
    
    {
       Set <id> cases =new set<id> ();
       for (case caseid : cas)
           
            if(caseid.RecordTypeId == Schema.SObjectType.Case.getRecordTypeInfosByName().get('Ombuds_Record_Type').getRecordTypeId())
                {
               {
                    cases.add(caseid.ContactId);
       
               }
             
               }
        System.debug('joke ' +cases);
       
       // get contact values given contactId, create a contact to hold
       List<Contact> con = [SELECT Id, KSU_CumulativeGPA__c, AccountId, KSU_FinancialAid__c, 
                                 KSU_AccountBalance__c, KSU_EnrollmentStatus__c, KSU_StudentType__c,
                                 KSU_CumulativeHours__c, KSU_Level__c, KSU_Current_Academic_Standing__c
                      FROM contact 
                      WHERE Id in : cases];
    List<KSU_Ombuds_Snapshot__c> snapshotrecords = New List<KSU_Ombuds_Snapshot__c>() ;
     
        For(Case ombudcase : cas)  
        {
            For(Contact ombudscon :Con)
            {
        
       
       // create a new instance of the Snapshot object
              KSU_Ombuds_Snapshot__c cs = new KSU_Ombuds_Snapshot__c();
       
       // Associate Contact, Account and Case to Snapshot object
               cs.Name = 'Case Snapshot';
               cs.KSU_Snapshot_Account__c = ombudscon.accountId;
               cs.KSU_Snapshot_Contact__c = ombudscon.Id;
               cs.KSU_OmbSnap_Case__c = ombudcase.Id;
               cs.KSU_Snapshot_Cum_GPA__c = ombudscon.KSU_CumulativeGPA__c;
               cs.KSU_Snapshot_FinancialAid__c = ombudscon.KSU_FinancialAid__c;
               cs.KSU_Snapshot_AccountBalance__c = ombudscon.KSU_AccountBalance__c;
               cs.KSU_Snapshot_EnrollmentStatus__c = ombudscon.KSU_EnrollmentStatus__c;
               cs.KSU_Snapshot_StudentType__c = ombudscon.KSU_StudentType__c;
               cs.KSU_Snapshot_CumulativeHours__c = ombudscon.KSU_CumulativeHours__c;
               cs.KSU_Snapshot_Level__c = ombudscon.KSU_Level__c;
               cs.KSU_Snapshot_Current_Academic_Standing__c = ombudscon.KSU_Current_Academic_Standing__c;
        snapshotrecords.add(cs);        
                
            }}
       try{
                
                Insert  snapshotrecords;
            
        }
        catch(DMLException e){
            System.debug('Exception on class: KSU_Ombuds_Snapshot_Class, method: getContactSnapshot, getLineNumber Error : '+e);
        }
       
      
       
    
   } 
}
}
Raj VakatiRaj Vakati
Can you please let me know whihc line your getting error ?


I am thining this Record type Id is thoughing error  .. Go to developer console and execute this link in System .debug to see the value 
 
System.debug('--->'+Schema.SObjectType.Case.getRecordTypeInfosByName().get('Ombuds_Record_Type').getRecordTypeId()))
 
public  class KSU_Ombuds_Snapshot_Class {


public static void getContactSnapshot( List<Case> cas ) {


Set <id> cases =new set<id> ();
for (case caseid : cas)


	if(caseid.RecordTypeId == Schema.SObjectType.Case.getRecordTypeInfosByName().get('Ombuds_Record_Type').getRecordTypeId())
		{
	   {
			cases.add(caseid.ContactId);

	   }
	 
	   }
System.debug('joke ' +cases);

// get contact values given contactId, create a contact to hold
List<Contact> con = [SELECT Id, KSU_CumulativeGPA__c, AccountId, KSU_FinancialAid__c, 
						 KSU_AccountBalance__c, KSU_EnrollmentStatus__c, KSU_StudentType__c,
						 KSU_CumulativeHours__c, KSU_Level__c, KSU_Current_Academic_Standing__c
			  FROM contact 
			  WHERE Id in : cases];
List<KSU_Ombuds_Snapshot__c> snapshotrecords = New List<KSU_Ombuds_Snapshot__c>() ;

For(Case ombudcase : cas)  
{
	For(Contact ombudscon :Con)
	{


// create a new instance of the Snapshot object
	  KSU_Ombuds_Snapshot__c cs = new KSU_Ombuds_Snapshot__c();

// Associate Contact, Account and Case to Snapshot object
	   cs.Name = 'Case Snapshot';
	   cs.KSU_Snapshot_Account__c = ombudscon.accountId;
	   cs.KSU_Snapshot_Contact__c = ombudscon.Id;
	   cs.KSU_OmbSnap_Case__c = ombudcase.Id;
	   cs.KSU_Snapshot_Cum_GPA__c = ombudscon.KSU_CumulativeGPA__c;
	   cs.KSU_Snapshot_FinancialAid__c = ombudscon.KSU_FinancialAid__c;
	   cs.KSU_Snapshot_AccountBalance__c = ombudscon.KSU_AccountBalance__c;
	   cs.KSU_Snapshot_EnrollmentStatus__c = ombudscon.KSU_EnrollmentStatus__c;
	   cs.KSU_Snapshot_StudentType__c = ombudscon.KSU_StudentType__c;
	   cs.KSU_Snapshot_CumulativeHours__c = ombudscon.KSU_CumulativeHours__c;
	   cs.KSU_Snapshot_Level__c = ombudscon.KSU_Level__c;
	   cs.KSU_Snapshot_Current_Academic_Standing__c = ombudscon.KSU_Current_Academic_Standing__c;
snapshotrecords.add(cs);        
		
	}
	}
try{
		if(snapshotrecords.size()>0){
		Insert  snapshotrecords;
		}
	
}
catch(DMLException e){
	System.debug('Exception on class: KSU_Ombuds_Snapshot_Class, method: getContactSnapshot, getLineNumber Error : '+e);
}





}
}