通过自动化,帮助团队提升效率,将员工从那些重复、枯燥、耗时的工作中解放出来,转而从事更具创造性、更有价值的工作,是很多企业数字化转型朴素而又迫切的需求,也是世界No.1 CRM——Salesforce的一大领先优势。
Flow Builder作为Salesforce自动化领域的新秀,逐渐处于重要地位,使用者需要学习多种功能。你可能很少会在Flow中遇到或实施过Pause元素,这是一个冷门但好用的功能。本篇文章将深入探讨Pause元素,以及一些重要的注意事项。
01 什么是Flow Interview?
想要了解在Flow中为什么需要以及如何使用Pause元素,需要从一些基础的Flow开始。Flow Interview是你的Flow在启动时创建的一个实例。它基本上由两部分组成:当前上下文(Context)和Flow中的逻辑。Salesforce解释说它类似于对象和记录之间的区别:对象是已配置的结构,而记录是该对象的实例(即,Burlington Textiles是Account对象的一个实例)。
如果你想查看过去 30 天内在组织中运行的Interview数量(Flow实例),可以从设置中的自动化主页执行此操作。目前仍处于测试阶段,并且必须在安装程序中启用。
假设你创建了一个名为“新用户入职”的Screen Flow。每次用户登录Salesforce以检查入职程序是否已完成时,此流程都会作为登录流程触发。这意味着每次用户登录组织并调用登录流程时,会在每次登录时为该Flow创建一个新的Flow Interview。
另一个例子是,如果你创建了一个名为**“Won Opportunity Procedure”**的Record-Triggered Flow,该Flow在业务机会设置为“Closed Won”时执行一组操作。每次新的业务机会记录满足进入标准并运行Flow时,都会创建一个新的Flow Interview。
02 Pause元素的属性
Pause元素只能用于Autolaunched Flow和Scheduled Flow,包含屏幕、选项或选项集的Flow也将无法被激活或运行。
Pause元素类似于Decision元素,因为它有多个路径,称为“Pause Configurations”,用于定义Pause发生的不同场景,以及Flow Interview将如何从Pause中脱离。
每个Pause Configurations都有可选条件来确定Flow是否应该暂停,并且还将有一组定义的标准,在Flow恢复之前需要满足这些标准。如果向Flow Canvas添加一个Pause元素,你会看到它分为两个选项卡:暂停条件(Pause Condition)和恢复事件(Resume Event),你可以在其中配置这些标准。
暂停条件是可选的,但恢复事件是强制性的,因为它决定了Flow Interview将如何摆脱暂停。在上面的示例中,有两个Pause Configurations,因此必须配置两个不同的恢复事件。Seven Day Pause恢复事件定义如下,显示Flow Interview将在7天后恢复(基准时间 = OriginDateTime,即Flow最初启动的时间,偏移量为7,表示比基准时间晚7个单位,偏移量单位为天)。
03 Paused Flow注意事项
Paused Flow的功能非常强大,但它也有一些重要的注意事项,在使用Pause元素设计和构建Flow时需要牢记。
如上所述,只有某些Flow类型支持使用Pause功能。Autolaunched Flow和Scheduled Flow是唯一支持Pause元素的流,如果不支持的Flow类型调用子流,则它不能包含Pause元素。当我尝试从Record-Triggered Flow中调用带有Pause元素的子流时会显示如下错误。
组织最多只能有50,000个暂停的Flow Interview。尽管暂停功能强大,但由于这种限制,需要谨慎使用。管理时间延迟或标准延迟可能有更好的方法,例如考虑使用Schedule-Triggered Flow或Record-Triggered Flow。
**Flow Interview不会实时恢复,也不会逐一恢复。**当Flow Interview满足要恢复的条件时,它会创建一个Batch并将其添加到其中。在此期间恢复的任何其他Flow Interview也将添加到Batch中。在将第一个Flow Interview添加到Batch后一小时,Batch将在单个事务中批量执行。
Flow订阅Platform Events,并可以使用它们来恢复Flow Interview,但是,仅支持特定的Platform Events类型。在规划Flow时,请确保只计划使用以下Platform Events类型:
- AIPredictionEvent BatchApexErrorEvent
- FlowExecutionErrorEvent
- FOStatusChangedEvent
- OrderSummaryCreatedEvent
- OrderSumStatusChangedEvent
总体而言,使用Pause元素可以通过结构化方式,允许必要的延迟来确保Flow平稳高效地运行。