隔离模型驱动应用中的问题
模型驱动应用由配置驱动。 可以提供有关生成应用的高级说明。 还可以引入影响应用多个部分的自定义组件。 当应用没有按预期运行时,如果应用是自定义错误或 Power Apps 系统中的 bug,则可能并不明显。
下面是在模型驱动应用中隔离问题的一些技术。
删除自定义项
以下功能可能会影响正常操作。 请尝试禁用或删除它们,并检查问题是否仍然存在。 详细了解如何查找和禁用窗体上的自定义项。
业务规则
影响:窗体页
业务规则 根据记录的状态更改窗体的行为。 请尝试禁用或简化规则,并检查窗体是否仍按预期工作。
客户端脚本
影响:窗体页
客户端脚本 包含 JavaScript 代码,这些代码可能会与 Power Apps 系统冲突,或者以意外的方式更改它。 如果禁用脚本可以解决问题,则应 隔离自定义脚本的哪个部分导致此问题。
可以通过将此脚本追加到页面的 URL 来暂时禁用所有自定义脚本:
&flags=DisableFormLibraries=true,DisableWebResourceControls=true
自定义命令
影响:窗体页、基于表的视图页
如果在命令栏中选择命令后出现问题,请检查它是否为自定义命令。 自定义命令可以包含导致意外行为的 JavaScript 代码。 新式命令可以使用 Power Fx 定义自定义操作。 在任一情况下,都尝试简化命令,以确定自定义命令的定义方式是否存在错误。
自定义控件
影响:窗体页、基于表格的视图页、自定义页面
可以 替换窗体页上 的控件,或者 将基于表的视图页 中使用的网格控件替换为 Power Apps 组件。 这些控件是具有 JavaScript 和 CSS 代码的自定义控件,可能会影响页面的其他部分。 尝试切换到开箱即用控件以查看自定义控件是否是问题。
服务器插件和进程
影响:所有页面
管理员可以 安装插件并创建用于修改应用业务逻辑的进程。 如有任何相关的服务器端自定义项,请咨询管理员。
与现用配置进行比较
为了帮助确定某些内容是否是配置错误,检查应用的其他部分可能很有用。
例如,此问题是否与不同的问题发生:
- 表(实体)
- 视图
- 具有相同表的应用
- 同一表的窗体
- 引用同一列的控件(属性)
理想情况下,与尚未自定义的现用一个比较。 例如,如果问题与创建的表(实体)有关,请查看现装表。
如果问题在其他位置未发生,请将差异与配置方式进行比较。 表关系和权限的设置方式可能不同。 或者未为统一接口启用表。
重新创建项
从头开始创建项不仅可以检查和比较默认配置,还可以修复损坏的配置。
如果以下任一项不起作用,请尝试重新创建它们。 它可以是简化的版本,以缩小哪些部分不起作用。
- 自定义表(实体)
- 查看
- 窗体
- 自定义脚本
确保向应用添加所有必需的组件
模型驱动应用组件 包括表及其相关表、窗体、列、视图、图表、仪表板和业务流程。 出于性能原因,只会下载添加到应用的组件。
如果组件未出现或行为不一致,请检查它是否已添加到应用。 例如,如果 Teams 表未显示在窗体的查找控件中,但其他表也显示,则 Teams 表可能尚未添加到应用中。
可以使用新式应用设计器将以下组件添加到应用。
- 表和相关表: 创建 Dataverse 表页
- 窗体: 将窗体添加到应用
- 列(窗体字段): 向窗体添加列
- 视图和图表: 管理 Dataverse 表页上的视图和图表
- 仪表板: 创建仪表板页面
- 业务流程: 在“自动化”窗格中添加业务流程
还可以 使用经典应用设计器添加这些组件。
若要使表脱机使用,必须 将其添加到脱机配置文件中。 有关详细信息,请参阅 移动脱机指南。
了解获取数据或显示数据时是否出现问题
当数据在应用中未正确显示时,它可能是提供数据的服务器问题,或者处理和显示数据时出现应用问题。 若要缩小原因范围,可以尝试 一般方法来隔离有问题的层。
模型驱动应用具有复杂的数据流。 下面是要尝试的更高级的事情。
- 检查网络请求的 FetchXML,并检查应用是否正在发出正确的网络请求并从服务器正确接收数据。 可以使用 监视器 查看网络请求。
- 如果应用具有脱机配置文件,请尝试完全从配置文件或配置文件中删除用户。 即使存在 Internet 连接,也可以脱机运行的应用的数据流也不同。
- 通过尝试其他用户或表来检查权限问题。
简化自定义脚本
自定义脚本是开发人员的高级功能。 它们可用于表单、自定义命令、Power Apps 组件和网页(HTML)Web 资源。 脚本可以执行的操作具有巨大的灵活性,但很有可能会意外中断系统。
如果怀疑脚本导致问题,请执行以下步骤:
禁用所有自定义脚本,并查看问题是否仍然存在。
如果没有,请逐个启用脚本以查看导致问题的原因。
找到导致问题的脚本后,请从它们中删除不相关的代码。 例如,如果只有一个字段有问题,请删除与其他窗体字段交互的代码。
通过逐步简化脚本,应能够确定问题是由自定义代码还是客户端 API 功能行为不正确引起的。
如果错误来自自定义代码,请联系编写脚本以获取帮助的开发人员。
如果客户端 API 功能未按文档所述工作,则可以将其报告为Microsoft。 附加简化脚本的副本,并提及哪些 API 功能不起作用。
创建 vanilla repro 应用
创建 vanilla repro 应用 的过程可能会发现在具有许多自定义项的环境中不明显的配置错误。 即使问题未解决,你也会缩小原因范围,并更轻松地向其他人解释问题。