在Acumatica中通过API创建货件时,我收到错误
另一个过程更新了“SOOrder”记录 . 您的更改将会丢失
我们创建发货的方式如下:
-
将销售订单添加到货件 .
-
保存 .
-
清除屏幕 . oScreen.SO302000Clear();
-
加载创建的货件 .
-
添加装运详细信息,例如装箱位置,装运qtys,批次/序列等 .
-
保存 .
如果用户在创建后立即在Acumatica中加载创建的货件,则会出现此问题 . 然后,当API尝试发布货件详细信息时(步骤4到6),API会抛出错误
PX.Data.PXLockViolationException:错误#90:另一个进程更新了“SOOrder”记录 . 您的更改将会丢失 .
无论如何我们可以在编辑当前在UI中打开的货件时避免锁定违规异常吗?
1 回答
保存货件会触发长时间运行的异步操作 . 在执行任何其他操作之前,您需要等待此过程完成,方法是调用GetProcessStatus()并重试,直到完成为止 . 否则,您将在第二次更新调用时遇到并发问题 .