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 专家。

使用分配元素处理数据

Assignment(分配)元素还可以更改现有变量数据,而不是完全将其替换。

结合文本

当变量的数据类型为文本时,可以选择 Add 作为分配元素的运算符。Add 运算符可以让您在当前值的末尾添加文本。

Set Shipping Address(设置送货地址)流运行良好,但 Flo 现在想知道送货地址是否是最新的。在 Copy Address(复制地址)分配元素中,我们来添加一行,该行将在客户的 Description(描述)字段中添加备注,注明为客户添加送货地址的日期。我们不想替换 Description(描述)字段中已有的内容,只想在末尾添加一个备注。但请注意,Salesforce 无法将文本变量与非文本资源(如日期变量或数字字段)相结合。要添加非文本数据,请创建一个公式,使用 TEXT() 函数将非文本值转换为文本。

首先,让我们创建一个包含新增文本的公式。

  1. 单击 切换工具箱 显示工具箱。
  2. 单击新建资源
  3. 在 Resource Type(资源类型)处选择 Formula(公式)
  4. 在 API Name(API 名称)处输入 frmChangeDateNote
  5. 在 Data Type(数据类型)处选择 Text(文本)。(尽管我们添加的是日期,但最终结果必须是文本数据类型,这样我们才能将其添加到文本字段)。
  6. 在 Formula(公式)字段中输入以下文本:
    " Shipping Address added on " & TEXT()
  7. 将光标置于括号( )内。
  8. 在 Insert a resource…(插入资源…)字段中,选择 $Flow > Current Date(当前日期)
  9. 单击 Check Syntax(检查语法)
    语法检查器非常有助于发现带有嵌套函数的复杂长公式中的错误。
    与前面的步骤相对应的公式字段
  10. 单击 Done(完成)

在进入下一步之前,我们先来看看这个公式中的一些内容。 

" Shipping Address added on " & TEXT({!$Flow.CurrentDate})
  • 注意引号中短语开头和结尾的空格。这些空格将新短语与 Description(描述)字段中已有的文本和后面的日期分隔开来。例如,如果结尾没有空格,流会将描述设置为“Shipping Address added on03-02-2023(送货地址添加于 03-02-2023)。
  • & 告诉公式合并前后的文本,与我们使用分配的 Add 运算符的效果类似。
  • TEXT() 函数将其中的内容转换为文本,以便在文本字段中使用。

然后,将文本添加行添加到 Copy Billing Address(复制账单地址)分配中。

  1. 单击 Copy Billing Address(复制账单地址)元素并选择 Edit Element(编辑元素)
  2. 单击 + Add Assignment(+添加分配)
  3. 在 Variable(变量)字段中,选择 Account from Get Account Data(来自获取客户数据的客户),然后选择 Account Description(客户描述)。我们在这里设置客户变量的 Description(描述)字段,因为它是正在变化的变量
  4. 在 Operator(运算符)字段,选择 Add
  5. 在 Value(值)字段,选择 frmChangeDateNote。我们在这里选择公式,因为它包含我们添加到描述中的文本
    与前面步骤相对应的变量、运算符和值。
  6. 保存流。

现在,当 Update Records(更新记录)元素更新客户时,更新内容将包括更改后的 Description(描述)。

备注

如果使用分配只是为了合并两个文本而不进行任何转换,则不需要使用公式在新旧文本之间添加空格。您可以在 Value(值)字段的新文本前手动添加一个空格。例如,对于名为“Answer”(答案)的变量,可以直接在 Value(值)字段中输入 “ {!Answer}”。

执行简单计算

您还可以使用 Add 运算符对数据类型为数字或货币的变量进行添加。不过,这会执行实际的数学运算;如果将数字值 4 和 2 相结合,得到的是 6,而不是 42。您还可以使用 Subtract 运算符从数字和货币变量值中进行减除。

