使用 Power Fx 创建表达式

Power Fx 是一种使用类似 Excel 的公式的低代码语言。 使用 Power Fx 创建允许助手操纵数据的复杂逻辑。 例如,Power Fx 公式可以设置变量的值、解析字符串或在条件中使用表达式。 有关详细信息,请参阅 Power Fx 概述公式参考

备注

Power Fx 公式使用 Copilot Studio 美式编号。 即,小数分隔符是一个句点或点,如 12,567.892 中那样。 这意味着 Power Fx 参数必须用逗号 (,) 分隔

先决条件

在公式中使用变量

要在 Power Fx 公式中使用变量,您必须为其名称添加前缀以指示变量的范围:

例如,要在公式中使用系统变量 Conversation.Id ,请将系统变量引用为 System.Conversation.Id

“输入公式”窗格的屏幕截图,其中具有一个包含系统变量的表达式。

在公式中使用文本值

除了可以在 Power Fx 公式中使用变量之外,还可以输入文本值。 要在公式中使用文字值,您必须以与其类型对应的格式输入文字值。 下表列出了数据类型及其相应文字值的格式。

类型​​ 格式示例
String "hi""hello world!""copilot"
布尔型 truefalse
数字 1532,, 5.258-9201
记录和表格 [1][45, 8, 2]["cats", "dogs"],, { id: 1 }{ message: "hello" } { name: "John", info: { age: 25, weight: 175 } }
日期/时间 Time(5,0,23)Date(2022,5,24)DateTimeValue("May 10, 2022 5:00:00 PM")
单选 不支持
空白 Blank()

常用 Power Fx 公式

下表列出了要用于该数据类型的数据类型和相应的 Power Fx 公式。

类型​​ Power Fx 公式
String 文本函数
Concat 和 Concatenate 函数
Len 函数
Lower、Upper 和 Proper 函数
IsMatch、Match 和 MatchAll 函数
EndsWith 和 StartsWith 函数
Find 函数
替换和替换功能
布尔型 布尔函数
And、Or 和 Not 函数
数字 Decimal、Float 和 Value 函数
Int、Round、RoundDown、RoundUp 和 Trun 函数
记录和表格 Concat 和 Concatenate 函数
Count、CountA、CountIf 和 CountRows 函数
ForAll 函数
First、FirstN、Index、Last 和 LastN 函数
Filter、Search 和 LookUp 函数
JSON 函数
ParseJSON 函数
日期/时间 Date、DateTime 和 Time 函数
DateValue、TimeValue 和 DateTimeValue 函数
Day、Month、Year、Hour、Minute、Second 和 Weekday 函数
Now、Today、IsToday、UTCNow、UTCToday、IsUTCToday 函数
DateAdd、DateDiff 和 TimeZoneOffset 函数
文本函数
空白 Blank、Coalesce、IsBlank 和 IsEmpty 函数

使用 Power Fx 设置变量

在此示例中, Power Fx 表达式以大写字母存储和输出客户的名称。

  1. 创建主题并添加问题节点。

  2. 对于 Enter a message( 输入消息),输入“What is your name?(您的姓名是什么?)”。

  3. 识别下面,选择实体人员姓名

  4. 选择将响应另存为下的框,然后选择变量 Var1 并将其命名为 customerName

  5. 问题节点下,选择 +,然后选择设置变量值

  6. 选中设置变量下的方框,然后选择新建,并将其命名为 capsName

  7. 目标值框中,选择 > 箭头,然后选择公式选项卡。

  8. fx 框中,输入 Upper(Text(Topic.customerName)),然后选择插入

    “设置变量”节点中 Power Fx 公式的屏幕截图,“公式”选项卡突出显示。

  9. 问题节点下,选择 +,然后选择发送消息

  10. 输入“HELLO”,选择 {x},然后选择 capsName

    定义了消息的 Message 节点的屏幕截图。

使用 Power Fx 公式作为条件

若要评估更复杂的表达式,请设置条件节点以使用 Power Fx 公式。

在本例中,助手确定预订日期是否有资格享受折扣。 为此,它会检查客户提供的预订日期是否距当前日期相差 14 天或更长时间。

  1. 创建主题并添加问题节点。

  2. 对于 Enter a message( 输入消息),输入“Booking date?(预订日期?)。

  3. 识别下面,选择实体日期和时间

  4. 选择将响应另存为下的框,然后选择变量 Var1 并将其命名为 bookingDate

    问题节点的屏幕截图,其中选择了日期和时间实体并且设置了变量。

  5. 选择 Question(问题 )节点下的 Add node 图标 ,然后选择 Add a condition(添加条件)。

  6. 选择 More 图标(... ), 然后选择 选择 Change to formula(更改为公式)。

  7. 函数框中,选择 > 箭头,然后选择公式选项卡。

  8. fx 框的内容替换为公式 Topic.bookingDate > (DateAdd (Now(), 14)),然后选择插入

  9. 在 Condition 节点下,添加 Message 节点并输入消息“You eligible for a discount”。

  10. 在 All Other Conditions 节点下,添加 Message 节点并输入消息“抱歉,您没有资格享受折扣”。

    条件 Message 节点的屏幕截图。