首页 > 解决方案 > 为什么 AMReleaseProcess 在添加记录时失败?

问题描述

最近我们从 2019R1 升级到 2020 R2,我们对 JAMS 包进行了一些定制,即使我们进行了定制,我们在 2019R1 中也没有遇到任何问题,在这个新版本 2020 R2 中,我们在发布劳动力交易时面临另一个流程错误,所以我排除了我们所有的扩展图形文件并经过验证,但仍然面临同样的问题。

收到的错误是“错误:另一个进程添加了 'AMProdEvnt' 记录。您的更改将丢失。”

根据跟踪,错误似乎发生在 Persist() 期间 AMReleaseProcess.cs 的第 350 行,但源代码似乎在第 350 行附近的任何地方都没有引用 AMProdEvnt 或 Persist。

跟踪的最后部分:

Error: Another process has added the 'AMProdEvnt' record. Your Changes will be lost.
at PX.Data.PXCache`1.PersistInserted(Object row, Boolean bypassInterceptor)
at PX.Data.PXCache`1.Persist(PXDBOperation operation)
at PX.Data.PXGraph.Persist(Type cacheType, PXDBOperation operation)
at PX.Data.PXGraph.Persist()
at PX.Objects.AM.AMReleaseProcess.cs Ln 350 AMReleaseProcess.Persist()
at PX.Objects.AM.AMReleaseProcess.cs Ln 511 AMReleaseProcess.ReleaseDocProc(AMBatch doc)
at PX.Objects.AM.AMDocumentRelease.cs Ln 49 AMDocumentRelease.ReleaseDoc(List`1 list, Boolean isMassProcess)

由于跟踪似乎与构建 20.207.0012 附带的源代码不匹配,我无法在源代码中找到问题。什么会导致在应该执行实际添加记录的过程中已经添加记录?

这是跟踪的屏幕截图。我们在 - 2020R2 Build -20.207.0012

在此处输入图像描述

标签: acumatica

解决方案


我咨询了 Acumatica 员工Brendan,他建议:

我相信这只是一个已知问题,升级应该可以解决该问题,并通过将 max line 设置为 AMProdItem.LineCntrEvent(可能拼写错误)来修复生产事件 (AMProdEvent) 的行计数器。


推荐阅读