构建可重复使用 bots
- Updated: 2023/11/18
构建可重复使用 bots
回顾指南,更好地了解如何开发 bots 或子任务,以实现可重用性,从设计和创建到重用。
- 定义先决条件、输入、输出和变量
- 当您构建 bots 供重用时,请定义以下内容:
- 记录所有必要的先决条件,了解如何单独使用您的 bot 或将其作为子任务使用。
- 创建 bots 时,将值定义为输入、输出或本地。 当 bot 被设计为用作子任务时,使用输入和输出变量,允许它接收另一个调用 bot 的值或向其传回值。
- 在定义输入和输出变量时提供有意义的变量描述,以便其他开发人员了解如何与子任务交互。
- 遵循既定的变量命名准则标准。 查看 Automation Anywhere 用户定义的变量的变量命名准则。 您的变量(用户定义)
- 单一责任原则
- 为可重用性开发的 Bots 应遵循单一责任原则,即每个子任务或组件应对整体 bot 功能的单个部分负责,并且该责任应完全由该子任务或组件包括。
单一责任的其他示例:
- 处理单个事务的子任务,但可以为列表上的每个事务而多次调用。
- 子任务在网站的单个页面上收集屏幕显示数据,但可以随 bot 分页而多次调用。
- 机器人设计注意事项
- 请考虑以下模式,基于这些模式必须开发用于使用的模板:
- 一级、主要和子 bots
- 一级 bot: 此 bot 将直接调用,通过包括计划的机制(通过 Control Room)或 API 调用开始执行流程。 在TRY部分中包含以下主要流程步骤:
- 流程的初始设置。
- 验证设置是否成功。 例如,检查是否存在所有需要的文件和文件夹,或初始变量值是否按要求填入。
- 运行桌面 PRE-PROCESS CLEANUP。
- 调用主要 bot,运行流程的业务逻辑。
在 FINALLY 部分,运行桌面 POST-PROCESS CLEANUP。
- 主要 bot: 此 bot 根据需要调用子 bots,以运行流程的业务逻辑。 在TRY部分中包含以下主要流程步骤:
- 验证任何输入。 例如,从一级 bot 输入变量值。
- 子 bots 的执行。
- 验证任何输出。
- 确保根据主要 bot 的执行填充任何输出变量值,以返回到一级 bot。
在 CATCH 部分,记录错误,并确保填充任何输出变量的值,例如 oStrResult,以传递回一级 bot。
- 子 bots
- 子 bot 由一级 bot 或主要 bot 调用,以运行自动化所需的实际业务逻辑。 它们也被称为帮助程序任务或实用工具任务,因为其唯一的用途就是协助调用任务。
- 使用输出变量将结果指示符返回给调用的 bot,可以是主要或另一个子 bot。 例如,outStrResult。 如果由于发生错误或异常而导致处理不成功,则该值包含错误消息。
- 一级 bot: 此 bot 将直接调用,通过包括计划的机制(通过 Control Room)或 API 调用开始执行流程。 在TRY部分中包含以下主要流程步骤:
- 主要和子 bots: 该模式在单个主要 bot 中包含一级和主要 bot。 子 bot 的设计模式与上面解释的设计模式相似。
- 一级、主要和子 bots
- 打开和关闭应用程序
-
bot 或子任务打开的任何应用程序、文件或窗口都必须通过相同 bot 或子任务关闭。
- 例如,当 bot 打开 Microsoft Excel 以执行电子表格操作时,请验证电子表格和 Excel 在处理 bot 完成后是否已关闭。
- bot 执行成功或不成功时关闭应用程序。
- 使用 Try/Catch/Finally 操作的 Final 块,以确保无论任务处理是否成功,应用程序都已关闭。
- 如果应用程序在测试期间没有响应,请考虑使用命令提示符强制关闭(放弃)应用程序。 例如,要强制关闭 Powerpoint,命令行操作将是:
Taskkill /IM powerpnt.exe /F
- 错误处理
- 完成任务后,验证 bot 成功处理了任何失败或异常。
- 每个任务或子任务必须处理自己的错误。
- 子任务中未处理的异常可能导致父任务出现问题。
- 在每个 bot 的根级别使用 Try/Catch/Finally 块。
- 如果要在报告故障之前多次尝试操作,请使用循环内部的 Try/Catch 块。
- 事件或异常处理
- 除了由 Try/Catch 捕获的操作错误之外,还必须对其他流程(如事件或异常)执行代码检查。 如果出现某个流程条件,需通知或记录这些条件以进行进一步分析。
- 开发一个可配置的事件处理程序 Task Bot,在操作发生变化时尽量减少代码更改的需求。 例如,维护一个 XML 文件,其中包含所有可能事件或异常的定义,以及这些事件或异常发生时的任何通知要求。
- 在代码中,当发生此类事件或异常时,将信息写入事件日志。 您还可以添加内存使用情况并截图。
- 运行事件处理程序 Task Bot 来处理事件或异常。 例如,使用来自 XML 文件的参数(例如电子邮件收件人、抄送收件人或主题)发出通知。
- 如果每个环境的通知要求不同,或者随着时间的推移而变化,可以更新配置文件而无需更改代码。
- 在其他计算机上运行 bots
- 设计 bot 时,启用它,使其在创建 bot 的计算机以外的计算机上运行。
- 对本地文件路径、网络共享或窗口标题使用变量,以便可以从其他计算机成功运行 bot。
- 考虑对多个 bots 需要访问的环境标记或网络共享使用全局值。
- 在适当的情况下,为窗口标题使用通配符,以启用 bots 运行,而不管目标应用程序的特定环境或版本如何。 例如,不使用
使用以下内容:Salesforce - 专业版 - Internet Explorer
Salesforce - * - Internet Explorer
- 使用提示、消息框和无限循环
- 等待用户输入时,提示和消息框操作会阻止 bots 运行。 除非需要用户输入,否则设计 bots 时不使用提示语句。
- 使用循环时,通过明确定义所有循环的迭代次数或指定需要存在中断循环动作的位置,确保所有循环都有明确的结束。
- 如果打算将 bot 作为无人值守的 bot 运行,请删除或禁用任何提示或消息框操作。
- 如果您正在为有人值守的自动化场景构建 bots,消息框和提示通常很合理,或者需要 bots 才能按预期运行。 使用消息框可显示不同的变量,例如响应、输出或值。
- 将敏感数据存储在 Credential Vault
-
Control Room 包括可用于存储敏感信息的 Credential Vault,例如用户名、密码、API 密钥和令牌。
- 构建 bot 时,在 Control Room 中创建存储柜,使用 Credential Vault 存储凭据,并通过引用凭据和属性根据需要检索这些凭据。 这允许用户创建 bots 使用 API 或执行登录,而无需 bot 构建者直接硬编码 bot 内所需的凭据。
- 不要将敏感凭据硬编码到 bot 或子任务中,因为硬编码存储会在 bot 中引入安全风险。
- 当 Credential Vault 值需要在 bot 中使用时,请验证所有 locker 名称和凭据是否在机器人文档中明确定义。 如果需要,包括如何获得凭据(例如,API 密钥或令牌)的详细信息。
- 测试独立任务
- 在创建 bots 可重用性时,以能够独立于其他子任务进行测试的方式进行设计。
- 练习测试驱动型开发 (TDD) 方法: 在应用程序中添加新 bot 或新功能时,请为其编写测试案例。
- 在测试案例中,定义验证该功能的特定功能。
- 对于单一责任原则和可重用性,创建许多可以独立测试的小型任务。
- 使用注释和步骤
- 注释使开发人员能够在其 bots 内部提供描述,以便 bot 其他 bot 开发人员更好地了解每个部分、代码块或子任务的设计用途。 包括明确的注释,允许开发人员了解给定代码块功能的目的。
- bots 提交到 Bot Store 时,注释演示如何自定义 bot。
- 使用注释使代码维护更容易,因为各部分描述有助于识别可能需要更改的地方,使开发人员能够更快地解决问题
- 创建未来工作的占位符时,对 bots 中的进行中工作进行注释可能会有所帮助。 考虑使用 TODO 命令,作为向 bot 添加逻辑的提醒,但在工作完成时更新注释。
- Automation 360 包括 Step 操作 ,它提供了将代码组织到逻辑分组中以改善可读性和流程的功能。
- 使用空白、标记的步骤操作,创建您 bot 的主要目标概述。 完成后,返回每个步骤并完成该步骤的逻辑。
- 创建日志文件
- 在任意数量的 bots 上运行无人值守的 Bot Runners 时,在没有日志的情况下识别问题可能很困难。 软件开发人员、支持团队和 bot 所有者依靠日志来了解其自动化存在问题的位置以及如何诊断问题。Bots 必须记录错误,以获取错误详细信息。
- 使用错误处理和屏幕截图可更好地了解 bot 或子任务在何时遇到错误。
- 使用包含基本错误处理、日志记录和快照功能的 A2019 Bot Store 模板,以及可自定义的根日志记录位置,以维护旧日志文件。
- 如有需要,创建其他日志文件,并包括对 bot 或子任务完成的所有工作的完整审计历史记录。 其他日志文件可以包括有关 bot 的审计、调试和性能信息,以及以下内容:
- 主要 bot 开始和结束时间。
- 子任务开始和结束时间。
- 在 bot 中定义的特定里程碑的完成时间。
- 输入文件中收到的事务数。
- 成功处理或失败的事务数。