分享:U9接口生成完工报告异常排查

2023/03/03

这篇文章发布于 629 天前,部分信息可能已经发生变化。

问题

MES推送某个生产订单的完工报告必然抛异常:当前数据正在被其他人操作,请稍后再试

日志如下:

[185][ ][15:16:04][ERROR][UBF.Business]-当前数据正在被其他人操作,请稍后再试 [185][ ][15:16:04][ERROR][UBF.Business]- 在 UFSoft.UBF.Business.Lock.EntityLockManager.ObjectLockForWrite(Object obj, Boolean throwEx, String description) 在 UFIDA.U9.MO.Complete.CompleteRpt.SFCLastOpTransQtyValidate_ReWriteOp(Decimal compQty, Decimal scrapQty, Boolean flag) 在 UFIDA.U9.MO.Complete.CompleteRpt.CompleteRptMainteeOpWIPQtyAndAssemblyWithSession(Int32 signal, Decimal compQty, Decimal scrapQty, Boolean isChanged, EntityKey WO, Boolean CompleteQtyCtlTypeIsCreate) 在 UFIDA.U9.MO.Complete.CompleteRpt.OnInserted() 在 UFSoft.UBF.Business.Entity.UFSoft.UBF.PL.IObjectNotification.OnInserted()

分析

  • 该生产订单MES一次推送是在14:32出现超时,接下来现场用户尝试:N次推送都出现“当前数据正在被其他人操作,请稍后再试”

image-20230303162147845

  • 看日志:异常在UFSoft.UBF.Business.Lock.EntityLockManager.ObjectLockForWrite抛出:

image-20230303161744584

  • 看单据状态:发现正常
SELECT  DocState,WFCurrentState,WFOriginalState from MO_MO where docno = 'MSSZ230209004'
  • 看实体锁表:UBF_Lock_EntityKey,发现一行长期存在,看描述信息应该就是在14:32超时产生的

    QQ图片20230303162543

解决方法

删除该行实体锁:

DELETE UBF_Lock_EntityKey WHERE UBF_Lock_EntityKey.EntityKeyID='1643015336'

image-20230303161902355

  • 现场推送生产完工单成功!

image-20230303162922368