0

我在 salesforce 中看到了类似调度程序的功能,但它与 salesforce 提供的现有功能有些相关,并且就我的研究而言,没有提供示例源代码。

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

目标:

自定义对象Player有字段

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

如果今天的日期比 startDate 早一天,我想向播放器发送电子邮件。例如,玩家的名字是John,如果今天是2010-12-10,并且一个玩家的startDate 设置为2010-12-11,则发送电子邮件说"hello John"

不幸的是,我找不到很好的示例或在线教程或销售人员文档如何使用 Apex 执行此操作。谁能指出从哪里开始?

更新

我想从eyescream.

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

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

我有自定义对象'alertTester',它引用了其他对象'custom',甚至这个对象'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>
4

2 回答 2

1

我又来回答我自己的问题了。。

下面的链接,搜索schedule

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

看起来 Apex 有 Schedulable 接口,我可以实现和设置 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;
   }   
}
于 2010-11-11T09:36:59.977 回答
1

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

电子邮件警报 + 工作流程规则应该为您提供在这种情况下所需的所有功能,并且只需单击而无需任何代码。

于 2010-11-11T11:47:00.713 回答