金蝶云星空计量单位出错,库存单据审核提示插入重复键

发布时间 2023-08-30 11:00:08作者: allen1991

--即时库存基本单位检查
select * from T_STK_INVENTORY t1 
inner join T_BD_MATERIALBASE t3 on t1.FMATERIALID = t3.FMATERIALID 
where t1.FBASEUNITID <> t3.FBASEUNITID

--即时库存辅助、库存单位检查
select * from T_STK_INVENTORY t1 inner join T_BD_MATERIALSTOCK t2
on t1.FMATERIALID = t2.FMATERIALID 
where t1.FSTOCKUNITID <> t2.FSTOREUNITID or t1.FSECUNITID <> t2.FAUXUNITID

--库存余额基本、辅助单位检查
select * from T_STK_INVbal t1 inner join T_BD_MATERIALSTOCK t2
on t1.FMATERIALID = t2.FMATERIALID 
inner join T_BD_MATERIALBASE t3 on t1.FMATERIALID = t3.FMATERIALID 
where t1.FBASEUNITID <> t3.FBASEUNITID or t1.FSECUNITID <> t2.FAUXUNITID

--结存临时明细基本、辅助单位检查   需要做库存关账才能查询最新有效数据
select t1.FFORMID 单据类型,t5.fname 单据类型名称,t1.fbillno 单据编号,t1.fbillid 单据内码,t1.FBASEQTY 基本单位数量,t1.FBASEUNITID 单据基本单位,
t2.FBASEUNITID 物料基本单位,t1.FSECUNITID 单据辅助单位,t3.FAUXUNITID 物料辅助单位, t1.fmaterialid 物料内码,t4.fnumber 物料编码, t1.* 
from T_STK_STKBALOCCUR t1 inner join 
T_BD_MATERIALBASE t2 on t1.FMATERIALID = t2.FMATERIALID 
inner join T_BD_MATERIALSTOCK t3 on t1.FMATERIALID = t3.FMATERIALID 
inner join T_BD_MATERIAL t4 on t1.FMATERIALID = t4.FMATERIALID 
inner join t_meta_objecttype_L t5 on t1.fformid = t5.fid and t5.flocaleid = 2052
where t1.FBASEUNITID <> t2.FBASEUNITID or t1.FSECUNITID <> t3.FAUXUNITID 

1、保证同一物料在不同组织下的单位保持一致:基本单位、库存单位和辅助单位
2、同步物料表,修改即时库存表中的基本单位=物料基本单位、单位=物料库存单位、辅助单位=物料辅助单位
3、反关账到楼上语句“--库存余额基本、辅助单位检查”查询不到数据为止,也就是要保证剩下的库存余额表中的数据的基本单位和辅助单位与物料保持一致,FBalType=1的初始余额除外
4、关联初始库存单据表和物料表,修复初始库存单据的基本单位、辅助单位
5、关联库存余额表和物料表,修复初始余额的基本单位、辅助单位
6、修复业务单据单据数据的基本单位、辅助单位
     这里最好遍历系统使用过的所有库存单据,如果不确定使用了哪些单据可以点一次关账执行一次“--结存临时明细基本、辅助单位检查”查询该期间是否存在异常单据,如果存在则需要反关并在修复完业务单据数据后重新关账

7、如果修改的是物料的基本单位,需要修复所有可能会下推库存单据的系统单据中的基本单位字段的值,因为下推的时候可能会将非库存单据上基本单位携带到库存单位上再次造成错误数据

8、重新关账
9、校对即时库存和清除0库存