ODOO 开发异步限制规范【表单类】

简介: ODOO 开发异步限制规范【表单类】异步类型一:同时操作异步;描述:两个访问者,同时对一张表单进行编辑。可能出现异步,导致最终存值出错。故此,需要在表单方法中添加检测是否有其他人在操作。【未来,需要添加此表单正在被 N 人浏览及此表单正在被 partner_id 改写,等前端显示功能】ODOO 框架支持并发控制,以防止由于同一文档的并发修改而导致数据丢失,即使这不是一个常见的问题(请参见下面的原因)。

ODOO 开发异步限制规范【表单类】

异步类型一:同时操作异步;

image

描述:两个访问者,同时对一张表单进行编辑。可能出现异步,导致最终存值出错。故此,需要在表单方法中添加检测是否有其他人在操作。

【未来,需要添加此表单正在被 N 人浏览及此表单正在被 partner_id 改写,等前端显示功能】

ODOO 框架支持并发控制,以防止由于同一文档的并发修改而导致数据丢失,即使这不是一个常见的问题(请参见下面的原因)。

该机制是通过乐观并发控制(OCC)实现的,并且自 Openerp5.0 开始就存在。不使用悲观锁,因为在无状态的基于 Web 的环境中(用户可以随时离开桌面)是不现实的, 而且在资源争用方面通常是一个不好的解决方案。大多数具有并发控制机制的现代框架都使用 OCC(Rails、Google 应用程序引擎等)。

实现方式;

ODOO 的 OCC 实现依赖于虚拟的 last_update 字段的使用,客户机可以在任何模型上作为常规 read()调用的一部分显式请求该字段。该值将从写入日期自动推断,并创建框架在任何记录上默认维护的日期字段。

当客户机稍后对同一条记录进行 write()调用时,它可以传递包含原始上次更新值的额外上下文结构,如果同时更新了记录,系统将自动引发错误。有关 last_update

详细信息,请参阅 _check_concurrency()方法。

当发生这种情况时,客户机堆栈可以做出适当的反应,例如显示记录详细信息并询问用户她想强制更新(在这种情况下,可以简单地更新最后一次更新的值)或放弃她的本地更改。

image
image

异步类型二:安装模块异步;
image

描述:在实际生产环境中,会出现系统运行时,安装模块的情况。这时,模块会把一些默认的值写入数据库,但没有更新缓存。

【因此,需要强制添加缓存更新方法】

为了保障:ODOO 在以下方法中,添加为了更新缓存,_cache.update

image

create 方法
new 方法
write 方法
_prefetch_field 方法

image
image
image

目录
相关文章
|
5月前
|
前端开发 数据库 JavaScript
基于Flowable的流程挂接自定义业务表单的设计与实践
文章讨论了如何在Flowable流程引擎中挂接自定义业务表单,以及相关设计和实践的步骤。文章中包含了一些前后端代码示例,如Vue组件的模板和脚本部分,这些代码用于实现与Flowable流程引擎交互的界面。例如,有一个按钮组件用于提交申请,点击后会触发applySubmit方法,该方法会与后端API进行交互,处理流程启动、查询关联流程等逻辑。
49485 11
|
6月前
|
前端开发
|
6月前
|
前端开发
|
6月前
|
前端开发
开发指南002-前后端信息交互规范-返回类ResponseResult
返回类有两个,一般返回类ResponseResult和分页返回类PageResult,本篇介绍ResponseResult
|
6月前
|
移动开发 小程序 JavaScript
【uniapp 小程序开发页面篇】代码编写规范 | 页面编写规范 | 小程序API
【uniapp 小程序开发页面篇】代码编写规范 | 页面编写规范 | 小程序API
298 0
|
XML 数据格式 开发者
流程表单初体验
流程表单初体验
|
JavaScript
【Vue 开发实战】实战篇 # 40:自己封装一个支持自动校验的表单项
【Vue 开发实战】实战篇 # 40:自己封装一个支持自动校验的表单项
143 0
【Vue 开发实战】实战篇 # 40:自己封装一个支持自动校验的表单项
|
存储 安全 PHP
【Laravel】在企业级项目中使用Laravel框架中的工厂状态下的页面方法 Code Verifier以及错误处理
【Laravel】在企业级项目中使用Laravel框架中的工厂状态下的页面方法 Code Verifier以及错误处理
125 0
【Laravel】在企业级项目中使用Laravel框架中的工厂状态下的页面方法 Code Verifier以及错误处理
|
前端开发 测试技术
|
SQL 前端开发 IDE