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.

设置和更改变量值

学习目标

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

  • 更改一个流变量的值。
  • 使用变量接受来自多个来源的数据。
  • 创建多个带有单独分配元素的路径。
备注

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

更改的强大力量

每次在流中存储数据时,数据几乎都是完美的,永远不需要以任何方式进行更改,对吗?并不是,这种情况非常罕见。通常,您会在流中检索记录数据,对其进行添加、删除或以其他方式进行更改,然后将其发送回记录。

Pyroclastic 的营销和推广团队希望开始使用送货地址进行通信。许多客户有必要的账单地址,但并没有送货地址。Flo 要求您创建一个流,询问用户是要复制账单地址还是手动输入送货地址,然后相应地更新送货地址字段。

与上述流描述对应的图表

它可以是一个简单的记录触发流,只包含一个 Update Records(更新记录)元素,但这有一个问题。还记得通过设置 Priority(优先级)字段的值来更新个案优先级吗?您的 Priority(优先级)字段只有一个值。

Priority(优先级)字段值设置为 Severity 0(严重性 0)。

在送货地址这个例子中,送货地址可能来自账单地址,也可能来自用户输入。理论上,Update Records(更新记录)元素应该是这样的:

显示送货地址值字段的图表,对话气泡中显示“Billing Address or user input, based on user’s choice”(账单地址或用户输入,根据用户选择)。

但这样是行不通的。Value(值)字段需要单一数据源。这个数据源不能账单地址用户输入;必须二选一。

因此,您需要一个中间存放处--即一个变量,它可以接受来自账单地址用户输入的送货地址。

示意图,显示了一个接受账单地址或用户输入并将其填入 Shipping Address Value(送货地址值)字段的变量

您需要一种方法来确定用户是选择复制账单地址还是手动输入地址,并采取相应行动。为此,您可以使用 Decision(决策)元素。 

然后您可以配置 Update Records(更新记录)元素,从变量设置 Shipping Address(送货地址)值。但如何设置变量值呢?

这就是 Assignment(分配)元素的作用。分配元素将用户想要的地址分配给变量,这样变量值就可以用来更新 Shipping Address(送货地址)字段。

分配元素

要将值分配给变量,您需使用 Assignment(分配)元素。在送货地址示例中,您可以通过更改变量值来更新一条记录中的一个字段,但 Assignment(分配)元素的功能远不止于此。

变量就像一个便当盒。便当盒可以储存各种食物,而变量则可以储存各种值。 

一个透明的食品储藏盒,里面有一个三明治,侧面有一条胶带,上面写着“我的午餐”。

要设置变量的值,需要为其分配。例如:Priority(优先级)等于 Sev 0。

在 Assignment(分配)元素中,您可以通过指定变量及其值来设置变量的值。每个分配语句还包括一个运算符,用于控制变量的更新方式。请看这个例子。

一个分配语句,其中变量为优先级,运算符为等于,值为 Sev 0。

在此示例中,Equals(等于)运算符用指定的值替换了变量的当前值。因此,Priority(优先级)变量将 Sev 0 储存为其值。

备注

在许多元素(包括 Assignment(分配)元素)中,Value(值)字段允许您输入自己的文本、选择流中的现有资源或将两者结合在一起。例如,如果您在 Value(值)字段中输入 The color is {!colorFormula}(颜色为 {!colorFormula}),colorFormula 公式返回值 “red”(红色),则变量会接收值“The color is red”(颜色为红色)。

利用分配元素构建流

回过头来看 Flo 要求的送货地址流,让我们创建一个屏幕流,Flo 可以将其嵌入 Account Lightning 页面,并在 Shipping Address(送货地址)字段填写完毕后隐藏。

备注

您可能还没有了解过屏幕流。在本示例中,我们将让屏幕保持简单,但如果您想了解更多,请查看屏幕流徽章。

首先,运用在本徽章和“流中的数据和操作”徽章中学到的知识创建屏幕流。

创建一个屏幕流和一个文本变量。

  1. 创建一个流并选择 Screen Flow(屏幕流)类型。
  2. 创建一个文本变量以接收当前记录的 ID:
    • API 名称:recordId
    • 数据类型:Text(文本)
    • 可用于输入:选中
备注

