连接到 Microsoft Dataverse
您可以将业务数据安全地存储在 Dataverse 中,然后在 Power Apps 中构建丰富的应用,让用户可以管理该数据。 您还可以将该数据集成到包含 Power Automate、Power BI 和 Dynamics 365 中的数据的解决方案中。
默认情况下,应用连接到 Dataverse 表的当前环境。 如果您的应用移至另一个环境,连接器将连接到新环境中的数据。 此行为适用于使用单个环境的应用,或者遵从应用程序生命周期管理 (ALM) 流程从开发移到测试再到生产的应用程序。
当您从 Dataverse 添加数据时,您可以更改环境,然后选择一个或多个表。 默认情况下,应用连接到当前环境中的数据。
如果您选择更改环境,您可以指定一个不同的环境来代替当前环境或与当前环境一起从其中提取数据。
所选环境的名称将出现在表列表下方。
可见性和访问
当您选择更改环境时,您会看到一个环境列表。 虽然您可能会在列表中看到一个环境,但该环境中的安全角色控制您可以在该环境中执行的操作。 例如,如果您没有读取特权,您将无法查看环境中的表和记录。
备注
应用程序设计器之外的应用详细信息窗格中列出的连接显示需要用户同意的连接。 由于应用中使用的本机 Dataverse 连接不需要额外的同意,因此本机连接不会在该列表中。
Power Apps 数据类型映射
Microsoft Dataverse 连接器比 Dynamics 365 connector 更可靠,并且接近功能奇偶一致性。 下表列出了 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] | 是 | - | - | 否 | - |
- 带有算术表达式的数字(例如,
Filter(table, field + 10 > 100)
)不可委派。 语言和时区不可委派。 不支持将列转换为数字。 当值在 Power Apps 中显示为数字,但后端数据源不是简单的数字(如货币)时,它不会被委派。 - 不支持 Trim[Ends] 或 Len。 支持其他函数,如 Left、Mid、Right、Upper、Lower、Replace、Substitute 等。此外,委派不支持 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())
。
直接在 Power Fx 中调用 Dataverse 操作
作为 Power Fx 语言的一部分,作者现在可以直接在公式中调用 Dataverse 操作。 取消绑定和绑定操作均受支持。 作者可以向其应用添加 Power Fx Environment
语言对象和访问 Dataverse 操作。
作者可以针对输入和输出使用非类型化对象字段。 例如,在输入端,许多 Dataverse 操作需要一个非类型化对象作为参数。 作者现在可以使用 ParseJSON 将 Power Fx 记录转换为非类型化对象,以传递这些参数。 在输出端,对于返回非类型化对象的操作,您可以简单地将 dot
放入返回的对象属性中。 您需要转换特定值,以供在 Power Apps 中使用的特定上下文中使用,例如标签。
如果没有此功能,作者通常会使用 Power Automate 直接调用 Dataverse。 但是,直接从 Power Fx 调用 Dataverse 可提供显著的性能优势(和易用性),应该优先用于直接事务读取和更新。 如果您有一个应用使用 Power Automate 来调用 Dataverse 操作,您会看到一个横幅,建议您改用这种直接操作方法。
使用非类型化字段不限于 Dataverse。 它适用于所有类型的连接器,并提供基本的临时动态模式支持。
备注
- 我们不完全支持 Power Fx 命令中的 DV 操作(特定于任何带有参数的操作调用。)
- 我们不支持对实体或实体集合的直接引用。
- 对于嵌套的(2 层或更多层深度)对象类型的参数,PowerApps 中必须使用第二层属性。
允许访问 Microsoft Dataverse 操作
对于新应用,此功能自动启用。 对于以前创建的应用,您需要启用对 Dataverse 操作的访问。
对于较旧的应用,请打开画布应用进行编辑,导航到设置>即将推出的功能>已停用并启用 Dataverse 操作。
将 Power Fx 环境语言对象添加到您的应用
若要在 Power Fx 公式中使用 Dataverse 操作, 请选择添加数据,搜索环境并将其添加到您的应用程序中。
这会将 Power Fx Environment
语言对象添加到您的应用程序中。
访问 Dataverse 操作
将 Power Fx Environment
对象添加到您的应用程序后,您可以通过将 Environment
添加到您的公式,然后点入到操作中来访问 Dataverse 操作。
未绑定 Dataverse 操作是表的对等级别,需要环境语言对象的父级范围。 您环境中的所有操作都可用 – 系统级和自定义。 绑定和取消绑定操作均可用。 2 级调用限制已移除。
有关如何在公式中使用 Dataverse 操作的更多详细信息,请参阅使用非类型化对象和动态对象。
为绑定/未绑定操作传递实体类型参数
要为 Dataverse 操作传递实体类型参数,首先将实体类型参数值设置为变量。 此外,还需确保填充所有缺少的值,如 *activityId。 对于在 Swagger 中未定义类型的实体,此操作特别重要。
Set(MyArgVar, {
name: first(systemUser).name,
Id: First(systemUser).Id
... })
其他环境中的重命名、刷新和操作
您可以通过选择省略号并选择“重命名”来重命名环境。 如果您在 Dataverse 中添加新 Dataverse 操作并需要 Power Apps 查看它,您可以选择“刷新”。 如果您需要在不同的环境中使用操作,首先需要更改环境,然后搜索“环境”,选择并将其添加到您的应用中。