我写了一个 Apex Scheduler 类,以便在距离同事生日还有 2 天时发送电子邮件。我创建了一个 2 天后生日的联系人。联系人的生日是 2012 年 7 月 29 日。今天的日期是 2012 年 7 月 27 日。
我被困住了。我没有收到错误消息或任何东西。我已将课程安排在今天 12 点上课。我没有收到电子邮件(要么告诉我这是某人的生日(成功),要么来自 Salesforce 的错误消息告诉我我的代码无法运行(失败)
为了排除故障,我还尝试了电子邮件方法的 if (contact.Next_Birthday__c = : system.Today().addDays(2)) 并得到了不兼容的类型错误。Next_Birthday__c 是一个日期字段,所以我不确定为什么类型不兼容或者为什么这个 SOQL 语句不起作用。
任何意见,将不胜感激。这是我的代码。
global class BirthdayNameOptions implements Schedulable{
global void execute (SchedulableContext ctx)
{
sendBirthdayEmail();
}
public void sendBirthdayEmail()
{
for(Contact con : [SELECT Name FROM Contact WHERE Next_Birthday__c = : system.Today().addDays(2)])
{
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setTemplateId('00XJ0000000M31w');
mail.setTargetObjectId('005J0000000');
mail.setSaveAsActivity(false);
Messaging.sendEmail(new Messaging.SingleEmailMessage[] {mail });
}
}
}