Skip to main content
Join the Agentforce Virtual Hackathon to build innovative solutions and compete for a $50k Grand Prize. Sign up now. Terms apply.

在一个流中定义多个路径

学习目标

完成本单元后,您将能够:

  • 解读业务需求,并将其可视化为流程图。
  • 构建一个流来实施业务需求流程。
  • 使用分支逻辑从流中的多条路径中选择一条。
备注

备注

用中文(简体)学习?在中文(简体)Trailhead Playground 中开始挑战,用括号中提供的译文完成挑战。仅复制并粘贴英文值,因为挑战验证基于英文数据。如果在中文(简体)组织中没有成功通过挑战,我们建议您 (1) 将区域设置切换为美国,(2) 按此处说明将语言切换为英文,(3) 再次单击“检查挑战”按钮。

查看 Trailhead 本地化语言徽章详细了解如何利用 Trailhead 译文。

备注

本徽章是熟练掌握 Flow Builder 的必修课程之一。使用 Flow Builder 构建流学习路径将引导您从头到尾学习有关 Flow Builder 的所有知识。请按照这一推荐的徽章顺序来培养强大的流程自动化技能并成为 Flow Builder 专家。

开始之前

此徽章假定您知道如何创建包含变量、输入和数据元素的流,如 Get Records(获取记录)。如果您不熟悉这些概念或需要复习,请参阅 Flow Builder 基础知识徽章和流中的数据和操作徽章。

当您的流运行时,它就像一列火车,沿着路径驶向终点,并在每一站采取一些行动。但火车并不总是沿着单一的路线行驶。火车轨道分叉、汇合、循环往复,以到达它们需要去的地方。通过 Flow Builder,您可以构建自动化来实现同样的功能,并根据您的需要对路径进行分支和合并。

Flo Smith 驾驶着蒸汽火车头,沿着一条通往多个方向的轨道前进

If(如果)的力量

有些自动化用例要求您针对不同情况采用不同的自动化方式。让我们来看一个例子。

Flo Smith 是 Pyroclastic 公司的高级 Salesforce 管理员兼业务分析师。在本模块中,您是 Flo 团队中的一名 Salesforce 管理员,帮助她将 Pyroclastic 的一些业务流程自动化。 

Flo 今天给您的任务是建立自动化,在创建支持个案时自动设置正确的优先级。优先级值取决于问题的类型和请求者的影响力。Flo 首先要审查业务要求。

  1. If Type = Downtime: priority = Severity 0.(如果类型 = 停机:优先级 = 严重性 0。)
  2. If Type = Usability and the contact who submitted it is a VIP: priority = Severity 1.(如果类型 = 可用性且提交要求的联系人是 VIP:优先级 = 严重性 1。)
  3. If Type = Usability and the contact who submitted it is not a VIP: priority = Severity 2.(如果类型 = 可用性且提交要求的联系人“不”是 VIP:优先级 = 严重性 2。)
  4. Otherwise (else), priority = Severity 3.(否则(其他),优先级 = 严重性 3。)

请注意,除了最后一行以外的其他行都是以 if 开头的。最后一行作为默认设置,用于不符合前三项要求的个案。

备注

通过这样组织行,Flo 创建了开发人员所说的 if-then-elseif 语句。IF(如果)某件事为真,THEN(则)采取行动;ELSE(否则),检查另一种情况 IF(是否)为真。这个 if 具备很多适合流开发人员的功能!

接下来,您和 Flo 要绘制一个流程图,将设置个案优先级的自动化过程可视化。您可以用适合自己的任何方式来完成这一目标:比如在纸上画草图、使用设计工具或流程图程序。你们的目标是将需求从文本转化为您的预期自动化的可视化模型。

让我们来看看该流程图。它有四项业务要求。

与上述要求相对应的流程图。布局中有 3 个问题(菱形)和 4 个结果,分别代表严重性 0 - 严重性 3。

每项业务要求都有一个 Severity(严重性)方框,供路径在满足要求时选择,即 Yes(是)路径。在 Flow Builder 中,这些被称为 outcomes(结果),而且每个结果在画布上都有自己的路径。

每个结果(最后一个除外)都有必须满足的条件。在 Flow Builder 中,这些条件被称为 condition requirements(条件要求)。

