流检查器(预览版)

[本文是预发行文档,可能会有所更改。]

通过解决方案检查器中的静态分析功能提升开发工作流程。 该工具支持机器人流程自动化(RPA)的最佳实践,并通过自动评估流以确保最佳性能,满足关键流要求。 静态分析功能可在设计器的流检查器部分中使用。 它强制执行关键指南,并提供实时反馈和早期代码检查。 它直接集成到您的工作流中,提高代码质量,并为更高效、更富有成效的开发体验奠定基础。

重要提示

  • 这是一项预览功能。
  • 预览功能不适用于生产环境,并且可能具有受限的功能。 这些功能受补充使用条款约束,在正式发布之前已经可用,以便客户可以及早使用并提供反馈。

规则管理

规则通过解决方案检查器在 Power Platform 管理中心进行定义和管理。 管理员可以:

  • 启用或禁用规则。
  • 配置严重性级别(错误、警告、信息)。
  • 将规则应用于特定环境或环境组(仅限受管环境)。

管理中心中的配置

要配置静态分析规则:

  1. 转到 Power Platform 管理中心。
  2. 选择管理>环境以继续。
  3. 选择编辑受管环境
  4. 解决方案检查器强制执行部分,配置应为所选环境排除的规则。

备注

  • 如果环境是具有已定义配置的环境组的一部分,则规则设置将被继承,并且无法单独编辑。 了解更多关于解决方案检查器的信息,请参阅解决方案检查器解决方案检查器在受管环境中的强制执行
  • Power Platform 管理员应为需要访问该功能的角色分配以下权限:prvReadmsdyn_analysisoverride(友好名称为“分析覆盖(读取)”)。

在门户中运行静态分析

手动触发静态分析:

  1. 转到解决方案页面,位于 Power Automate 门户中。

  2. 打开解决方案旁边的上下文菜单(⋯)。

  3. 将鼠标悬停在解决方案检查器上。

  4. 选择以下选项之一:

    • 运行:启动静态分析。
    • 查看结果:打开最新分析报告。
    • 下载结果:导出报告以供离线查看。

备注

对解决方案中包含的所有桌面流运行静态分析。 通过查看结果中的对象名称列,确定触发特定规则违规的桌面流。 此列显示相应桌面流的名称。

Power Automate 门户中解决方案静态分析结果的截图。

设计器中的静态分析

静态分析会自动运行,持续检查您的代码,而无需手动干预。 当您在流中添加、删除或修改操作时,此功能会自动激活以评估更改并刷新分析结果。 这个过程使开发变得无缝和高效。 在设计器的右侧,您会看到一个专用的“流检查器”按钮。 按钮上的数字显示桌面流中的违规总数。 选择按钮以打开流检查器窗格并查看违反的具体规则的详细信息。

Power Automate 桌面设计器中打开静态分析面板的按钮截图。

每个分析都会生成一个百分比分数,显示成功遵守的规则所占的比例。 分数越高意味着违规越少,代码质量越好。

每次对流进行更改时,都会重新计算此分数,从而提供即时反馈并促进良好的开发实践。

显示静态分析分数和任何违反规则的摘要的屏幕截图。

如果违反规则,静态分析报告将显示清晰的摘要。 它列出了规则名称以及流中违反每条规则的操作或变量数量。 选择规则会突出显示相应的操作,并提供详细的错误说明。 对于与变量相关的冲突,系统将导航到变量窗格,从而使更正变得容易。 流检查器窗格包含搜索功能,并支持按子流过滤,以便您快速定位具体问题。

每个违规项都会显示一个包含详细信息的磁贴,包括错误性质、推荐修复方案及文档链接。 使用规则标题中的滑块在相同违规的出现次数之间导航。 本指南可帮助开发人员快速有效地解决问题。 流检查器错误违规会显示内联指示器和包含更多详细信息的弹出窗口。 警告也会内联显示在设计器工作区中,例如错误。 设计器在子流选项卡上显示诊断状态(如警告和错误),并提供一个按钮,可直接跳转至需要处理的组件。

显示静态分析规则详细信息的屏幕截图。

图例

  1. 特定规则违规的发生情况
  2. 导航到违反规则的操作
  3. 文档链接

静态分析规则

静态分析规则是预定义的准则,可帮助确保流安全、可维护且高性能。 每个规则针对流设计的特定方面,如安全性、性能和可维护性,并提供可操作的反馈以提升流质量。 以下是规则列表、其说明和建议的修复方法。

密码安全性不安全

  • 严重性:警告
  • 类型:安全
  • 错误详情:密码在流中管理不安全。
  • 描述:此规则检查密码在桌面流中是否管理不安全,以确保在执行过程中不会暴露或处理不当。
  • 建议修复:确保所有与密码相关的输入均通过 Power Automate 桌面版密码功能进行适当处理。 使用“直接加密文本输入”,通过基于机器的加密实现最大的安全性。 对于不同机器上使用的流,选择“密码输入为变量”,并将相应的变量标记为敏感变量,以增强安全性。 同时,使用安全凭证管理功能,如与 CyberArk 凭证集成的“获取凭证”操作。

