在一个流中定义多个路径
学习目标
完成本单元后,您将能够:
- 解读业务需求,并将其可视化为流程图。
- 构建一个流来实施业务需求流程。
- 使用分支逻辑从流中的多条路径中选择一条。
开始之前
此徽章假定您知道如何创建包含变量、输入和数据元素的流,如 Get Records(获取记录)。如果您不熟悉这些概念或需要复习,请参阅 Flow Builder 基础知识徽章和流中的数据和操作徽章。
当您的流运行时,它就像一列火车,沿着路径驶向终点,并在每一站采取一些行动。但火车并不总是沿着单一的路线行驶。火车轨道分叉、汇合、循环往复,以到达它们需要去的地方。通过 Flow Builder,您可以构建自动化来实现同样的功能,并根据您的需要对路径进行分支和合并。
If(如果)的力量
有些自动化用例要求您针对不同情况采用不同的自动化方式。让我们来看一个例子。
Flo Smith 是 Pyroclastic 公司的高级 Salesforce 管理员兼业务分析师。在本模块中,您是 Flo 团队中的一名 Salesforce 管理员,帮助她将 Pyroclastic 的一些业务流程自动化。
Flo 今天给您的任务是建立自动化,在创建支持个案时自动设置正确的优先级。优先级值取决于问题的类型和请求者的影响力。Flo 首先要审查业务要求。
- If Type = Downtime: priority = Severity 0.(如果类型 = 停机:优先级 = 严重性 0。)
- If Type = Usability and the contact who submitted it is a VIP: priority = Severity 1.(如果类型 = 可用性且提交要求的联系人是 VIP:优先级 = 严重性 1。)
- If Type = Usability and the contact who submitted it is not a VIP: priority = Severity 2.(如果类型 = 可用性且提交要求的联系人“不”是 VIP:优先级 = 严重性 2。)
- Otherwise (else), priority = Severity 3.(否则(其他),优先级 = 严重性 3。)
请注意,除了最后一行以外的其他行都是以 if 开头的。最后一行作为默认设置,用于不符合前三项要求的个案。
接下来,您和 Flo 要绘制一个流程图,将设置个案优先级的自动化过程可视化。您可以用适合自己的任何方式来完成这一目标:比如在纸上画草图、使用设计工具或流程图程序。你们的目标是将需求从文本转化为您的预期自动化的可视化模型。
让我们来看看该流程图。它有四项业务要求。
每项业务要求都有一个 Severity(严重性)方框,供路径在满足要求时选择,即 Yes(是)路径。在 Flow Builder 中,这些被称为 outcomes(结果),而且每个结果在画布上都有自己的路径。
每个结果(最后一个除外)都有必须满足的条件。在 Flow Builder 中,这些条件被称为 condition requirements(条件要求)。
最后一个结果是默认结果。它没有条件。当其他结果的条件都不满足时,流会选择默认结果。
要在流中创建这种分支逻辑,需要使用 Decision(决策)元素。
决策元素
Decision(决策)元素可以让您创建多个路径。根据流程图构建决策元素有两个步骤。
- 为图表中的每条 Yes(是)路径创建一个结果。(最后的 No(否)路径由默认结果处理)。结果在 Outcome Order(结果顺序)下依次列出。
- 为每个结果添加条件要求,默认结果除外。每个结果的条件要求都来自流程图中相应的菱形。
Decision(决策)元素的路径代表结果。
当流到达一个决策元素时,它会评估第一个结果。如果条件满足,流就会选择该结果并沿着其路径运行。如果不满足,流会继续按 Outcome Order(结果顺序)前进,直到找到满足条件要求的结果。如果不满足任何结果的条件要求,流将遵循默认结果路径。当不同的路径合并时,流会返回这个单一路径。
准备上手实践 Flow Builder 了吗?
现在请启动您的 Trailhead Playground,跟着试试这个模块中的步骤。要打开您的 Trailhead Playground,请向下滚动到实践挑战,然后单击 Launch(启动)。需要完成实践挑战时,您也可以使用 Playground。
构建决策元素
让我们创建一个流来自动执行这一业务流程。不过,首先要在相关字段中添加这些必填的选项列表值。有关添加选项列表值的更多信息,请参阅选项列表管理徽章中的“管理选项列表值”单元。
- 在 Case(个案)对象中的 Priority(优先级)字段添加以下值:
Severity 0
(严重性 0)、Severity 1
(严重性 1)、Severity 2
(严重性 2)、Severity 3
(严重性 3) - 在 Case(个案)对象中的 Type(类型)字段添加以下值:
Downtime
(宕机时间)、Usability
(可用性)
创建决策元素并确定结果
按照以下步骤,使用 Decision(决策)元素将流程图过程重新创建为流。
- 创建记录触发流:
- 为 Object(对象)选择 Case(个案)。
- 接受默认触发器配置和进入条件。
- 在 Optimize the Flow for(流的优化对象)下选择 Fast Field Updates(快速字段更新)。
如果只想更新触发记录,请选择 Fast Field Updates(快速字段更新)。查看记录触发流徽章,了解有关“快速字段更新”的更多信息。
- 在流中添加 Decision(决策)元素:
- 在画布上单击
。
- 选择 Decision(决策)。
- 在 Label(标签)处输入
Check Case Details
(检查个案详细信息)。
- 定义结果:
- 在 OUTCOME ORDER(结果顺序)下,保留 New Outcome(新结果)选项。
- 在 OUTCOME DETAILS(结果详细信息)下,为 Label(标签)输入
Severity 0
(严重性 0)。
- 在 OUTCOME ORDER(结果顺序)旁单击
以创建一个新结果。
- 将第二个结果的标签设置为
Severity 1
(严重性 1)。
- 创建另一个结果,并将其标签设置为
Severity 2
(严重性 2)。
- 在 OUTCOME ORDER(结果顺序)下选择 Default Outcome(默认结果)。
- 将其标签更改为
Severity 3 (Default)
(严重性 3(默认))。
为结果添加条件要求
- 定义 Severity 0(严重性 0)结果的条件要求:
- 在 OUTCOME ORDER(结果顺序)下选择 Severity 0(严重性 0)。
- 在 OUTCOME DETAILS(结果详细信息)下的 Resource(资源)处单击 Triggering Case(触发个案)并选择 Case Type(个案类型)。
- 保留 Equals(等于)作为运算符。
- 为 Value(值)选择 Downtime(宕机时间)。
- 定义 Severity 1(严重性 1)结果的条件要求:
- 输入第一项条件要求:
- 资源:Triggering Case(触发个案)> Case Type(个案类型)
- 运算符:Equals(等于)
- 值:Usability(可用性)
- 资源:Triggering Case(触发个案)> Case Type(个案类型)
- 单击 Add Condition(添加条件)。
- 输入第二项条件要求:
- 资源:Triggering Case(触发个案)> Contact Id(联系人 ID)> Contact Description(联系人描述)
- 运算符:Contains(包含)
- 值:
VIP
- 资源:Triggering Case(触发个案)> Contact Id(联系人 ID)> Contact Description(联系人描述)
- 定义 Severity 2(严重性 2)结果的条件要求:
- 资源:Triggering Case(触发个案) > Case Type(个案类型)
- 运算符:Equals(等于)
- 值:Usability(可用性)
尽管图中的第三个菱形指定联系人不是 VIP,但我们不需要检查 Severity 2(严重性 2)的这一要求。条件要求按顺序评估,因此除非联系人不是 VIP,否则 Decision(决策)元素不会检查此结果。
现在,您的决策元素应该是这样的:
单击 关闭侧面板。
您的流程图有四个可能的结果,因此 Decision(决策)元素也有四个结果。这四种结果产生了流的四种可能路径,每种路径都以相应的结果命名。在画布上看起来是这样的。
现在是保存并命名新流的好时机。
- 单击 Save(保存)。
- 在 Flow Label(流标签)处输入
Set Case Priority
(设置个案优先级)。
- 单击 Save(保存)。
创建更新记录元素
在每个严重性路径上,都可以添加一个元素,用适当的优先级值更新新个案。例如,在 Severity 0(严重性 0)路径中,您将 Priority(优先级)字段设置为 Severity 0(严重性 0)。
首先,在前三个路径中添加一个 Update Records(更新记录)元素。
- 在 Severity 0(严重性 0)下方单击
。
- 在 Shortcuts(捷径)下,选择 Update Triggering Record(更新触发记录)。
- 在 Label(标签)处输入
Set Priority to Sev0
(将优先级设为 Sev 0)
- 接受自动生成的 API 名称。
- 在 How to Find Records to Update and Set Their Values(如何查找记录,以更新并设置值)下,保留默认值:Use the case record that triggered the flow(使用触发流的个案记录)。
- 滚动到 Set Field Values for the Case Record(设置个案记录的字段值)。
- 在 Field(字段)处选择 Priority(优先级)。
- 为 Value(值)选择 Severity 0(严重性 0)。
- 单击 Update Records(更新记录)面板中的
以关闭面板。
- 为 Severity 1(严重性 1)和 Severity 2 (严重性 2)路径重复步骤 1-9。不要忘记更改每个路径的 Label(标签)和 Value(值)。
对于 Severity 3(严重性 3)路径,复制并粘贴 Severity 2(严重性 2)路径中的元素。(这个例子非常简单,但如果您需要一起复制或移动(剪切和粘贴)一大堆元素,这是一个很好的技巧)。
- 单击 Set Priority to Sev2(将优先级设为 Sev2)元素。
- 单击 Copy Element(复制元素)。
- 在 Severity 3(严重性 0)下方单击
。
- 单击 Paste 1 Element(粘贴 1 元素)。
- 单击新元素并选择 Edit Element(编辑元素)。
- 将 Label(标签)更改为
Set Priority to Sev3
(将优先级设为 Sev3)。
- 将 API 名称改为
Set_Priority_to_Sev3
。 - 将字段 Value(值)改为 Severity 3(严重性 3)。
- 保存流。
画布上的流应该是这样的。
当流遵循特定结果的路径时,它只运行该路径中的 Update Records(更新记录)元素。