赛捷软件论坛's Archiver

lynn.yu 发表于 2017-3-9 14:11

[V7功能解说] 报错消息——记录过时

[b]问题汇总[/b]
当用户点击某个实体上的“保存”按钮时,X3提示一个报错消息“记录过时”,且无法保存该记录。

[b]系统管理模块:[/b]
以下解决方案适用于版本:Sage X3 V7

[b]详细说明[/b]
在你加载某条记录和尝试保存对其作出的修改期间,如果有其他人修改了该记录,那么就会发生这种情况。

[b]解决方法[/b]
通常来说,这种情况发生在你保存某条记录之前有人对其进行了修改的情况下。

当然,如果你在某个后台交易或批次任务中定期会更新某条记录,而同时有其他用户在(交互屏幕中)查看或修改该记录,那么你也可能会遇到这类问题。

在V7开始,X3采用乐观锁(optimistic locks)来保护实体,也就是说,用户在查看记录时系统不会再预防性地锁定这些记录。

在加载一条记录时,同时会读取UPDTICK_0(隐藏)列。

每次更新某条记录时就会修改该列(一个时间戳)的值。

当一个用户保存该记录时,X3就会在写入更改内容之前读取UPDTICK_0中的值。

如果值相同,那么就会保存这个记录。如果值不同,那么你就会收到报错消息“记录过时”。

乍一看,这个错误似乎是随机的。当你的业务逻辑根据可能发生或不会发生的各种条件触发记录修改时,就会出现这样的情况。

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.