Odoo 20 扩展了离线模式,用户无需活动连接即可创建、编辑、归档、取消归档和删除记录。之前执行过的搜索也可以在离线状态下运行。连接恢复后,同步队列会处理这些更改,并提供离线界面和管理工具来监控该过程。 (Odoo 20 Release Notes; Odoo Goes Offline) 这使离线访问从仅用于查看的备用方式,转变为可更改业务数据的工作模式。评估 Odoo 20 的组织应检查这些更改在同步时的表现,而不仅仅是记录在中断期间是否仍可访问。
Odoo Nightly 将 Odoo 20 列为稳定、推荐的 Community Edition 版本,日期为 2026 年 9 月,支持至 Odoo 23。 (nightly.odoo.com) 该列表与 Community Edition 规划相关,但并不表明每个平台、Enterprise 环境或定制数据库都具有完全相同的离线覆盖范围。应根据目标部署进行检查。
与 Odoo 19 相比有什么变化
Odoo 19 离线模式允许用户查看连接丢失前已打开的记录,但不能在离线时修改它们。Odoo 20 增加了记录创建、编辑、归档、取消归档和删除功能。 (Odoo 19.0 Docs: General Offline Mode; Odoo 20 Release Notes) 这是功能上的扩展,而不是对早期缓存功能的重新命名。在 Odoo 19 中,用户可以通过打开相关记录来为断开连接做准备,但对这些记录的更改必须等到恢复连接后才能进行。Odoo 20 支持在离线状态下创建新记录并更改现有记录。 (Odoo 19.0 Docs: General Offline Mode; Odoo 20 Release Notes)
版本评估应区分对缓存信息的访问能力与完成并排队记录操作的能力。只需要参考数据的工作流,与涉及数据录入、状态变更或删除的工作流,要求不同。 (Odoo 19.0 Docs: General Offline Mode; Odoo 20 Release Notes)
已确认的离线操作
已确认的 Odoo 20 操作涵盖记录生命周期的五个部分:创建、编辑、归档、取消归档和删除。之前执行过的搜索在离线时也可使用。 (Odoo 20 Release Notes) 验收测试应至少为每项操作设计一个场景,并在重新连接和同步后确认预期的记录状态已出现。
Odoo 的 Experience session 描述了专用的离线界面、同步队列,以及用于监控和管理同步的工具。 (Odoo Goes Offline) 这些功能应纳入用户培训和操作流程。用户需要知道排队项目显示在哪里、如何识别未解决项目,以及由谁进行审查。所提供材料确认存在管理工具,但未定义其完整工作流程或管理权限。
需要验证缓存和搜索覆盖范围
Odoo 19 文档将离线访问描述为可访问在连接丢失前已打开的记录。Odoo 20 另外确认,之前执行过的搜索可以离线运行。 (Odoo 19.0 Docs: General Offline Mode; Odoo 20 Release Notes) 所提供的来源未说明会保留多少相关数据、可保留多长时间、是否适用存储限制,或者与缓存记录关联的每个字段是否都可用。它们也未表明在离线状态下重复搜索时,返回的是原始结果集还是仅返回设备上已存储的数据。
在批准离线工作流之前,团队应识别每个角色所需的搜索和记录类型。测试应先在线进行,运行相关搜索并打开所需记录。然后测试人员可以断开连接并重复预定任务,包括使用附件、关联记录和必填字段。这些是验证点,不是已确认的限制,因为所提供的发布信息并未描述其行为。 (Odoo 20 发布说明)
冲突处理需要测试
同步队列和管理工具已确认可用,但所提供的来源并未说明 Odoo 20 如何处理同一记录上的竞争性更改、重新连接后的验证失败,或队列操作之间的依赖关系。 (Odoo 离线运行) 队列的存在并不能说明其冲突处理策略。应在目标 Odoo 版本和配置中演示其行为。
冲突测试可以让一位用户离线修改一条记录,而另一位用户在线更改同一记录。重新连接后,团队应检查最终值、队列状态和用户通知。还应分别测试,离线编辑一条已在其他地方归档或删除的记录,以及一条未通过服务器端规则的新建记录。测试应记录更新是否优先、是否发生合并,或是否需要人工介入。 (Odoo 离线运行)
访问控制和破坏性操作
由于 Odoo 20 包含离线归档、取消归档和删除功能,评估应超出常规数据录入的范围。 (Odoo 20 发布说明) 组织应验证,当离线操作发生时、在同步期间,还是在这两个阶段,访问权限、记录规则和审批要求是否都会被执行。发布说明确认了可用操作,但并未说明在无连接情况下每项安全控制的表现。
测试应使用具有代表性的用户角色,而不只是管理员账户。每个角色都应在联网和断网状态下尝试允许和禁止的操作。随后,测试人员应检查排队更改是否仍可见、拒绝消息是否清晰,以及已归档、已恢复或已删除的记录是否到达预期的最终状态。对于删除后果严重的流程,应在部署前准备并记录离线操作程序。 (Odoo 20 发布说明; Odoo 离线运行)
自定义模块需要有针对性的测试
已确认的功能涵盖 Odoo 20 的离线记录操作和同步功能,但所提供的来源并未说明每个自定义模块、第三方模块、自动化操作或外部集成都兼容离线工作。 (Odoo 20 发布说明; Odoo 离线运行) 因此,定制部署应逐个模块评估支持情况,而不是假定离线模式会在整个数据库中统一适用。
测试应覆盖组织工作流中使用的自定义字段、onchange 行为、必填值、计算值和服务器端检查。通常会对记录创建或编辑作出反应的集成,也应在排队更改同步后进行观察。目的不是假设失败,而是确认每个元素是离线运行、等待重新连接、生成被拒绝的队列项,还是需要不同的流程。 (Odoo 20 发布说明; Odoo 离线运行)
上线前需要解决的问题
与 Odoo 19 相比,Odoo 20 提供了更广泛且已确认的离线能力集,并配有专用界面和用于排队工作的同步工具。 (Odoo 19.0 文档:通用离线模式; Odoo 20 发布说明; Odoo 离线运行) 在依赖这些能力之前,组织应验证哪些应用和记录类型受支持,用户在断开连接前必须打开或搜索什么,冲突如何呈现,以及由谁监控失败或延迟的同步。
上线决策还应记录受支持的设备和部署环境、存储和保留行为、访问控制结果、自定义模块结果,以及删除或其他重大更改的处理流程。所提供的发布材料并未回答这些实施问题,但它们决定已确认的功能是否适合特定的离线工作流。 (Odoo 20 发布说明; Odoo 离线运行)
对于社区版规划,Odoo Nightly 的稳定且推荐列表提供了所述版本状态,支持持续到 Odoo 23。 (nightly.odoo.com) 运营批准仍应取决于对用户将离线使用的具体版本、模块、权限和工作流进行测试。已确认的变化是,Odoo 20 不再局限于 Odoo 19 对先前打开记录的只读访问,而是允许排队的离线创建和修改。测试必须确定该能力在组织配置中的表现。 (Odoo 19.0 文档:通用离线模式; Odoo 20 发布说明; Odoo 转入离线模式)
