You need to sign in to do that
Don't have an account?
sumit d
Trigger to populate case field from custom metadata type
Hi All,
I have a trigger in which i want to populate Case field(Email_team__c) using metadata (Team_Setup__mdt) field(Team__c).
my trigger helper is given below:-
public without sharing class CaseTriggerHelper {
public static List<Case> newCases = new List<Case>();
public static List<Case> oldCases = new List<Case>();
public static Map<Id, Case> newMapCases = new Map<Id, Case>();
public static Map<Id, Case> oldMapCases = new Map<Id, Case>();
Public static void caseEmailTeamInsertion(){
Map<String, List<Team_Setup__mdt>> teamSetupMetadataMap = new Map<String, List<Team_Setup__mdt>>();
List<Team_Setup__mdt> teamSetupMetadata = new List<Team_Setup__mdt>([SELECT Id, Product__c,Queue__c,
Record_Type__c,Team__c
FROM Team_Setup__mdt
]);
List<Case> CaseListToInsert = new List<Case>();
if(teamSetupMetadata != Null && teamSetupMetadata.size() > 0){
for(team_Setup__mdt ts : teamSetupMetadata){
String stRecordType = ts.Record_Type__c.substringBefore(',');
List<Team_Setup__mdt> tsList = new List<Team_Setup__mdt>([SELECT Id, Product__c,Queue__c,
Record_Type__c,Team__c
FROM Team_Setup__mdt
WHERE Record_Type__c =: ts.Record_Type__c
]);
teamSetupMetadataMap.put(stRecordType, tsList);
}
}
System.debug('*'+teamSetupMetadataMap);
if(teamSetupMetadataMap != Null && teamSetupMetadataMap.size() >0){
for(Case caseObj : newCases){
System.debug('*' +teamSetupMetadataMap.containsKey(caseObj.RecordType.DeveloperName));
if(caseObj.RecordType.DeveloperName != Null &&
teamSetupMetadataMap.containsKey(caseObj.RecordType.DeveloperName)){
List<Team_Setup__mdt> tm = teamSetupMetadataMap.get(caseObj.RecordType.DeveloperName);
For( Integer TeamMetadata = 0; TeamMetadata <= tm.Size(); TeamMetadata++ ){
if(caseObj.Product__c == tm[TeamMetadata].Product__c){
caseObj.Email_Team__c = tm[TeamMetadata].Team__c;
CaseListToInsert.add(caseObj);
System.debug('*'+caseObj.Email_Team__c);
}
}
}
}
if(CaseListToInsert.Size() > 0){
insert CaseListToInsert;
}
}
}
}
the case field is not populating.Can anyone help me with this?
I have a trigger in which i want to populate Case field(Email_team__c) using metadata (Team_Setup__mdt) field(Team__c).
my trigger helper is given below:-
public without sharing class CaseTriggerHelper {
public static List<Case> newCases = new List<Case>();
public static List<Case> oldCases = new List<Case>();
public static Map<Id, Case> newMapCases = new Map<Id, Case>();
public static Map<Id, Case> oldMapCases = new Map<Id, Case>();
Public static void caseEmailTeamInsertion(){
Map<String, List<Team_Setup__mdt>> teamSetupMetadataMap = new Map<String, List<Team_Setup__mdt>>();
List<Team_Setup__mdt> teamSetupMetadata = new List<Team_Setup__mdt>([SELECT Id, Product__c,Queue__c,
Record_Type__c,Team__c
FROM Team_Setup__mdt
]);
List<Case> CaseListToInsert = new List<Case>();
if(teamSetupMetadata != Null && teamSetupMetadata.size() > 0){
for(team_Setup__mdt ts : teamSetupMetadata){
String stRecordType = ts.Record_Type__c.substringBefore(',');
List<Team_Setup__mdt> tsList = new List<Team_Setup__mdt>([SELECT Id, Product__c,Queue__c,
Record_Type__c,Team__c
FROM Team_Setup__mdt
WHERE Record_Type__c =: ts.Record_Type__c
]);
teamSetupMetadataMap.put(stRecordType, tsList);
}
}
System.debug('*'+teamSetupMetadataMap);
if(teamSetupMetadataMap != Null && teamSetupMetadataMap.size() >0){
for(Case caseObj : newCases){
System.debug('*' +teamSetupMetadataMap.containsKey(caseObj.RecordType.DeveloperName));
if(caseObj.RecordType.DeveloperName != Null &&
teamSetupMetadataMap.containsKey(caseObj.RecordType.DeveloperName)){
List<Team_Setup__mdt> tm = teamSetupMetadataMap.get(caseObj.RecordType.DeveloperName);
For( Integer TeamMetadata = 0; TeamMetadata <= tm.Size(); TeamMetadata++ ){
if(caseObj.Product__c == tm[TeamMetadata].Product__c){
caseObj.Email_Team__c = tm[TeamMetadata].Team__c;
CaseListToInsert.add(caseObj);
System.debug('*'+caseObj.Email_Team__c);
}
}
}
}
if(CaseListToInsert.Size() > 0){
insert CaseListToInsert;
}
}
}
}
the case field is not populating.Can anyone help me with this?