决策元素流程图,有四个结果和三个菱形,分别对应前面定义的要求 0、1、2 和 3。

最后一个结果是默认结果。它没有条件。当其他结果的条件都不满足时,流会选择默认结果。

要在流中创建这种分支逻辑,需要使用 Decision(决策)元素。

决策元素

Decision(决策)元素可以让您创建多个路径。根据流程图构建决策元素有两个步骤。

  1. 为图表中的每条 Yes(是)路径创建一个结果。(最后的 No(否)路径由默认结果处理)。结果在 Outcome Order(结果顺序)下依次列出。
  2. 为每个结果添加条件要求,默认结果除外。每个结果的条件要求都来自流程图中相应的菱形。

Decision(决策)元素包括与前述步骤相对应的结果和条件要求。

Decision(决策)元素的路径代表结果。

Flow Builder 画布,其中显示的 Decision(决策)元素分为四条路径,分别代表严重性 0 到严重性 3。

当流到达一个决策元素时,它会评估第一个结果。如果条件满足,流就会选择该结果并沿着其路径运行。如果不满足,流会继续按 Outcome Order(结果顺序)前进,直到找到满足条件要求的结果。如果不满足任何结果的条件要求,流将遵循默认结果路径。当不同的路径合并时,流会返回这个单一路径。

准备上手实践 Flow Builder 了吗?

现在请启动您的 Trailhead Playground,跟着试试这个模块中的步骤。要打开您的 Trailhead Playground,请向下滚动到实践挑战,然后单击 Launch(启动)。需要完成实践挑战时,您也可以使用 Playground。

构建决策元素

让我们创建一个流来自动执行这一业务流程。不过,首先要在相关字段中添加这些必填的选项列表值。有关添加选项列表值的更多信息,请参阅选项列表管理徽章中的“管理选项列表值”单元。

  1. 在 Case(个案)对象中的 Priority(优先级)字段添加以下值:Severity 0(严重性 0)、Severity 1(严重性 1)、Severity 2(严重性 2)、Severity 3(严重性 3)
  2. 在 Case(个案)对象中的 Type(类型)字段添加以下值:Downtime(宕机时间)、Usability(可用性)

创建决策元素并确定结果

按照以下步骤,使用 Decision(决策)元素将流程图过程重新创建为流。

  1. 创建记录触发流:
    • 为 Object(对象)选择 Case(个案)
    • 接受默认触发器配置和进入条件。
    • 在 Optimize the Flow for(流的优化对象)下选择 Fast Field Updates(快速字段更新)
      如果只想更新触发记录,请选择 Fast Field Updates(快速字段更新)。查看记录触发流徽章,了解有关“快速字段更新”的更多信息。
  1. 在流中添加 Decision(决策)元素:
    • 在画布上单击 添加元素
    • 选择 Decision(决策)
    • 在 Label(标签)处输入 Check Case Details(检查个案详细信息)。
  1. 定义结果:
    • 在 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(默认))。

为结果添加条件要求

  1. 定义 Severity 0(严重性 0)结果的条件要求:
    • 在 OUTCOME ORDER(结果顺序)下选择 Severity 0(严重性 0)
    • 在 OUTCOME DETAILS(结果详细信息)下的 Resource(资源)处单击 Triggering Case(触发个案)并选择 Case Type(个案类型)
    • 保留 Equals(等于)作为运算符。
    • 为 Value(值)选择 Downtime(宕机时间)
  1. 定义 Severity 1(严重性 1)结果的条件要求:
    • 输入第一项条件要求:
      • 资源:Triggering Case(触发个案)> Case Type(个案类型)
      • 运算符:Equals(等于)
      • 值:Usability(可用性)
    • 单击 Add Condition(添加条件)
    • 输入第二项条件要求:
      • 资源:Triggering Case(触发个案)> Contact Id(联系人 ID)> Contact Description(联系人描述)
      • 运算符:Contains(包含)
      • 值: VIP
  1. 定义 Severity 2(严重性 2)结果的条件要求:
    • 资源:Triggering Case(触发个案) > Case Type(个案类型)
    • 运算符:Equals(等于)
    • 值:Usability(可用性)
      尽管图中的第三个菱形指定联系人不是 VIP,但我们不需要检查 Severity 2(严重性 2)的这一要求。条件要求按顺序评估,因此除非联系人不是 VIP,否则 Decision(决策)元素不会检查此结果。