两个子流程之间的递归

  • 严重性:警告
  • 类型:设计
  • 错误详细信息:检测到子流之间的递归调用,可能导致无限循环。
  • 描述:该规则检查两个或多个子流之间的递归调用,确保流不会进入无限循环。
  • 建议修复:删除子流之间的任何递归调用。

变量长度超限

  • 严重性:警告
  • 类型:可维护性
  • 错误详情:变量名称超过 40 个字符的限制。
  • 描述:该规则验证流中定义的每个变量名称是否超过指定的字符数。 默认限制为 40 个字符。
  • 建议修复:将任何超过指定字符限制的变量重命名为少于 40 个字符。

输入变量默认值

  • 严重性:警告
  • 类型:可维护性
  • 错误详细信息:输入/输出变量未使用默认值。
  • 描述:此规则验证输入/输出变量是否使用默认值,确保其在流中配置正确。
  • 建议修复:为流中的所有输入和输出变量分配默认值。

输入和输出变量数量的阈值

  • 严重性:警告
  • 类型:可维护性
  • 错误详细信息:总输入/输出变量超过 25 个变量的限制。
  • 描述:此规则验证流中输入/输出变量的总数是否超过指定阈值。 阈值为 25 个变量。
  • 建议修复:确保流中的输入和输出变量数量不超过 25 个。

空块错误操作

  • 默认严重性:警告
  • 类型:设计
  • 错误详细信息:“块错误”操作为空且未处理错误。
  • 描述:此规则检查流中的“块错误”操作是否正确设置以处理错误,确保错误按预期抛出并管理。
  • 建议修复:为管理潜在错误,请在流中设置块错误操作。

嵌套的 if 语句

  • 严重性:警告
  • 类型:可维护性
  • 错误详情:嵌套的 if 语句超过五层。
  • 描述:此规则检查是否存在嵌套的 if 语句超过五层,确保流保持可管理和可读性。
  • 建议修复:重构流,将嵌套的 if 语句减少到不超过五层。

不完整的 if

  • 严重性:警告
  • 类型:设计
  • 错误详细信息:检测到不完整的 if 操作,缺少内容或仅包含 Else 分支中的操作。
  • 描述:该规则检测缺少内容或仅在 Else 分支中包含操作的 If 动作,确保条件语句得到有效实现。
  • 建议修复:遍历流程并审查每个 “If” 条件,确保其在 ‘If’、“Else if” 和 “Else” 分支中均包含有意义的操作。

无限循环

  • 严重性:警告
  • 类型:设计
  • 错误详情:流中检测到无限循环,可能导致流无限运行。
  • 描述:该规则检查流中是否存在无限循环,帮助识别并防止流可能无限运行的场景。
  • 建议修复:确保每个循环具有明确且可实现的终止条件。 条件可以基于计数器、特定值或任务的完成情况。 添加检查或故障安全条件,以便在循环运行时间超过预期时中断循环。 例如,设置最大迭代计数或包括超时。

等待操作滥用

  • 严重性:警告
  • 类型:性能
  • 错误详情:检测到等待操作使用不当,超过 10 个等待操作可能导致瓶颈。
  • 描述:该规则检查流中是否存在过多的等待操作(超过 10 个),以帮助识别并减少因长时间延迟导致的潜在瓶颈。
  • 建议修复:审查流以识别所有等待操作,并检查它们是否对流逻辑至关重要。 删除不必要的等待或尽可能将它们合并。

超长等待时间

  • 严重性:警告
  • 类型:性能
  • 错误详情:检测到极长的等待时间,超过了硬编码等待操作的 600 秒限制。
  • 描述:此规则检查流中硬编码的等待操作是否超过指定时间,限制值设置为 600 秒。
  • 建议修复:审查流以查找超过 600 秒限制的等待操作。 检查这些较长的等待时间是否必要,并将其持续时间调整为流正常工作所需的最短时间。 如果需要较长的等待时间,请将其分解为较短的时间间隔,并在它们之间添加检查或条件。 尽可能用事件驱动触发器替换长时间等待操作。

无法达到的操作

  • 严重性:警告
  • 类型:可维护性
  • 错误详细信息:流中存在一个或多个无法达到的操作,在任何情况下都不会被执行。
  • 描述:此规则检查流中逻辑上无法达到的操作。 无法访问的操作可能是由于不正确的分支、错位的条件或断开连接的段造成的,并且可能表示流的逻辑或结构存在缺陷。
  • 建议修复:审查流以查找未连接到执行路径的操作。 确保每个操作都可通过有效的逻辑分支或循环访问。 删除或移动无法触及的操作,以保持流的清洁和高效。

已知限制

  • 仅在托管环境中可用。
  • 规则自定义仅限于启用或禁用规则以及配置严重性。

已知问题

  • 查看规则违规详细信息后删除复制的操作可能会触发未处理的错误。
  • 在以下操作中使用非敏感密码变量会导致规则评估期间的静态分析失败。
    • 显示输入对话框
    • 显示选择文件夹对话框
    • 显示自定义窗体