我看到了Salesforce中的“调度程序”功能,但它与Salesforce提供的现有功能有些吻合,并且就我的研究而言,没有提供示例源代码。

我要做的是创建自己的调度程序,该调度程序根据日期发送简单的电子邮件。

目标:

自定义对象 Player 有字段

startDate : date like '2010-11-01'
email : text field like foo@bar.com
name : player's name like John.

如果今天的日期是开始日期的一天,我想将电子邮件发送给玩家。例如,玩家的名字是 John 如果今天是 2010-12-10 还有一个球员的 startDatE设置为 2010-12-11, ,电子邮件说 "hello John" 已发送。

不幸的是,我找不到在线或Salesforce Doc如何使用APEX进行此操作的好示例或教程。谁能指出从哪里开始?

更新

我想从 eyescream.

设置调度程序后,您可以设置什么后续操作,例如使用模板发送电子邮件或将自定义对象字段设置为某些值。

在下面,我发现对使用Visualforce格式的电子邮件模板的人有用。

我有自定义对象“ alerttester”,它具有对其他对象的“自定义”,甚至此对象'custom'都引用了另一个对象“ custom1grandChild”,并且所有关系(我认为最多3或5层)都可以像下面访问。

我在下面进行了测试,并且工作正常。现在,我收到了带有状况集的电子邮件:)

<messaging:emailTemplate subject="Hello" recipientType="User" relatedToType="alertTester__c" >
<messaging:plainTextEmailBody >

{!relatedTo.name}
{!relatedTo.custom__r.name}
{!relatedTo.custom__r.custom1GrandChild__r.name}


</messaging:plainTextEmailBody>
</messaging:emailTemplate>
有帮助吗?

解决方案

在深入研究Apex之前,请查看不涉及代码的解决方案...

电子邮件警报 +工作流规则应在这种情况下为您提供所需的所有功能,并仅在没有任何代码的情况下单击即可。

其他提示

我再次回答自己的问题。

下面的链接,搜索 schedule

http://www.salesforce.com/us/developer/docs/apexcode/index.htm

看起来Apex具有可安排的接口,我可以实现并设置CRON任务。

以下是文档中提供的示例代码:

global class TestScheduledApexFromTestMethod implements Schedulable {

// This test runs a scheduled job at midnight Sept. 3rd. 2022  


   public static String CRON_EXP = '0 0 0 3 9 ? 2022';

   global void execute(SchedulableContext ctx) {
      CronTrigger ct = [SELECT id, CronExpression, TimesTriggered, NextFireTime
                FROM CronTrigger WHERE id = :ctx.getTriggerId()];

      System.assertEquals(CRON_EXP, ct.CronExpression);
      System.assertEquals(0, ct.TimesTriggered);
      System.assertEquals('2022-09-03 00:00:00', String.valueOf(ct.NextFireTime));

      Account a = [SELECT id, name FROM Account WHERE name = 
                  'testScheduledApexFromTestMethod'];
      a.name = 'testScheduledApexFromTestMethodUpdated';
      update a;
   }   
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top