You need to sign in to do that
Don't have an account?
Ellsa James
How do I check against email subject in Apex class?
I have set up an email service and Apex class that handles inbound emails and creates a new task with the details from the email. The task is then related to a custom object based on the subject line of the email matching a custom field on the custom object record. This is working fine at the moment but I need to tweek the criteria the check if the subject of the email contains the value of the custom field. At the moment it is checking if the subject = the field. I need to check if it contains rather than =.
Custom object = Request
Custom field to check against email subject = Test
Here is the Apex class
Custom object = Request
Custom field to check against email subject = Test
Here is the Apex class
global class CreateTaskEmailExample1 implements Messaging.InboundEmailHandler { global Messaging.InboundEmailResult handleInboundEmail(Messaging.inboundEmail email, Messaging.InboundEnvelope env){ // Create an InboundEmailResult object for returning the result of the // Apex Email Service Messaging.InboundEmailResult result = new Messaging.InboundEmailResult(); String myPlainText= ''; // Add the email plain text into the local variable myPlainText = email.plainTextBody; // New Task object to be created Task[] newTask = new Task[0]; // Try to look up any Request based on the email subject try { Request__c vCon = [SELECT Id, Name, Number__c, Test__c FROM Request__c WHERE Test__c =:email.subject LIMIT 1]; // Add a new Task to the Request record we just found above. newTask.add(new Task(Description = myPlainText, Priority = 'Normal', Status = 'Inbound Email', Subject = email.subject, IsReminderSet = true, ReminderDateTime = System.now()+1, WhatId = vCon.Id)); // Insert the new Task insert newTask; System.debug('New Task Object: ' + newTask ); } // If an exception occurs when the query accesses // the Request record, a QueryException is called. // The exception is written to the Apex debug log. catch (QueryException e) { System.debug('Query Issue: ' + e); } // Set the result to true. No need to send an email back to the user // with an error message result.success = true; // Return the result for the Apex Email Service return result; } }
Read this to know more about Like operator : http://www.salesforcegeneral.com/introduction-to-soql/
Error: Compile Error: unexpected token: '+' at line 28 column 37
It doesn't like the +
In such a case, you have to construct your query before to use it using dynamic SOQL.
Here is the idea:
Here is a link to a complete example http://blog.jeffdouglas.com/2010/07/13/building-a-dynamic-search-page-in-visualforce/
Hope this helps and happy new year!
Fred
If these answers helped you solve your problem, please, mark the question as Solved and kindly select the best one ;)
Thanks,
Fred