Salesforce Apex 并发建议

Posted

技术标签:

【中文标题】Salesforce Apex 并发建议【英文标题】:Salesforce Apex concurrency suggestions 【发布时间】:2010-11-09 22:14:22 【问题描述】:

我有一个正在工作的入站电子邮件处理程序。但是,现在我担心并发问题,当用户同时为同一个对象发送 2 封电子邮件时。 (我有一个业务文档表格和一个发送给 salesforce 的技术文档表格。)它们包含不同的内容,除了公司名称(它们是从其他人直接发送给 salesforce)。

由于我在最后插入自定义对象,因此我担心并发问题。这会发生吗?我的入站电子邮件处理程序为同一家公司创建了 2 个自定义对象,并且都只填写了一半的信息。

如果是这样,我该如何防止并发问题的发生? 目前的想法: - 立即使用关联帐户而不是最后查询 custom_object。如果 custom_object 不存在,则创建一个。

干杯,

【问题讨论】:

【参考方案1】:

传统意义上的“并发”在平台上很少是一个问题。您的每封入站电子邮件都将在平台上创建一个单独的进程(处理程序)并独立运行。如果您希望将它们结合起来,您有几个选项来处理您的多部分电子邮件场景:

    可调度 Apex 将允许您定期(每天、每周等)检查现有帐户是否存在两个自定义对象,然后使用标准合并将它们组合在一起。缺点是您的用户可能会看到这两个对象,直到您的流程有时间合并它们。将其视为“垃圾收集器”或“清洁过程”类型的模型。 您可以使用一种入站电子邮件类型作为“主要”表单,然后以异步方法处理另一种(例如技术文档)。您会提高让它们按正确顺序处理的机会,但不能保证。 您的方式(先查询)也完全没问题,但同样,您的查询在插入对象后可能无法“捕获”对象,如果没有,您将完全错过它。

在您的情况下,我可能会结合使用 2 和 3 来清理您遗漏的任何内容。

【讨论】:

我实际上是想看看我是否可以让他们填写谷歌表格,然后汇总表格并只发送 1 封电子邮件。但是,如果这不起作用,这就是我要走的路。 使用 3(做了一个 upsert),然后使用 1 进行每日检查以合并对象。感谢您的建议!

以上是关于Salesforce Apex 并发建议的主要内容,如果未能解决你的问题,请参考以下文章

salesforce零基础学习(七十四)apex:actionRegion以及apex:actionSupport浅谈

Apex Scheduler Salesforce,执行错误

我们可以在 Salesforce(apex) 中动态投射 SObject 吗?

如何在 Salesforce 中重命名我的 Apex 类名称

Salesforce图片上传

如何使用 Apex 在 SalesForce 中以编程方式访问报告