用友U8 | 我是如何解决序列号状态出错问题的?

问题描述:

每次在审核或者弃审其他出入库单时,都会提示这种错误:xxx不符合当前单据约束条件或者不是来源于上游单据的,该序列号目前状态处于待入库,当前操作需要处于以下状态:xxx

(不限于这种情况,出错的情况有很多种,这里只是举例说明一下问题的展示效果

 原因分析:

下面讲一个例子:

背景:销售调出单(这个是二开的产品,非标准功能)原理应该也是同普通调拨单,以销售调出单为例来讲解

从商务整机仓(001)调拨到区域仓(100)

单据审核顺序:

审核:先审核出库、再审核入库

弃审:先弃审入库,再弃审出库

 

 现在我们来查看一下后台是怎么展示的:

select AutoID,cInvCode,cWhCode,iSNState,iSNOperateCount,cInvSN ,* from ST_SNState WHERE  cInvSN in('HME170220301011') 
select AutoID,cInvCode,cWhCode,iSNPreState,iSNOperateCount,iVouchsID,iVouchID,cInvSN  ,* from ST_SNDetail_OtherIN  where cInvSN in('HME170220301011')
select AutoID,cInvCode,cWhCode,iSNPreState,iSNOperateCount,iVouchsID,iVouchID ,cInvSN ,* from ST_SNDetail_Otherout  where cInvSN in('HME170220301011')

当出库、入库都审核完的状态为:

 

cwhcode(仓库)

isnstate(状态)

100(区域仓)

2(在库)

先弃审【入库】:弃审完为开立状态

此时【序列号状态表】为:

cwhcode(仓库)

isnstate(状态)

100(区域仓)

1(待入库)

先弃审【出库】:弃审完为开立状态

此时【序列号状态表】为:

cwhcode(仓库)

isnstate(状态)

001(区域仓)

3(待入库)

错误操作:

弃审出库:

此时序列号状态表为:

cwhcode(仓库)

isnstate(状态)

100(区域仓)

3(待入库)

过程不怎么操作什么了,就提示错误:xxx不符合当前单据约束条件或者不是来源于上游单据的,该序列号目前状态处于待入库,当前操作需要处于以下状态:xxx

就改成原始状态(这个过程只需要修改序列号状态表,其他2个表不用修改,数据是不变的)

update ST_SNState SET cWhCode='100',iSNState=2 WHERE cInvCode='2300100070'and cInvSN='HME170220301011'

然后再按正常的顺序弃审

要弃审什么:就把序列号状态表返回到:xx仓库在库

要审核什么:就把序列号状态表返回到:xx仓库待出库,再审核

 

总结:

操作及状态:

操作

仓库

状态

初始

001商务整机仓

           3(待出库)

①其他出库审核

100区域仓

1(待入库)

②其他入库审核

100区域仓

2(在库)

③其他入库【弃审】

100区域仓

1(待入库)

④其他出库【弃审】

001商务整机仓

3(待出库)

 



posted @ 2022-02-25 09:15  优秀的进度条  阅读(985)  评论(0编辑  收藏  举报