I have Name and Email__c fields in Custom Settings Object, For example :
Name = 'Support' and
Email__C = '[email protected]'.
When ever a case is created with the pick list value "Support" (which matches the custom setting Name field value) and click on save button then the case status field value must be updated automatically to 'Closed' and sends an email to the custom setting Email__c field value ([email protected])
trigger CaseTrigger on Case (before insert, before update)
{
List<Case> cases = new List<Case>();
for(Case c : Trigger.new)
{
if(c.PickList__C== 'Support')
{
c.Status='Closed';
cases.add(c);
}
if(cases.size()>0)
{
update cases;
}
}
Custom_Settings__c cs = Custom_Settings__c.getInstance('Support');
String CsEmail= cs.Email__C;
if(CsEmail!= Null)
{
String[] toAddresses = new String[] {CsEmail};
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setToAddresses(toAddresses);
mail.setSenderDisplayName('Salesforce Support');
mail.setSubject('New Case Created : ' + case.Id);
System.debug('case id' +case.id);
mail.setBccSender(false);
mail.setUseSignature(false);
mail.setPlainTextBody('Your Case: ' + case.Id +' has been created.');
mail.setHtmlBody('Your case:<b> ' + case.Id +' </b>has been created.<p>'+
'To view your case <a href=https://na1.salesforce.com/'+case.Id+'>click here.</a>');
mail.setSaveAsActivity(false);
Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
}
}
Please Correct my trigger i am getting below error
Error: Invalid Data. Review all error messages below to correct your data. Apex trigger CaseTrigger caused an unexpected exception, contact your administrator: CaseTrigger: execution of BeforeInsert caused by: System.SObjectException: DML statement cannot operate on trigger.new or trigger.old: Trigger.CaseTrigger: line 13, column 1