现在,您的决策元素应该是这样的:Decision(决策)侧面板上有四个与要求相对应的结果:严重性 0、1、2 和 3

单击 关闭 关闭侧面板。

您的流程图有四个可能的结果,因此 Decision(决策)元素也有四个结果。这四种结果产生了流的四种可能路径,每种路径都以相应的结果命名。在画布上看起来是这样的。

Flow Builder 画布,显示了一个决策元素,该元素有 4 个路径,分别对应之前定义的结果:严重性 0、严重性 1、严重性 2 和严重性 3。

现在是保存并命名新流的好时机。

  1. 单击 Save(保存)
  2. 在 Flow Label(流标签)处输入 Set Case Priority(设置个案优先级)。
  3. 单击 Save(保存)

创建更新记录元素

在每个严重性路径上,都可以添加一个元素,用适当的优先级值更新新个案。例如,在 Severity 0(严重性 0)路径中,您将 Priority(优先级)字段设置为 Severity 0(严重性 0)。

首先,在前三个路径中添加一个 Update Records(更新记录)元素。

  1. 在 Severity 0(严重性 0)下方单击 添加元素
  2. 在 Shortcuts(捷径)下,选择 Update Triggering Record(更新触发记录)
  3. 在 Label(标签)处输入 Set Priority to Sev0(将优先级设为 Sev 0)
  4. 接受自动生成的 API 名称。
  5. 在 How to Find Records to Update and Set Their Values(如何查找记录,以更新并设置值)下,保留默认值:Use the case record that triggered the flow(使用触发流的个案记录)
  6. 滚动到 Set Field Values for the Case Record(设置个案记录的字段值)。
  7. 在 Field(字段)处选择 Priority(优先级)
  8. 为 Value(值)选择 Severity 0(严重性 0)
  9. 单击 Update Records(更新记录)面板中的 关闭 以关闭面板。
  10. 为 Severity 1(严重性 1)和 Severity 2 (严重性 2)路径重复步骤 1-9。不要忘记更改每个路径的 Label(标签)和 Value(值)。

对于 Severity 3(严重性 3)路径,复制并粘贴 Severity 2(严重性 2)路径中的元素。(这个例子非常简单,但如果您需要一起复制或移动(剪切和粘贴)一大堆元素,这是一个很好的技巧)。

  1. 单击 Set Priority to Sev2(将优先级设为 Sev2)元素。
  2. 单击 Copy Element(复制元素)
  3. 在 Severity 3(严重性 0)下方单击 添加元素
  4. 单击 Paste 1 Element(粘贴 1 元素)
  5. 单击新元素并选择 Edit Element(编辑元素)
  6. 将 Label(标签)更改为 Set Priority to Sev3(将优先级设为 Sev3)。
  7. 将 API 名称改为 Set_Priority_to_Sev3
  8. 将字段 Value(值)改为 Severity 3(严重性 3)
  9. 保存流。

画布上的流应该是这样的。

Flow Builder 画布,显示同一个具有 4 条路径的 Decision(决策)元素,现在每条路径都包括了一个单独的 Update Records(更新记录)元素。每个 Update Records(更新记录)元素都标有设置了 Priority(优先级)的值。

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

备注

要查看流的实际运行情况,请单击 Activate(激活)激活流,然后创建一个个案。只有拥有 Manage Flows(管理流)权限的用户才能运行未激活的流。请注意,当流激活后,您就无法更改该版本的流。请创建新版本的流,并在其中中进行更改。

资源

实践挑战

+500 分

准备好

您将在您自己的实践组织中完成此单元。单击启动以开始,或单击您的组织的名称以选择不同的组织。

您的挑战

