问题现象: |
用户是出库跟踪入库,3月份发生的单据,是直接通过rdrecord和rdrecords导入的,所以rdrecords中的累计出库数量是错误的,而且批次表的记录也是错误的.现在,想重新计算累计出库数量和批次表. |
问题原因: |
1、经查询,在2005年期初02库及03库期初与存货模块对账不平;
2、不建议采用此种导表的方式来导入数据,因为在有业务发生的时候会涉及很多相关的表,如:采购订单主子表、采购请购单主子表、采购到货单主子表、采购发票主子表、采购结算单主子表、rdrecord(s)、MainBatch等等很多相关的表;
3、在采用出库跟踪入库的模式下,入库会产生一个入库单号‘rdrecord.ccode’及对应的‘rdrecords.autoid’,在出库的时候将出库单对应的入库单子表标识(‘rdrecords.cvouchcode’)的iquantity字段的实际出库数量回写到对应的入库单的isoutquantity中。
4、而对于MainBatch中的记录是在2004年底,bisnull字段不为1的将结转到下年,而且还包括当年入库业务的记录(不包括出库); |
解决方案: |
1、由于所采用的导表方式容易产生数据错误,因此如下的脚本只能强行调整入库单的累计出库数量等于出库单的实际出库数量。(请先将期初调平后再执行此脚本,不能保证以后是否会出现问题)
--插入一个临时表
select sum(b.iquantity) as 实际出库,max(a.iquantity) as 入库数量 ,
max(a.isoutquantity) as 累计出库数量, b.cvouchcode as 对应入库单子表标识
into lsb
from rdrecords a
join rdrecords b on a.autoid=b.cvouchcode
join rdrecord c on a.id=c.id
group by b.cvouchcode
--将累计出库数量等于临时表的实际出库数
update a
set a.isoutquantity=b.实际出库
from rdrecords a ,lsb b
WHERE a.autoid = b.对应入库单子表标识
2、对于MainBatch表,暂不能做改动,因为2005年的记录比2004年bisnull为0的记录少很多,而且当年录入的记录又不好确定,只能逐一查询后,加到数据库中。 (一个小建议:可以将2004年此表中BISNULL字段为0的记录过滤出来,清空2005年此表,确定2004年没有问题后将此记录插上入到2005年中,再将2005年发生的出库跟踪入库的入库记录插入到2005年中) |
相关补丁: |
|
版本: |
8.51A |
模块: |
库存管理 |
产品: |
U851A----库存管理 |
问题名称: |
出库时无法跟踪入库 |
最后更新: |
2005-06-28 00:00:00 |