- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 SysOperation Framework 进程,它创建一个 ReliableAsynchronous 批处理来发布装箱单,并且一次创建多个。
根据我单击创建它们的速度,我得到:无法编辑 LastValue (SysLastValue) 中的记录。
由于另一用户进程删除了该记录或更改了记录中的一个或多个字段,因此发生更新冲突。
还有
无法在 LastValue (SysLastValue) 中创建记录。用户ID:t编辑a,类(class)。
该记录已存在。
在 BatchHistory 中的其中几个上。我设置了 this.parmLoadFromSysLastValue(false);
。我不确定如何防止写入 SysLastValue 表。
知道会发生什么吗?
最佳答案
我也经常遇到这种异常,因此我养成了在服务操作中捕获DuplicateKeyException
的习惯。当它被抛出时,捕获它并重试(默认为 5x)。当许多进程同时运行时就会发生该错误,就像您现在所做的那样。
DupplicateKeyException
可以在事务中捕获,因此您可以通过在 SysLastValue
表中执行插入的代码周围放置 try/catch 来改进(如果您可以找到代码。
据我所知,这些是唯一在该表中插入记录的情况(可能在内核中除外):
InventUnusedDimCleanUp.serialize()
SysAutoSemaphore.autoSemaphore()
在那里放置一个断点,看看该代码是否被执行。如果是这样,您可以添加带有 retry
的 try/catch 并查看是否可以“修复”它。
您还可以使用跟踪主控室和跟踪解析器来确定该记录插入的位置(如果它不是这两个记录之一)。
我关于 LoadFromSysLastValue 的理论:我相信设置 this.parmLoadFromSysLastValue(false)
不起作用,因为它仅在对话框启动时才会考虑,而不是在执行操作时考虑。在批处理中,不会使用 SysLastValue 来初始化您的数据协定,因为您希望它使用您在数据协定中提供的确切参数。
关于axapta - 非常快速地创建许多批处理(SysOperation Framework)来执行类似的过程 - "Cannot edit a record in LastValue (SysLastValue)"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24765793/
我是一名优秀的程序员,十分优秀!