You need to sign in to do that
Don't have an account?
soumya 1
FATAL_ERROR System.TypeException: Invalid conversion from runtime type Contact to RES_Application__c
In TriggerHandler i am getting 'FATAL_ERROR System.TypeException: Invalid conversion from runtime type Contact to REO_Application__c'
line number 15
REO_Application__c reo = (REO_Application__c)application;
Trigger:
trigger REOApplicationTrigger on REO_Application__c (before insert, before update, after update) {
new REOApplicationTriggerHandler().run();
}
TriggerHandler :
public without sharing class REOApplicationTriggerHandler extends TriggerHandler {
public REOApplicationTriggerHandler() {}
override public void beforeInsert() {
List<REO_Application__c> REOsToCreateContact = new List<REO_Application__c>();
for(REO_Application__c reo : (List<REO_Application__c>)Trigger.new) {
if(reo.Applicant_Contact__c == null) {
REOsToCreateContact.add(reo);
}
}
if(!REOsToCreateContact.isEmpty()) {
Map<SObject, Id> applicationContactIds = Utility.createContact(REOsToCreateContact, Utility.getContactFieldMapping('REO'));
if(applicationContactIds != null) {
for(SObject application : applicationContactIds.keySet()) {
REO_Application__c reo = (REO_Application__c)application;
reo.Applicant_Contact__c = applicationContactIds.get(reo);
}
}
}
}
Utility: getContactFieldMapping
public static Map<String, String> getContactFieldMapping(String objType) {
Map<String, String> fieldMap = new Map<String, String>();
switch on objType {
when 'REO' {
fieldMap.put('Applicant_Last_Name__c', 'LastName');
fieldMap.put('Applicant_Country__c', 'MailingCountry');
fieldMap.put('Applicant_Postal_Code__c', 'MailingPostalCode');
fieldMap.put('Applicant_Street__c', 'MailingStreet');
fieldMap.put('Applicant_Mobile__c', 'MobilePhone');
fieldMap.put('Applicant_NRIC_FIN__c', 'NRIC_FIN__c');
fieldMap.put('Applicant_Phone__c', 'Phone');
fieldMap.put('Date_of_Birth__c', 'Birthdate');
fieldMap.put('Gender__c', 'Gender__c');
fieldmap.put('Applicant_Nationality__c', 'Nationality__c');
fieldMap.put('Work_Permit_Expiry_Date__c', 'Work_Permit_Expiry_Date__c');
fieldMap.put('Work_Permit_Number__c', 'Work_Permit_Number__c');
}
when 'RES' {
fieldMap.put('Applicant_Last_Name__c', 'LastName');
fieldMap.put('Applicant_Country__c', 'MailingCountry');
fieldMap.put('Applicant_Postal_Code__c', 'MailingPostalCode');
fieldMap.put('Applicant_Street__c', 'MailingStreet');
fieldMap.put('Applicant_Mobile__c', 'MobilePhone');
fieldMap.put('Applicant_NRIC_FIN__c', 'NRIC_FIN__c');
fieldMap.put('Applicant_Phone__c', 'Phone');
fieldMap.put('Date_of_Birth__c', 'Birthdate');
fieldMap.put('Gender__c', 'Gender__c');
fieldmap.put('Applicant_Nationality__c', 'Nationality__c');
fieldMap.put('Work_Permit_Expiry_Date__c', 'Work_Permit_Expiry_Date__c');
fieldMap.put('Work_Permit_Number__c', 'Work_Permit_Number__c');
}
when else {
return null;
}
}
return fieldMap;
}
line number 15
REO_Application__c reo = (REO_Application__c)application;
Trigger:
trigger REOApplicationTrigger on REO_Application__c (before insert, before update, after update) {
new REOApplicationTriggerHandler().run();
}
TriggerHandler :
public without sharing class REOApplicationTriggerHandler extends TriggerHandler {
public REOApplicationTriggerHandler() {}
override public void beforeInsert() {
List<REO_Application__c> REOsToCreateContact = new List<REO_Application__c>();
for(REO_Application__c reo : (List<REO_Application__c>)Trigger.new) {
if(reo.Applicant_Contact__c == null) {
REOsToCreateContact.add(reo);
}
}
if(!REOsToCreateContact.isEmpty()) {
Map<SObject, Id> applicationContactIds = Utility.createContact(REOsToCreateContact, Utility.getContactFieldMapping('REO'));
if(applicationContactIds != null) {
for(SObject application : applicationContactIds.keySet()) {
REO_Application__c reo = (REO_Application__c)application;
reo.Applicant_Contact__c = applicationContactIds.get(reo);
}
}
}
}
Utility: getContactFieldMapping
public static Map<String, String> getContactFieldMapping(String objType) {
Map<String, String> fieldMap = new Map<String, String>();
switch on objType {
when 'REO' {
fieldMap.put('Applicant_Last_Name__c', 'LastName');
fieldMap.put('Applicant_Country__c', 'MailingCountry');
fieldMap.put('Applicant_Postal_Code__c', 'MailingPostalCode');
fieldMap.put('Applicant_Street__c', 'MailingStreet');
fieldMap.put('Applicant_Mobile__c', 'MobilePhone');
fieldMap.put('Applicant_NRIC_FIN__c', 'NRIC_FIN__c');
fieldMap.put('Applicant_Phone__c', 'Phone');
fieldMap.put('Date_of_Birth__c', 'Birthdate');
fieldMap.put('Gender__c', 'Gender__c');
fieldmap.put('Applicant_Nationality__c', 'Nationality__c');
fieldMap.put('Work_Permit_Expiry_Date__c', 'Work_Permit_Expiry_Date__c');
fieldMap.put('Work_Permit_Number__c', 'Work_Permit_Number__c');
}
when 'RES' {
fieldMap.put('Applicant_Last_Name__c', 'LastName');
fieldMap.put('Applicant_Country__c', 'MailingCountry');
fieldMap.put('Applicant_Postal_Code__c', 'MailingPostalCode');
fieldMap.put('Applicant_Street__c', 'MailingStreet');
fieldMap.put('Applicant_Mobile__c', 'MobilePhone');
fieldMap.put('Applicant_NRIC_FIN__c', 'NRIC_FIN__c');
fieldMap.put('Applicant_Phone__c', 'Phone');
fieldMap.put('Date_of_Birth__c', 'Birthdate');
fieldMap.put('Gender__c', 'Gender__c');
fieldmap.put('Applicant_Nationality__c', 'Nationality__c');
fieldMap.put('Work_Permit_Expiry_Date__c', 'Work_Permit_Expiry_Date__c');
fieldMap.put('Work_Permit_Number__c', 'Work_Permit_Number__c');
}
when else {
return null;
}
}
return fieldMap;
}
Weston Connor
Hi, Have you found the solution of it? Kindly if you have found any solution so share with us. We are also facing the same issue on long range airsoft sniper (https://sniperpedia.com/best-long-range-airsoft-sniper-rifle/). Due to these issue I can't update anything. I searched on Google, Youtube, Reddit. But haven't found the solution of it. I will be thankfull if you share the solution or fixing method with us.