Salesforce VF 电子邮件模板是否需要保留相关对象?

发布于 2024-11-24 14:20:43 字数 477 浏览 3 评论 0原文

当新的潜在客户出现时,我想使用之前触发器和包含潜在客户字段值的 Visualforce 电子邮件模板,以使用 SingleEmailMessage 类发送电子邮件。正在生成电子邮件,但所有引导字段均为空,尽管(通过 System.Debug 得知)它们确实具有进入调用的值。

由于我通过 mail.setWhatId(lead.Id) 方法传递仍未保存的潜在客户 ID,因此我开始认为邮件类正在使用 Id 值并尝试执行以下操作:数据库查找而不是作为对内存中尚未保存的线索的引用。

有谁知道是不是这样?当领先优势已经存在时,我的班级可以完美地工作。

如果 Apex 邮件类执行数据库读取,对于需要在保存潜在客户之前发送电子邮件并更新潜在客户字段值的情况有什么模式建议吗?我无法使用工作流程电子邮件通知,因为电子邮件是发送给客户的,并且有一些额外的 Apex 代码可以根据一些潜在客户字段来整理从现有帐户记录中获取的地址 - 因此我认为需要使用 VF首先是电子邮件模板。

When a new lead comes in, I want to use a before trigger and a Visualforce email template that contains lead field values to send an email using the SingleEmailMessage class. The email is being generated, but all of the lead fields are null even though (known via System.Debug) they do have values going into the call.

Since I'm passing the still-unsaved lead Id via the mail.setWhatId(lead.Id) method, I'm beginning to think that the mail class is using the Id value and trying to do a database look-up rather than as a reference to the still unsaved lead in memory.

Does anyone know if that's the case? My class works flawlessly when the lead already exists.

If it is the case that the Apex mail class does a DB read, any pattern suggestions for the case where one needs to send and email and update a lead field value before the lead is saved? I can't use the Workflow email notification because the email is being addressed to customers, and there's some additional Apex code that sorts out what address to fetch from existing Account records based on some Lead fields--hence I think the need for using VF email templates in the first place.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

与往事干杯 2024-12-01 14:20:43

setWhatId (以及几乎任何采用 ID 值作为参数的方法)肯定希望该行已经被持久化。为了解决这个问题,您应该能够在之前触发器中进行字段更新,并添加一个之后触发器来发送电子邮件。

setWhatId (and pretty much any method that takes an ID value as an argument) definitely does expect the row to be persisted already. To get around this, you should be able to just do your field update in the before trigger, and add an after trigger to send the email.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文