在一个流中定义多个路径
学习目标
完成本单元后,您将能够:
- 解读业务需求,并将其可视化为流程图。 
 - 构建一个流来实施业务需求流程。 
 - 使用分支逻辑从流中的多条路径中选择一条。 
 
开始之前
此徽章假定您知道如何创建包含变量、输入和数据元素的流,如 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 元素)。 
 - 单击新建元素以打开其配置面板。 
 - 将 Label(标签)更改为 
Set Priority to Sev3(将优先级设为 Sev3)。
 - 将 API 名称改为 
Set_Priority_to_Sev3。 - 将字段 Value(值)改为 Severity 3(严重性 3)。 
 - 保存流。 
 
画布上的流应该是这样的。

当流遵循特定结果的路径时,它只运行该路径中的 Update Records(更新记录)元素。
