机器人应用程序所用的 Python 将升级到 3.11 版
重要信息
2024 年 10 月 26 日,机器人对 Python 3.8 及更早版本的相关库的支持结束。
为了避免自动化过程可能出现中断,您应该验证所有计划的生产脚本都在 Robots Python 3.11 环境中运行,并产生正确的输出。
尚未过渡到 Python 3.11 的生产或开发脚本可能还能够运行,但不对此做保证。或者这些脚本可能会运行,但输出的结果不正确。
Diligent 正在对机器人应用程序使用的 Python 版本进行升级。基于云的机器人代理将从 Python 3.8.x 升级到 Python 3.11.x。在过渡期间,机器人应用程序可以支持这两个 Python 版本。有关详细信息,请参阅 。
此次升级还包括升级与 Python 关联的多个库,包括 Pandas(从版本 1.2.4 升级至 2.2.0)和 Requests(从版本 2.26.0 升级至 2.31.0)。有关在机器人应用程序中更新的库列表,请参见 。
如果贵组织使用 HighBond 机器人应用程序或工作流机器人应用程序,请阅读本主题,以便熟悉升级的影响。机器人应用程序的客户不能选择退出 Python 升级。
Python 软件基金会宣布,Python 3.8 的使用周期将于 2024 年 10 月 14 日正式结束。
对客户的影响
重要信息
请您在 2024 年 10 月 26 日之前,留出足够的时间来测试所有 Python/HCL 脚本;在此日期之后,机器人应用程序将不再支持 Python 3.8。为避免干扰预定的机器人任务,请在截止日期之前进行必要的脚本更新。
可能存在不兼容的脚本逻辑
如果升级到 Python 3.11, 您的一个或多个 Python/HCL 脚本可能会受到影响。如果在 Python 3.8 中运行的脚本逻辑不再能够在 Python 3.11 中运行,或者可以运行,但会生成不正确的输出结果,则您需要更新该脚本逻辑。
检查现有脚本是否能在 Python 3.11 中顺利运行的最简单方法,就是在机器人脚本编辑器中打开并尝试运行它们。有关详细信息,请参阅 。
过时的脚本头信息
Python/HCL 脚本中的头信息指定了在机器人脚本编辑器中提交(保存)脚本时机器人使用的 HCL 包(HighBond 命令语言)、Python 和相关库的版本号。您可以下载任意脚本并在文本编辑器中打开它以查看头信息。
下面的示例显示了使用以前和当前的 HCL 包和 Python 运行时环境提交的脚本的头信息。
以前的:HCL 1.0 和 Python 3.8
"environment": {
"runtime": "python3.8",
"requirements": ["boxsdk==3.0.1", "openpyxl==3.0.9", "Jinja2==3.0.3", "simple-salesforce==1.11.5", "jira==3.1.1", "hcl==1.0.*"]
}当前的:HCL 3.0 和 Python 3.11
"environment": {
"runtime": "python3.11",
"requirements": ["boxsdk==3.9.2", "openpyxl==3.1.2", "Jinja2==3.1.3", "simple-salesforce==1.12.5", "jira==3.8.0", "hcl==3.0.*"],
"showCommitToastMessage": true
}过时脚本的问题
系统不会禁止在 HCL 3.0 和 Python 3.11 运行时环境中运行头信息过期的脚本。但是,您应该尽快更新脚本,以避免以下问题:
脚本可能失败在 Python 3.8 和更早版本的相关库下提交的脚本可能包含已弃用的代码,导致脚本在 Python 3.11 中失败。
脚本可能生成不正确的输出脚本可能会运行,但输出可能与 Python 3.8 运行时环境中生成的输出不匹配。
出现警告通知在更新脚本的头信息之前,机器人用户界面中的警告通知会与脚本以及包含该脚本的机器人一起出现。有关详细信息,请参阅 。
禁止激活在更新脚本头部信息之前,禁止从开发模式激活脚本到生产模式。
如何更新脚本
要将脚本更新到当前版本的 HCL 和 Python,请执行以下过程:
在机器人应用程序脚本编辑器中打开并运行脚本。
对脚本逻辑进行必要的更新。
保存并提交脚本。
提交脚本后,脚本头将更新为当前版本的 HCL、Python 和相关库。
如果在生产机器人中使用脚本,请激活脚本以在生产模式下更新它:
机器人应用程序用户界面中的警告通知
在机器人应用程序用户界面中,会出现几个警告通知,提醒您仍然存在与 Python 3.8 关联的机器人和脚本版本。
一旦您在 Python 3.11 运行时环境下重新提交并激活脚本,机器人和脚本版本的警告通知就会消失。
机器人应用程序仪表盘当您访问机器人应用程序仪表盘时,会出现一个表,列出所有具有在 Python 3.8 运行时环境下提交和激活的当前生产脚本的机器人。
仪表盘上的各个机器人具有在 Python 3.8 运行时环境下提交和激活的当前生产脚本的单个 HighBond 或工作流机器人上出现警告图标。
各个脚本版本在开发模式下,在 Python 3.8 运行时环境下提交的任何脚本版本都会出现警告消息。
测试并重新提交现有的 Python/HCL 脚本
为了确保您所在组织现有的 Python/HCL 脚本已经准备好过渡到 Python 3.11,请在机器人应用程序脚本编辑器中测试并重新提交这些脚本。
在脚本编辑器中打开现有脚本
从平台主页 (www.diligentoneplatform.com) 中,选择机器人应用程序以将其打开。
如果您已经进入 Diligent One,可以使用左侧导航菜单切换到机器人应用程序。
从机器人应用程序的仪表盘中,选择相应机器人类型的选项卡:
HighBond 机器人
工作流机器人应用程序
导航到机器人,然后选择该机器人以将其打开。
单击机器人应用程序右上角的开发按钮,即可切换到开发模式。
在脚本版本选项卡中,选择要测试的脚本版本。
通常,应选择已激活为生产模式的脚本版本。如果没有激活任何版本,那么除非您有选择其他版本的原因,否则请选择最新的脚本版本。
在版本详情面板中,单击编辑脚本或编辑。
机器人脚本编辑器开始启动过程,并加载 Python 3.11 运行时环境。
运行脚本对其进行测试
运行脚本以测试其是否与 Python 3.11 运行时环境兼容。
脚本编辑器启动过程完成后,运行脚本进行测试。
如果脚本成功运行,请检查所有输出结果以确保它们正确无误。
如果脚本运行成功,并且输出结果正确,则该脚本与 Python 3.11 及其相关库兼容。无需对脚本执行进一步测试。您可以保存并提交脚本,以便将其与 HCL 3.0 和 Python 3.11 运行时环境关联。请参阅 。
如果脚本失败,或者输出结果不正确,请更新脚本逻辑以解决问题。
保存并提交脚本
在脚本编辑器工具栏上,单击保存并提交。
输入一条有意义的提交消息来描述您的更改。
提示
您可能会发现在提交消息中添加“在 Python 3.11 中运行”非常有用。
可选。选择将脚本输出保存到任务运行日志文件。
当您使用机器人任务运行脚本时,此选项会将所有脚本输出保存到日志文件。保存的输出在您开发脚本并对其进行故障排除时非常实用,方便查看。有关详细信息,请参阅 。
单击提交以保存并提交该脚本。
此时将显示消息您的脚本已被成功提交。
在页面标题上,单击机器人名称。
您将返回到该机器人中的脚本版本选项卡。每当您保存并提交脚本时,所保存的版本会被添加到此选项卡。
可选。验证脚本是否与 Python 3.11 运行时环境相关联:
选择刚保存的脚本版本。
在版本详情面板中,单击下载。
将脚本下载到您的计算机。
在文本编辑器中打开脚本。
关联的 Python 运行时环境会出现在脚本顶部:
"runtime":"python3.11"
如果在生产机器人中使用脚本,请重新激活脚本以在生产模式下更新它:
选择刚保存的脚本版本。
在版本详情面板中,单击激活。
在版本历史记录中输入注释,以说明您要重新激活脚本的原因。
单击激活 versionNumber。
脚本版本已激活,并已在生产模式中更新。
机器人应用程序中的分阶段升级计划
下表提供了机器人应用程序中 Python 和相关库的分阶段升级的日期和详细信息。
| 预计日期 | 受影响区域 | 详细信息 |
|---|---|---|
2024 年 10 月 26 日 | HighBond 机器人 工作流机器人 | 所有脚本 包括预定的任务中未经编辑的脚本
|
| 2024 年 10 月 14 日 | Python 3.8 | Python 软件基金会宣布,Python 3.8 的使用周期将于 2024 年 10 月 14 日正式结束。请参阅 Python 版本的状态。 一旦某个 Python 版本的生命周期结束,Python 开发团队将不再修复该版本报告的任何新的安全错误。 |
| 2024 年 7 月 12 日 | HighBond 机器人 工作流机器人 | Python 升级前在机器人应用程序中创建的现有脚本
|
| 2024 年 7 月 4 日 | HighBond 机器人 工作流机器人 | 所有脚本
Python 升级前在机器人应用程序中创建的现有脚本
|
| 2024 年 4 月 4 日 | 工作流机器人
| 新创建的脚本
Python 升级前在机器人应用程序中创建的现有脚本
|
| 2024 年 4 月 4 日 | HighBond 机器人 | 新创建的脚本
Python 升级前在机器人应用程序中创建的现有脚本
2023 年 12 月后升级到 Python 3.11 的脚本
|
| 2023 年 12 月中旬 | HighBond 机器人
| 新创建的脚本
Python 升级前在机器人应用程序中创建的现有脚本
|
新版本的 Python 和关联资源库
下表列出了机器人应用程序支持的 Python 和相关资源库的当前版本和先前版本。有关新版本中具体更改的信息,请查阅链接的资源。
| 支持的当前版本 | 支持的先前版本 |
|---|---|
Python 3.11 | Python 3.8 |
Pandas 2.2.0 | Pandas 1.2.4 |
Requests 2.31.0 | Requests 2.26.0 |
NumPy >= 1.23.3 | NumPy 1.16.5 |
Cryptography >= 39.0.0 | Cryptography 3.4.7 |
Boxsdk 3.9.2 | Boxsdk 3.0.1 |
Openpyxl 3.1.2 | Openpyxl 3.0.9 |
Jinja 3.1.3 | Jinja 3.0.3 |
Simple-salesforce 1.12.5 | Simple-salesforce 1.11.5 |
Jira 3.8.0 | Jira 3.1.1 |
机器人应用程序脚本开发者指南
关于 HCL 3.0 中 Python 和关联库版本变化的详细信息超出了本帮助主题的范围。下面提供了部分指导。有关详细信息,请从上面的链接资源开始。
与 Python 升级无关的脚本失败
机器人应用程序脚本的失败可能由机器人应用程序中的 Python 从 3.8 版本升级到 3.11 版本引起,也可能不是。例如:
状态码为 401 (未授权)的脚本失败很可能是由脚本指定的 Diligent One 访问令牌的相关问题引起的。有关更多信息,请参阅 管理访问令牌 。
具有 404 状态码(未找到)的脚本失败可能是由于脚本中变量赋值缺失或错误导致的。有关详细信息,请参阅在 Python/HCL 脚本中使用变量。
脚本失败或输出错误可能与 Python 升级有关
如果计划脚本已经成功运行,然后在 2024 年 10 月的最后一周失败,则失败可能与 Python 及其关联库的升级有关。如果脚本继续成功运行,但开始输出不正确或意外的结果,原因也是一样的。
已弃用的函数和方法Python、Pandas 或其他关联库中已弃用的函数或方法可能是问题的根源。在机器人应用程序脚本编辑器中运行失败的脚本,并仔细检查脚本返回的任何错误消息。在故障排除期间尝试使用 AI 脚本助理。
多个中间版本在 HCL 1.0 和 HCL 3.0 包中所用版本之间发布了许多 Python、Pandas 和其他关联库的中间版本。您可能需要查看与库的多个版本相关联的信息,以确定问题的根源。
Pandas 重大更改Pandas 库的后续版本引入的一些更改可能导致 HCL 1.0 脚本在机器人应用程序中失败。重大更改包括但不限于以下更改。
append() – 方法被弃用
astype() – 更改了行为
groupby() – 更改了操作的行为
read_csv() – 参数变更
split() – 参数变更
str.replace() – 参数变更