使用 Dataverse 中的低代码插件(预览版)
[本主题是预发行文档,有可能会有所更改。]
Microsoft Dataverse 通过低代码插件为实现更高效的数据架构和减少客户端工作负载提供了一个强大的解决方案。这些插件是可重用的实时工作流,在 Dataverse 内执行一组特定的命令,在服务器端运行,由个性化的事件处理程序触发。
重要提示
- 这是一项预览功能。
- 预览功能不适合生产使用且功能可能受限。 这些功能在正式发布之前推出,以便客户可以提前使用并提供反馈。
传统上,插件是作为编译成 .NET Framework 程序集的自定义类创建的,然后在 Dataverse 中上传和注册。 然而,随着低代码插件的引入,用户可以创建这些事件处理程序,只需要很少的编码或不需要编码,也不需要手动注册。
低代码插件存储在 Dataverse 数据库中,可以无缝集成到Power Apps 和 Power Automate 中。 工作流的行为是使用 Power Fx 表达式语言定义的,可以通过 Power Platform 连接器直接与 Dataverse 业务数据和外部数据源连接。 借助低代码插件,制作者可以用最少的编码专业知识快速构建复杂的工作流,从而产生更加精简、高效的数据架构。
服务器端逻辑的优势
定义服务器端业务逻辑有几个好处,包括:
- 增强安全性。 由于服务器端逻辑在服务器上执行,它有助于防止对敏感数据或进程的未授权访问。
- 改进性能。 通过在服务器上执行,业务逻辑可以减少需要在客户端和服务器之间传输的数据量,从而缩短处理时间。
- 一致性和可靠性。 服务器端逻辑确保业务规则一致地应用于所有客户端,降低了错误或不一致的风险。
- 更容易维护和升级。 通过将业务逻辑集中在服务器上,维护和更新变得更加容易,因为可以在一个地方进行更改,而不必更新多个客户端。
- 可扩展性。 服务器端逻辑比客户端逻辑更容易扩展,从而实现更好的性能和处理更大的工作负载。
低代码插件
Dataverse 中支持两种类型的低代码插件:
类型 | 触发器 | 支持参数 | 支持的 范围 |
---|---|---|---|
即时 | 手动运行 | 是 | 全局和表 |
自动化 | Dataverse 表事件 | 否 | 表 |
所有低代码插件都有以下共同属性:
属性 | Description |
---|---|
Display name | 插件的可读名称。 一旦创建就不能更改。 |
客户 | 插件的内部名称。 平台使用其来识别代码和数据库操作中的组件。 一旦创建就不能更改。 |
Description | 用于提供关于插件的附加上下文(目的、行为或其他重要细节)。 |
解决方案 | 用于对组件进行分组并导出到其他环境。 了解有关解决方案的更多信息。 |
表达式 | 这是使用 Power Fx 表达式语言定义的自定义函数,可用于执行操作或计算。 Power Fx 是画布应用中使用的 Power Apps 公式语言,并已扩展为在低代码插件中使用。有关更多详细信息,请参阅 支持的函数。 |
即时低代码插件是由用户手动触发的定制代码逻辑。 可以使用自定义输入和输出参数。
独特的属性:
属性 | Description |
---|---|
作用域 | 用于将插件关联到特定的表。 它可以设置为 table(显示为实体)或 global,其中 table(entity)scope 表示插件是使用特定 table 记录的上下文触发的,而 global scope 表示操作不与表关联(了解更多)。 |
参数设置 | 参数允许您在插件和运行插件的上下文之间传递信息,这使得设计可以在各种情况下重用的业务逻辑变得更加容易。 输入参数 用于向插件提供数据,并允许您通过传入您在公式中指定的 Power Fx 不同值来控制函数的行为方式。 输出参数 允许您检索函数或方法的结果,以便在程序中进一步使用。 支持的数据类型:
|
有关如何从画布应用或 Power Automate 云端流集成的更多信息: 集成低代码插件
插件权限
设计时
在 Power Platform 环境中拥有系统定制者或系统管理员安全角色成员资格的制作者可以访问该环境中的所有插件。 自定义安全角色可用于限制对低代码插件的访问。
运行时间
当调用插件时,会在调用其用户的上下文中访问插件定义中涉及的表数据(公式中的表,或者如果表与自动化插件的设置相关联)。
连接
使用 安全角色,可以将插件中的连接器访问权限限制为组织内的一组特定用户。 指定哪些角色具有创建、读取、更新或删除权限。
创建低代码插件的先决条件
- Power Platform 环境中的系统管理员或系统定制员安全角色。
- 访问 Dataverse 加速器应用程序。
小费
自 2023 年 10 月 1 日起,所有新环境都会自动安装 Dataverse 加速器应用程序。 如果您已经安装 Dataverse 加速器,您可以手动更新 Dataverse 加速器。
Dataverse 更新加速器
- 跟随说明查看 环境 中的许可应用程序。
- Dataverse 如果已安装 Accelerator 并且有可用的更新,则会在项目旁边的表中指示更新。
- 选择 Dataverse 加速器,然后在命令栏上选择 更新 。
小费
为 Microsoft - Power CAT 发布者启用 自动应用程序更新 ,以便在可用时自动接收更新(对于 2023 年 10 月 1 日之后创建的新环境不是必需的)。
备注
如果您之前安装了可选的 连接器低代码插件 解决方案,则当您在 2023 年 6 月 29 日之后更新时,它将自动删除。 这些功能将在主解决方案中可用。
创建即时低代码插件
- 播放 Dataverse 加速器应用程序。
- 选择创建即时插件卡。
- 提供显示名称。
- (可选)定义参数:
- 选择 New input parameter(新建输入参数 )或 New output parameter(新建输出参数),然后输入标签和数据类型。
- 根据需要添加更多输入和输出参数。
- Power Fx 在 Expression editor(表达式 编辑器) 中输入表达式。
- 通过标签名称引用公式中的输入参数。
- 输出参数必须在大括号内引用,例如
{ Out: "Return value" }
。 - 使用数据收集函数(如 Dataverse Filter()和 LookUp() )引用表。
- 如果范围设置为 entity,则用于
ThisRecord
访问与插件运行关联的表行中的列值,例如ThisRecord.'Account Name'
。
小费
请注意 Expression(表达式 )框中 的 intellisense。 带下划线的红色表示无效。 黄色波纹表示您的逻辑可能受委托限制的影响。 通过使用 可委派函数来避免委派问题。
- (可选)展开 Advanced options(高级选项 )以修改 解决方案、 范围或 描述。
- 选择保存。
- 测试您的即时低代码插件。
示例:计算两个整数的和。
- 创建两个输入参数
X
andY
(均为 integer 类型)和一个输出参数(Z
type string)。 - 使用以下公式:
{Z: X + Y }
创建自动化低代码插件
- 播放 Dataverse 加速器应用程序。
- 选择创建自动插件 卡片。
- 提供以下值:
- 名称:输入插件的名称,例如 Input validation(输入验证)。
- 表:选择要将插件关联到的表,例如 Account(帐户)。
- 当行为 时,运行此插件规则。 指定调用插件的数据事件。
- Power Fx 在 Expression editor(表达式 编辑器) 中输入表达式。
- 使用数据收集函数(如 Dataverse Filter()和 LookUp() )引用表。
- 用于
ThisRecord
访问与插件运行关联的表行中的列值,例如ThisRecord.'Account Name'
。
- (可选)展开 Advanced options 以修改 阶段 (何时应运行)和 保存插件的解决方案 。
- 选择保存。
- 测试您的自动化低代码插件。
在低代码插件中使用 Power Platform 连接器
Power Platform 连接器可用于低代码插件,以轻松集成来自 Dataverse 之外的系统(如 SQL Server、Salesforce 和 SharePoint)的数据和功能,而无需复杂的编码或自定义开发。
在低代码插件中使用连接器的先决条件
- 创建低代码插件的前提条件
- 连接引用 与活动连接。
在低代码插件中使用连接器操作
您可以在公式中的低代码插件中轻松使用 连接器 和 自定义连接器 。 Power Fx
- 创建与要使用的连接器的连接。
- 在环境中添加 对连接的连接引用 Dataverse 。
- 在低代码插件 Power Fx 表达式编辑器中,键入连接引用的名称(带前缀和下划线的内部名称,例如
new_connectorName
,不是显示名称)。 - 智能感知向您显示可用的操作。 选择所需的操作,然后输入所需的参数。
在低代码插件中使用连接器之前,请查看连接器的文档 ,以确保您正确传递输入和输出参数。
详细信息: 示例
备注
- 目前并不支持所有连接器操作。
- 不要使用 Dataverse 连接器从插件表达式连接到 Dataverse 表。 相反,请使用本机 Power Fx 函数与集合进行交互: Filter、Search、LookUp、 Patch、Collect 和 Set,其中列被视为全局变量。
测试低代码插件
测试即时插件
在主屏幕 中,从列表中选择即时插件,然后在命令栏上选择 测试 。 保存后,您也可以从命令栏中的即时插件编辑器进入此屏幕。
为低代码插件中定义的任何输入参数提供值,然后选择 Run。
查看响应。
小费
使用输出参数帮助验证预期行为和结果。 否则,您在测试时只会看到成功或失败。
测试自动化插件
通过调用数据事件来测试自动化插件。 通过验证公式中定义的预期更改,观察插件是否运行成功。
小费
在预览期间,您可以使用 Power Apps 中的表编辑器调用相关的数据事件:
- 登录 Power Apps,转到 表 并选择 插件 表。
- 在命令栏上,选择编辑。
- 直接从该视图创建、更新或删除行。 Alternatively,通过选择一行在默认表单中打开一行,然后在命令栏上选择 使用表单 编辑行。
集成低代码插件
从画布应用或自定义页面调用即时插件
- Dataverse 在 Accelerator 应用程序中:
- 在列表中选择即时插件。
- 选择 命令栏上的复制代码片段 。
- 将复制的公式粘贴并保存到文本编辑器或记事本中(在某个容易查阅的地方)。
- 在 Power Apps:
- 在 Power Apps Studio 中创建或编辑画布应用程序(或自定义页面)。
- 在左侧导航 的数据源 选项卡下,选择 + 新建数据源,然后从连接器中搜索 环境 选项 Dataverse 。
- 将以下组件插入画布:
- 将您复制的插件公式粘贴到按钮的属性
OnSelect
中。 - 映射每个输入参数
Value
以引用相应的输入控件:- 如果公式是
Environment.new_CalculateSum({ X: Value, Y: Value });
,则可以将其重写为:Environment.new_CalculateSum({ X: TextInput1.Text, Y: TextInput2.Text });
- 如果公式已绑定,请替换为
Environment
表显示名称以访问插件。
- 如果公式是
- 如果为低代码插件定义了 output 参数:
- 在 or 公式中
Set()
捕获回复:UpdateContext()
。Set( ActionResult, Environments.CalculateSum({ X: TextInput1.Text, Y: TextInput2.Text }) );
在标签中显示变量。 Alternatively 使用Notify()
公式在通知中显示数据。
- 在 or 公式中
- 播放应用程序,选择命令栏上的命令运行低代码插件。
详细了解如何 直接从 Dataverse 画布应用中 Power Fx 调用操作。
从 Power Automate 云端流调用即时插件
从 Dataverse Web API 调用一个即时插件
跟随的步骤操作 从 Web API 调用自定义 API 文档中 的 Unbound action 或 Function bound to table 部分 (取决于插件的相应范围)。
获取低代码插件帮助
如果您在创建或运行低代码插件时遇到问题,请转到以下提示以了解可能发生的常见问题: Microsoft Dataverse 低代码插件提示和已知问题
联系帮助和支持
对于低代码插件提示中未涵盖 Dataverse 的 Accelerator 解决方案安装或低代码插件问题 Microsoft Dataverse 和已知问题(例如收到未记录的错误), 请使用帮助 + 支持体验 并包含以下信息:
- 文件类型 - Dataverse Web API 和 SDK
- 问题子类型 - Dataverse 的加速器工具包
您可以创建的示例低代码插件
有关如何创建低代码插件的几个示例,请转到 示例 Dataverse 低代码插件(预览版)
限制
需要读取环境语言对象以访问现有画布应用内的新插件。 对于在将环境表数据源添加到现有画布应用程序后创建的任何插件,您必须移除并重新添加 Power Fx 环境语言对象。 然后,您会看到更新后的插件列表作为操作。
如果您想要引用公式中的任何表,智能感知需要在自动化插件中使用显式表示法。 使用以下消歧义语法,例如
[@Accounts]
,使用方括号和@
符号(notAccounts
)。嵌套支持。 插件只能从 Power Fx 表达式中调用 Microsoft 发布的第一方操作。
某些
Collect
情况需要Patch
。 在某些情况下Collect()
不起作用。 解决方法是使用Patch()
下面填充相关列示例所示。 如果您在创建自动插件,在 Power Fx 公式中引用的每个表前加上 @。Patch(Faxes, Collect(Faxes, { Subject : "Sub1" } ), { Regarding : First(Accounts) } )
当低代码插件与连接器交互并且使用 DLP 时,管理员可以阻止使用 DLP 创建连接。 但是,Dataverse 环境中的现有连接引用继续发挥作用。 如果管理员需要阻止与任何连接器的所有低代码插件交互,他们可以禁用组织设置
Allowconnectorsonpowerfxactions
。 默认情况下,此设置是启用的,可以通过常用的 SDK 方法(WebAPI、SDK、PowerShell 等)禁用。 您可以使用一个低代码的即时插件来将其禁用,如下所示:Patch(Organizations, First(Organizations), { 'Enable connectors on power fx actions.': 'Enable connectors on power fx actions. (Organizations)'.No })
使用连接器的插件只能输出特定字段的结果。 因此,您需要将连接器响应中的特定原始值映射到输出值。
具有自定义连接器限制的低代码插件
如果您有具有自定义连接器的低代码插件,则必须在连接引用或流之前首先导入自定义连接器。
如果您的环境在解决方案中不包含自定义连接器,则导入仅包含自定义连接器的单独解决方案。 在导入实际解决方案之前执行此导入。 您需要首先执行此操作,因为 Azure 必须注册自定义连接器,然后才能导入其他解决方案组件。
如果导入包含自定义连接器和流的解决方案,Azure 将无法在注册连接引用或流时注册自定义连接器。 这也适用于之前未在单独解决方案中导入的自定义连接器的连接引用。 如果 Azure 未注册自定义连接器,导入将失败,或者您无法开始导入。
详细信息: 在解决方案中创建自定义连接器:已知限制