当新的潜在客户进入时,我想使用before触发器和包含潜在客户值的Visualforce电子邮件模板,以使用SingleEmailMessage类发送电子邮件。正在生成电子邮件,但即使(通过System.Debug
已知),所有主要字段都为空,但它们确实具有进入调用的值。
由于我通过mail.setWhatId(lead.Id)
方法传递仍未保存的潜在客户ID,我开始认为邮件类正在使用Id值并尝试进行数据库查找而不是对内存中尚未保存的导致的引用。
有人知道是不是这样吗?当领导已经存在时,我的班级完美无缺。
如果是Apex邮件类执行数据库读取的情况,那么在保存潜在客户之前需要发送并通过电子邮件发送和更新潜在客户值的情况的任何模式建议?我无法使用Workflow电子邮件通知,因为电子邮件是发给客户的,还有一些额外的Apex代码可以根据某些Lead字段排除从现有帐户记录中获取的地址 - 因此我认为需要使用VF首先是电子邮件模板。
答案 0 :(得分:2)
setWhatId
(几乎所有采用ID值作为参数的方法)肯定会期望该行已经保留。要解决这个问题,你应该能够在之前的触发器中进行现场更新,并添加一个后触发器来发送电子邮件。