在本练习中,我们将变量命名为 recordId 是有特殊原因的。当用户通过操作按钮运行流时,Salesforce 会自动在流中查找名为 recordId 的变量,如果找到,就会将当前记录的 ID 赋予该变量。这种特殊设置使通过操作按钮运行的流知道用户点击按钮时正在查看哪条记录。

我们不会在本练习中创建操作按钮,但您可以在最后创建一个。如需更多信息,请查看屏幕流分发徽章的“在记录上添加流作为操作”单元。

创建获取记录、屏幕和决策要素

  1. 添加 Get Records(获取记录)元素,以获取当前记录的详细信息并将其存储在记录变量中。
    • 标签:Get Account Data(获取客户数据)
    • 对象:Account(客户)
    • 筛选条件要求:
      • 字段:Id
      • 运算符:Equals(等于)
      • 值:recordId
    • 存储的记录数量:Only the first record(仅限第一个记录)
    • 如何存储记录数据:Automatically store all fields(自动存储所有字段)
  1. 添加 Screen(屏幕)元素,提示用户复制账单地址或输入送货地址。
    • 在画布上的 Get Account Data(获取客户数据)元素之后,单击 添加元素
    • 选择 Screen(屏幕)
    • 在 Label(标签)处输入 Enter Address(输入地址)。
    • 从 Components(组件)面板中,拖动一个复选框到屏幕画布上。
      • 在 Label(标签)处输入 Use the billing address for the shipping address(使用账单地址作为送货地址)。
      • 对于 API 名称,将默认名称缩短为 Use_the_billing_address
    • 将 Address(地址)组件拖到屏幕画布上的复选框下方。
      • 在 API Name(API 名称)处输入 ScreenShipping
      • 在 Label(标签)处输入 Shipping Address(送货地址)。
        屏幕画布看起来应该是这样的。
        与前面的步骤相对应的屏幕画布。
  1. 单击 Done(完成)
  2. 添加 Decision(决策)元素,根据用户的选择创建不同的路径。
    • 标签:Use Billing Address?(使用账单地址?)
    • 结果 1 标签:Selected(已选)
    • 结果 1 条件要求:
      • 资源:Enter Address(输入地址) > Use the Billing Address…(使用账单地址…)
      • 运算符:Equals(等于)
      • 值:True
    • 默认结果标签:Not Selected(未选)
    • 单击 关闭 关闭侧面板。
  1. 保存流。在 Flow Label(流标签)处输入 Set Shipping Address(设置送货地址)。

您的流看起来应该是这样:

Flow Builder 画布,显示与前面步骤相对应的流。

现在您有了一个屏幕流,允许用户复制账单地址或手动输入该地址。无论用户选择哪个来源,您都需要将送货地址复制到 Get Account Data(获取客户数据)记录变量中。 

  • 如果用户选择使用账单地址,则流会将来自记录变量的账单地址字段的值分配至其送货地址字段。
  • 如果用户选择手动输入送货地址,则流会将输入到 Enter Address(输入地址)屏幕的值分配到记录变量的送货地址字段。

然后,更新 Get Account Data(获取客户数据)元素的记录变量(即“来自获取客户数据的客户”)中的数据。您将创建两个 Assignment(分配)元素来设置该记录变量中的字段值:一个用于复制账单地址(在 Selected(已选)路径中),另一个用于从 Enter Address(输入地址)屏幕元素中复制数据(在 Not Selected(未选)路径中)。

将分配元素添加到已选路径

  1. 在 Selected(已选)路径中,单击 添加元素
  2. 滚动到 Logic(逻辑)部分并选择 Assignment(分配)
  3. 在 Label(标签)处输入 Copy Billing Address(复制账单地址)。
  4. 为 Variable(变量)选择 Account from Get Account Data(来自获取客户数据的客户),然后选择 Shipping City(收货城市)
  5. 为 Value(值)选择 Account from Get Account Data(来自获取客户数据的客户),然后选择 Billing City(开单城市)
  6. 单击 +Add Assignment(+添加分配)四次,这样就一共有五行。
    您必须单独设置每个 Address(地址)字段,因此五个地址字段都分别需要一个分配行。
  7. 在添加的分配行中选择这些值:
    • Account from Get Account Data(来自获取客户数据的客户)> Shipping Country(送货国家)等于 Account from Get Account Data(来自获取客户数据的客户)> Billing Country(开单国家/地区)
    • Account from Get Account Data(来自获取客户数据的客户)> Shipping Zip/Postal Code(收货地址 - 邮政编码)等于 Account from Get Account Data(来自获取客户数据的客户)> Billing Zip/Postal Code(开单地址 - 邮政编码)
    • Account from Get Account Data(来自获取客户数据的客户)> Shipping State/Province(收货地址 - 州/省)等于 Account from Get Account Data(来自获取客户数据的客户)> Billing State/Province(开单州/省)
    • Account from Get Account Data(来自获取客户数据的客户)> Shipping Street(收货地址 - 街道)等于 Account from Get Account Data(来自获取客户数据的客户)> Billing Street(开单地址 - 街道)
