Acumatica Create Shipment Lock 违规异常问题

Acumatica Create Shipment Lock Violation Exception Issue

在 Acumatica 中通过 API 创建货件时,我收到错误消息

Another process has updated 'SOOrder' record. Your changes will be lost

我们创建Shipment的方式如下:

  1. 将销售订单添加到装运中。
  2. 保存。
  3. 清除屏幕。 oScreen.SO302000Clear();
  4. 加载创建的货件。
  5. 添加装运详细信息,例如 Bin 位置、装运数量、Batch/Serials 等
  6. 保存。

如果用户在创建后立即在 Acumatica 中加载创建的货件,就会出现此问题。然后,当 API 尝试 post 发货详细信息(步骤 4 到 6)时,API 会抛出错误

PX.Data.PXLockViolationException: Error #90: Another process has updated 'SOOrder' record. Your changes will be lost.

在编辑当前在 UI 中打开的 Shipment 时,我们是否可以避免锁冲突异常?

保存装运会触发一个长期的运行宁异步操作。在执行任何其他操作之前,您需要等待此过程完成,方法是调用 GetProcessStatus() 并重试直至完成。否则,您将 运行 陷入第二次更新调用的并发问题。