You need to sign in to do that
Don't have an account?
Varun Annadata
Help with writing a trigger
My requirement for writing a trigger is there are two picklist fields and a textarea in case.So when a the two picklist fields have particular values i have to populate the description field with a premade text.so i am using custom metadata for this as the description can be changed however i want
the trigger i have written is:
trigger UpdateDescription on Case (before insert) {
String objOrigine;
String objOriginalDetail;
for(Case obj:trigger.new){
//Set<ID> setAccId = new Set<ID>();
if (obj.FrCCC_Origine_Defect_Location__c!= null && obj.FrCCC_Original_detail__c!=null)
{
objOrigine=obj.FrCCC_Origine_Defect_Location__c;
objOriginalDetail=obj.FrCCC_Original_detail__c;
}
List<FrCCC_Description_Text__mdt> CM=[select FrCCC_Description_Text_1__c from FrCCC_Description_Text__mdt where FrCCC_Detail_Origine__c='objOrigine' and FrCCC_OrigineDefectLocation__c ='objOriginalDetail'];
List<FrCCC_Description_Text__mdt> CM1=[select Description_Text_2__c from FrCCC_Description_Text__mdt where FrCCC_Detail_Origine__c='objOrigine' and FrCCC_OrigineDefectLocation__c ='objOriginalDetail'];
For(case s: CM)
{
s.Description=CM.get(0);
}
}
}
Is it correct approach.Please suggest anyother approach.i am having trouble in assigning a list to string.
the trigger i have written is:
trigger UpdateDescription on Case (before insert) {
String objOrigine;
String objOriginalDetail;
for(Case obj:trigger.new){
//Set<ID> setAccId = new Set<ID>();
if (obj.FrCCC_Origine_Defect_Location__c!= null && obj.FrCCC_Original_detail__c!=null)
{
objOrigine=obj.FrCCC_Origine_Defect_Location__c;
objOriginalDetail=obj.FrCCC_Original_detail__c;
}
List<FrCCC_Description_Text__mdt> CM=[select FrCCC_Description_Text_1__c from FrCCC_Description_Text__mdt where FrCCC_Detail_Origine__c='objOrigine' and FrCCC_OrigineDefectLocation__c ='objOriginalDetail'];
List<FrCCC_Description_Text__mdt> CM1=[select Description_Text_2__c from FrCCC_Description_Text__mdt where FrCCC_Detail_Origine__c='objOrigine' and FrCCC_OrigineDefectLocation__c ='objOriginalDetail'];
For(case s: CM)
{
s.Description=CM.get(0);
}
}
}
Is it correct approach.Please suggest anyother approach.i am having trouble in assigning a list to string.
I would like to highlight some errors in your code,
Please don't write SOQL queries inside a loop. this is not a best practise.
If you want to compare some values in WHERE clause write FrCCC_OrigineDefectLocation__c =:objOriginalDetail in stead of FrCCC_OrigineDefectLocation__c ='objOriginalDetail'
I have written a code snippet for you by following bes practise. Please let me know whether you have found any issues to compile or run,
Thanks,
Prosenjit