安全地将业务数据存储在 Dataverse 中,并在 Power Apps 中生成丰富的应用,以便用户可以管理这些数据。 您还可以将该数据集成到包含 Power Automate、Power BI 和 Dynamics 365 中的数据的解决方案中。
默认情况下,应用连接到 Dataverse 表的当前环境。 如果您的应用移至另一个环境,连接器将连接到新环境中的数据。 此行为适用于使用单个环境或遵循应用程序生命周期管理(ALM)过程的应用,以便从开发、测试到生产环境。
从 Dataverse 添加数据时,请更改环境,然后选择一个或多个表。 默认情况下,应用连接到当前环境中的数据。
如果选择 “更改环境”,请指定要从当前环境(或除)拉取数据以外的其他环境。
所选环境的名称将出现在表列表下方。
可见性和访问
选择 “更改环境”时,会看到环境列表。 即使你在列表中看到环境,环境中的安全角色也会控制你可以执行哪些作。 例如,如果没有读取权限,则看不到环境中的表和记录。
备注
应用设计器外部的应用详细信息窗格中列出的连接显示需要用户同意的连接。 由于应用中使用的本机 Dataverse 连接不需要其他许可,因此本机连接不在该列表中。
Power Apps 数据类型映射
Microsoft Dataverse 连接器比 Dynamics 365 连接器更可靠,并且即将接近功能奇偶校验。 下表列出了 Power Apps 中的数据类型及其映射到 Dataverse 中的数据类型的方式。
| Power Apps | Microsoft Dataverse |
|---|---|
| 单选 | 选择项,是/否 |
| 日期/时间 | 日期时间、日期和时间、仅限日期 |
| 图像 | 图像 |
| 数量 | 浮点数、货币、十进制数、持续时间、语言、时区、整数 |
| 文本 | 电子邮件、多行文本、电话、文本、文本区域、股票代号、URL |
| Guid | 唯一标识符 |
Dataverse 的 Power Apps 可委派函数和操作
这些 Power Apps作(对于给定的数据类型)可以委托给 Dataverse 进行处理,而不是在 Power Apps 中本地处理。
| 项 | 数字 [1] | 文本 [2] | 单选 | 日期/时间 [3] | Guid |
|---|---|---|---|---|---|
| <、 <=、 >、 >= | 是 | 是 | 否 | 是 | - |
| =、<> | 是 | 是 | 是 | 是 | 是 |
| 和/或/不是 | 是 | 是 | 是 | 是 | 是 |
| CountRows [4] [5]、CountIf [6] | 是 | 是 | 是 | 是 | 是 |
| 筛选器 | 是 | 是 | 是 | 是 | 是 |
| 第一个 [7] | 是 | 是 | 是 | 是 | 是 |
| In(成员身份)[8] | 是 | 是 | 是 | 是 | 是 |
| 在 (substring) 中 | - | 是 | - | - | - |
| IsBlank [9] | 是 | 是 | 否 | 是 | 是 |
| 查找 | 是 | 是 | 是 | 是 | 是 |
| 搜寻 | 否 | 是 | 否 | 否 | - |
| 排序 | 是 | 是 | 是 | 是 | - |
| SortByColumns | 是 | 是 | 是 | 是 | - |
| StartsWith | - | 是 | - | - | - |
| 总计、最小值、最大值、平均值 [6] | 是 | - | - | 否 | - |
| UpdateIf/RemoveIf [10] | 是 | - | - | 否 | - |
注释
- 具有算术表达式(例如)
Filter(table, field + 10 > 100)的数值不可委派。 语言和时区不可委派。 不支持将列强制转换为数字。 如果某个值在 Power Apps 中显示为数字,但后端数据源不是简单的数字,例如货币,则不会委托该值。 - 不支持 Trim[Ends] 或 Len。 支持其他函数,如 Left、Mid、Right、Upper、Lower、Replace 和 Replace。 此外,委派不支持强制转换(如 Text(column)。
- DateTime 可委派,DateTime 函数 Now() 和 Today() 除外。
- Dataverse 上的 CountRows 使用缓存值。 对于记录计数低于 50,000 条记录的非缓存值,请使用
CountIf(table, True)。 - 对于 CountRows,确保用户具有获取表总计的适当权限。
- 所有聚合函数限制为 50,000 行的集合。 如果需要,请使用 Filter 函数选择 50,000 行。 视图不支持聚合函数。
- 不支持 FirstN 函数。
- 该
In运算符受 Dataverse 的 15 表查询限制的约束。 - 支持比较。 例如,
Filter(TableName, MyCol = Blank())。 - UpdateIf 和 RemoveIf 在本地工作,但模拟委派限制为 500 或 2,000 条记录。 它们先后将记录降低到非委托 500 或 2,000 条记录限制之外。 收集满足 If 条件的记录。 通常,最多收集 500 或 2,000 条记录,然后每次执行更改。 但是,如果现有的本地数据缓存很大,则可以更新更多记录,因为该函数可以访问更多记录进行评估。
直接在 Power Fx 中调用 Dataverse 操作
作为 Power Fx 语言的一部分,现在可以直接在公式中调用 Dataverse作。 取消绑定和绑定操作均受支持。 将 Power Fx Environment 语言对象添加到应用以使用 Dataverse作。
可以使用输入和输出的动态字段。 对于输入,许多 Dataverse作需要动态值作为参数。 使用 ParseJSON 将 Power Fx 记录转换为动态值来传递这些参数。 对于输出,如果作返回动态值,只需使用点表示法来访问对象属性。 强制转换在 Power Apps 中使用的特定值,例如在标签中。
在此功能之前,你经常使用 Power Automate 直接调用 Dataverse。 从 Power Fx 调用 Dataverse 可提供显著的性能优势,并且更易于使用,因此使用此方法进行直接事务读取和更新。 如果你的应用使用 Power Automate 调用 Dataverse作,则会看到一个横幅,建议改用此直接作方法。
使用动态字段不限于 Dataverse。 此功能适用于所有类型的连接器,并提供基本的即席动态架构支持。
备注
- Power Fx 命令中不支持 DV作(对于具有参数的任何作调用)。
- 不支持直接引用实体或实体集合。
- 对于嵌套两个或更多级别的对象类型的参数,Power Apps 将二级属性视为必需。
允许访问 Microsoft Dataverse 操作
对于新应用,此功能自动启用。 对于之前创建的应用,启用对 Dataverse作的访问权限。
对于较旧的应用,请打开画布应用进行编辑。 转到“设置>即将停用”功能>,并启用 Dataverse作。
将 Power Fx 环境语言对象添加到您的应用
若要在 Power Fx 公式中使用 Dataverse作,请选择 “添加数据”,搜索 “环境”并将其添加到应用。
此步骤将 Power Fx Environment 语言对象添加到应用。
访问 Dataverse作
将 Power Fx Environment 对象添加到应用后,通过添加到 Environment 公式并使用点表示法来访问 Dataverse作。
Unbound Dataverse作与表位于同一级别,需要 环境 语言对象的父范围。 环境中的所有作都可用-系统作和自定义作。 绑定和取消绑定操作均可用。 删除了两级调用限制。
有关如何在公式中使用 Dataverse作的更多详细信息,请参阅 使用动态值。
传递绑定和未绑定作的实体类型参数
若要传递 Dataverse作的实体类型参数,请将实体类型参数值设置为变量。 请确保填写任何缺失的值,例如 *activityId。 此步骤对于在 swagger 中没有定义类型的实体非常重要。
Set(MyArgVar, {
name: First(systemUser).name,
Id: First(systemUser).Id
... })
在其他环境中重命名、刷新和使用作
若要重命名环境,请选择省略号,然后选择“重命名”。 如果在 Dataverse 中添加新的 Dataverse作并希望 Power Apps 查看它,请选择“刷新”。 若要在不同的环境中使用作,请更改环境,然后搜索“环境”,选择该作并将其添加到应用。