备注

当一个元素有多行时,其分配会按顺序进行。

  1. 单击 关闭 关闭侧面板。
  2. 保存流。

将分配元素添加到未选路径

  1. 在 Not Selected(未选)路径中,单击 添加元素
  2. 滚动到 Logic(逻辑)部分并选择 Assignment(分配)
  3. 在 Label(标签)处输入 Set Address from Screen(从屏幕设置地址)。
  4. 单击 +Add Assignment(+添加分配)四次,这样就一共有五行。
  5. 在分配行中选择这些值:
    • Account from Get Account Data(来自获取客户数据的客户)> Shipping City(收货城市)等于 Enter Address(输入地址) > ScreenShipping > City Value(城市值)
    • Account from Get Account Data(来自获取客户数据的客户)> Shipping Country(送货国家)等于 Enter Address(输入地址) > ScreenShipping > Country Value(国家/地区值)
    • Account from Get Account Data(来自获取客户数据的客户)> Shipping Zip/Postal Code(收货地址 - 邮政编码)等于 Enter Address(输入地址) > ScreenShipping > Postal Code Value(邮政编码值)
    • Account from Get Account Data(来自获取客户数据的客户)> Shipping State/Province(收货地址 - 州/省)等于 Enter Address(输入地址) > ScreenShipping > State or Provinc Value(州或省值)
    • Account from Get Account Data(来自获取客户数据的客户)> Shipping Street(收货地址 - 街道)等于 Enter Address(输入地址) > ScreenShipping > Street Value(街道值)
  1. 单击 关闭 关闭侧面板。
  2. 保存流。

现在,流将为记录变量的送货地址字段分配。但您仍然需要将该送货地址取回客户记录中。实际上,Assignment(分配)元素并不会将新值保存到记录中。要做到这一点,您需要一个 Update Records(更新记录)元素。在 Selected(已选)和 Not Selected(未选)路径合并为一个路径后,创建 Update Records(更新记录)元素。

更新客户记录

  1. 在流画布上的两个 Assignment(分配)元素之后,添加一个 Update Records(更新记录)元素。
  2. 在 Label(标签)处输入 Update Account(更新客户)。
  3. 对于 How to Find Records to Update and Set Their Values(如何查找记录,以更新并设置值),保留 Use the IDs and all field values from a record or record collection(使用记录或记录集合中的 ID 和所有字段值)
    在 Update Records(更新记录)元素中,此设置会从记录变量更新记录。该元素使用记录变量的 ID 字段确定要更新的记录,并更新该记录的字段以匹配变量的字段。
  4. 对于 Record or Record Collection(记录或记录集合),选择 Account from Get Account Data(来自获取客户数据的客户)
  5. 保存流。

就是这样!您构建了一个使用五种元素的流。 

  1. Get Records(获取记录)元素(获取客户数据)获取当前客户记录的字段值。
  2. Screen(屏幕)元素(输入地址)提示用户输入送货地址或复制账单地址。
  3. Decision(决策)元素(使用账单地址?)确定用户的选择,并为每种可能性创建一个路径。
  4. 两个 Assignment(分配)元素更改 Get Account Data(获取客户数据)记录变量中的送货地址字段,方式是将账单地址复制到送货地址(复制账单地址),或者将手动输入的信息复制到送货地址(从屏幕设置地址)。
  5. 最后,Update Records(更新记录)元素(更新客户)会将记录变量中已更改的值提交回当前客户记录。

Flow Builder 画布,显示与前面步骤相对应的流。

您可能想知道 Assignment(分配)元素还能做些什么。请继续往下看。

资源

在 Salesforce 帮助中分享 Trailhead 反馈

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

了解更多 继续分享反馈