很多人可能会遇到使用不同浏览器或者多个页签打开同一条记录进行修改时,会导致数据错乱
Dynamics 365可以查询记录的版本号,可以比较修改前以及修改后的版本记录号是否一致来检查数据是否已经被修改;
具体做法如下,在记录加载时,记录下当前的版本号,当修改数据前,查询当前记录最新的版本号,比较当前版本号与最新版本号是否一致;
如果不一致,则说明记录已经被修改,这个时候可以提示用户“数据已被修改,请刷新界面重试”;
如果一致,则说明记录未被修改,这个时候可以继续执行更新操作。
有一种情况,当点击一个按钮时(例如调外部接口或者调Custom Api时)可能后台处理时间较长,这个时候记录在另外一个地方被修改了,就容易导致数据异常。
举例来说,工单有以下状态:
待分派、待确认、待出发
点击“分派”按钮,工单状态会从待分派变成待确认
点击“确认”按钮,工单状态会从待确认变成待出发
点击“自动分派”按钮,工单状态会从待分派变成待确认
如果当前用户在执行“自动分派”操作时,假设该处理过程时长较长,处理的过程中,被另外一个用户对该工单执行了分派及确认按钮;
当前用户的操作预期结果应该是工单状态变为待确认,实际可能出现工单状态变成待出发
如何防止这种情况?
也是有解决办法的,如有需要,可以留言获取