Use a Decision Element to Make Multiple Paths
Create a flow that uses a Decision element to create different opportunity products, depending on the opportunity’s name. Use Get Records elements to retrieve the values required for opportunity products, including the price book’s ID, products’ IDs, and price book entries’ IDs.
  • Create a record-triggered flow:
    • Object: Opportunity
    • Trigger the Flow When: A record is created
    • Keep the default values for all other settings

  • Add a Get Records element:
    • Label: Get Pricebook
    • API Name: Get_Pricebook
    • Object: Price Book
    • Condition Requirements: All Conditions Are Met (AND)
      • Field: Name
      • Operator: Equals
      • Value: Standard Price Book
    • Keep the default values for all other settings

  • Add a Decision element:
    • Label: Check Opp Name
    • API Name: Check_Opp_Name
    • Outcome 1:
      • Label: 1500kW
      • API Name: X1500kW
      • Condition Requirements: All Conditions Are Met (AND)
      • Resource: Triggering Opportunity > Name
      • Operator: Contains
      • Value: 1500
    • Outcome 2:
      • Label: 2000kW
      • API Name: X2000kW
      • Condition Requirements: All Conditions Are Met (AND)
      • Resource: Triggering Opportunity > Name
      • Operator: Contains
      • Value: 2000
    • Default Outcome Label: None

  • On the 1500kW path, add a Get Records element:
    • Label: Get 1500 Product
    • API Name: Get_1500_Product
    • Object: Product
    • Condition Requirements: All Conditions Are Met (AND)
      • Field: Name
      • Operator: Contains
      • Value: 1500
    • Keep the default values for all other settings

  • On the 1500kW path, add a Get Records element after the Get 1500 Product element:
    • Label: Get 1500 PBE
    • API Name: Get_1500_PBE
    • Object: Price Book Entry
    • Condition Requirements: All Conditions Are Met (AND)
    • Add a condition requirement:
      • Field: Pricebook2Id
      • Operator: Equals
      • Value: Price Book from Get_Pricebook > Id
    • Add another condition requirement:
      • Field: Product2Id
      • Operator: Equals
      • Value: Product from Get_1500_Product > Id
    • Keep the default values for all other settings

  • On the 1500kW path, add a Create Records element after the Get 1500 PBE element:
    • Label: Create 1500 Opp Product
    • API Name: Create_1500_Opp_Product
    • How to set record field values: Manually
    • Object: Opportunity Product
    • Set Field Values:
      • Field: Opportunity ID, Value: Triggering Opportunity > Opportunity ID
      • Field: Price Book Entry ID, Value: Price Book Entry from Get 1500 PBE > Price Book Entry ID
      • Field: Quantity, Value: 1
      • Field: Total Price, Value: Price Book Entry from Get 1500 PBE > List Price

  • On the 2000kW path, add a Get Records element:
    • Label: Get 2000 Product
    • API Name: Get_2000_Product
    • Object: Product
    • Condition Requirements: All Conditions Are Met (AND)
      • Field: Name
      • Operator: Contains
      • Value: 2000
    • Keep default values for all other settings

  • On the 2000kW path, add a Get Records element after the Get 2000 Product element:
    • Label: Get 2000 PBE
    • API Name: Get_2000_PBE
    • Object: Price Book Entry
    • Condition Requirements: All Conditions Are Met (AND)
    • Add a condition requirement:
      • Field: Pricebook2Id
      • Operator: Equals
      • Value: Price Book from Get_Pricebook > Id
    • Add another condition requirement:
      • Field: Product2Id
      • Operator: Equals
      • Value: Product from Get_2000_Product > Id
    • Keep default values for all other settings

  • On the 2000kW path, add a Create Records element after the Get 2000 PBE element:
    • Label: Create 2000 Opp Product
    • API Name: Create_2000_Opp_Product
    • How to set record field values: Manually
    • Object: Opportunity Product
    • Set Field Values:
      • Field: Opportunity ID, Value: Triggering Opportunity > Opportunity ID
      • Field: Price Book Entry ID, Value: Price Book Entry from Get 2000 PBE > Price Book Entry ID
      • Field: Quantity, Value: 1
      • Field: Total Price, Value: Price Book Entry from Get 2000 PBE > List Price

  • Save and activate the flow.
    • Label: Add Generator Product to Named Opps
    • API Name: Add_Generator_Product_to_Named_Opps
在 Salesforce 帮助中分享 Trailhead 反馈

我们很想听听您使用 Trailhead 的经验——您现在可以随时从 Salesforce 帮助网站访问新的反馈表单。

了解更多 继续分享反馈