例如,该分配元素可从业务机会金额中减去折扣。业务机会变量的 Amount(金额)应放在 Variable(变量)字段中,因为该值是会变化的值。Operator(运算符)被设置为 Subtract。最后,带有折扣金额的变量进入 Value(值)字段。

与前面和后面的描述相对应的 New Assignment(新分配)侧面板。

但请看第二行:这里是添加到日期字段。您还可以使用 Add 和 Subtract 运算符来从日期值中添加或减去天数。此 Assignment(分配)元素为业务机会的结束日期增加了 2 天。

使用公式自动计算变化

当您创建 frmChangeDateNote 公式时,& 符号将两个文本相结合,其功能与 Add 运算符在分配中的作用相同。那么,我们为什么不用 & 符号将日期直接附加到 Description(描述)字段中呢?& 符号只在公式中起作用,而 Description(描述)是一个长文本字段。在流公式中,Salesforce 不允许使用长文本字段,因为它们很容易超出公式的计算限制。

这一限制正说明了流中公式的局限性和复杂性。流公式的计算时间有限,字符数也有限,因此让复杂的公式本身就存在风险。此外,与变量不同,公式不能在流的中途更改。那么,什么时候适合使用公式呢?

把公式想象成您工具包里那些刀头形状您从未见过的螺丝刀。也许您不会经常用到它们,但当您真的遇到这些形状的螺丝钉时,您就会庆幸自己拥有这种特殊的工具!换句话说,一般情况下,当您遇到只有公式才能解决的情况时,就应该使用公式。

Flo Smith 拿着一把奇形怪状的螺丝刀,一脸疑惑。

frmChangeDateNote 公式就是遵循这一规则的极好例证。我们不能只使用一个 Assignment(分配)元素将日期附加到描述中,因为日期必须先转换为文本值。我们需要公式的 TEXT() 函数来完成转换。

资源

实践挑战

+500 分

准备好

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

您的挑战

Combine Texts Using the Assignment Element
Create a flow that adds "VIP" to the beginning of an account's description when a related opportunity has “VIP” in its name and the opportunity is set to Closed Won.
  • Create a record-triggered flow:
    • Object: Opportunity
    • Trigger the Flow When: A record is updated
    • Condition Requirements: All Conditions Are Met (AND)
    • Add a condition:
      • Field: Stage
      • Operator: Equals
      • Value: Closed Won
    • Add another condition:
      • Field: Name
      • Operator: Contains
      • Value: VIP
    • When to Run the Flow for Updated Records: Only when a record is updated to meet the condition requirements
    • Optimize the Flow for: Actions and Related Records

  • Create a text variable:
    • API Name: VIP_Description
    • Default Value: VIP. (Include a space after the period so that the two texts don’t run together.)

  • Add a Get Records element:
    • Label: Get Account
    • API Name: Get_Account
    • Object: Account
    • Condition Requirements: All Conditions Are Met (AND)
      • Field: Id
      • Operator: Equals
      • Value: $Record > AccountId
    • Keep default values for all other settings

  • After the Get Records element, add an Assignment element:
    • Label: Append Description to VIP_Description
    • API Name: Append_Description_to_VIP_Description
    • Variable: VIP_Description
    • Operator: Add
    • Value: Account from Get Account > Account Description

  • After the Assignment element, add an Update Records element:
    • Label: Update Account Description
    • API Name: Update_Account_Description
    • Select Update records related to the opportunity record that triggered the flow
    • Records Related to Opportunity: Triggering Opportunity > Account ID (To select the whole Account record, after you select Account ID, click outside the picklist.)
    • Condition Requirements to Update Record: None—Update All Related Records
    • Set Field Values:
      • Field: Description
      • Value: VIP_Description

  • Save and activate the flow.
    • Label: Add VIP to Description
    • API Name: Add_VIP_to_Description
在 Salesforce 帮助中分享 Trailhead 反馈

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

了解更多 继续分享反馈