2006UFIDASoftwareCorporation870库存与存货期初对账143号工程师尚宏波2006UFIDASoftwareCorporation问题描述问题描述版本:870SP1问题现象:账套为第一年启用,期初数据是在库存录入的,然后在存货进行取数,后对库存期初数据进行了调整,然后在存货当中手工增加了库存调整的数据。然后在存货期初余额中点对账,显示对账成功,但在库存中点对账,存货依然是修改之前的数据,没有包含修改后数据?2006UFIDASoftwareCorporation问题测试问题测试起初认为是客户操作问题,但经测试后,问题重现。测试过程如下:1.库存录入期初数据,简化操作,一个仓库,一个存货,录入期初余额(数量:30,价格30)。存货从库存取数:(数量:30,价格30)。2.库存中点对账或存货中点对账,都显示对账成功。3.更改库存数据,将数量更改为60,价格不变,存货数据不变,然后再点库存中对账或存货中对账,依然显示对账成功。4.库存期初审核,存货期初对账,没有任何影响。5.然后将存货期初相应更改为60后,再点对账,成功。2006UFIDASoftwareCorporation问题分析问题分析关键问题:不是最后对账成功,而是中途更改库存后为何还是对账成功。经多次分析:才发现无论如何再更改库存与存货的期初数据,都会显示对账成功,只要期初是对账成功的。如果期初对账不成功呢??如图所示:库存中点期初结存表头对账按钮后,会在数据库中增加QCCompareKc1_SHBST0,QCCompareKc2_SHBST0存货期初余额点表头对账按钮后,会在数据库中增加QCCompareKc1SHBIA0,QCCompareKc2SHBIA0.2006UFIDASoftwareCorporation问题分析-库存中生成的表问题分析-库存中生成的表下面就来详细看一下数据库中究竟存储了什么数据。QcCompareKc1_SHBT0如下图:iQuantity列中显示库存期初数据,iAInQuantity列中显示存货中数据。在库存中修改了期初数据后,每点一次对账,数据就会往表中加一条,如原为30,更改为60,又更改为90。图2:QcCompareKc2_SHBT0,表中只有一条记录,对账的结果。2006UFIDASoftwareCorporation问题分析-存货中生成的表问题分析-存货中生成的表下面现来详细看一下数据库中究竟存储了什么数据。QCCompareKc1SHBIA0如下图:iQuantity列中显示库存期初数据,iAInQuantity列中显示存货中数据。在存货中修改期初数据后,表中原存货数量60,一动不动,倒每对一次,会在表中插入一条库存的记录。图2:QCCompareKc2SHBIA0,表中也只有一条记录,对账的结果。一直是第一次结果。2006UFIDASoftwareCorporation总结总结1.库存或存货期初余额表头点对账之后,都会在数据库中生成相应的两张临时表,表中存储了库存与存货的期初数据包括对账的结果。2.库存期初数据进行更新后,会在表QcCompareKc1_SHBT0中插入一行新的数据,遗憾的是这条数据与其他原有行的数据无任何标志进行区分,除数量字段变化,其他所有字段完全相同。而且对账结果表QcCompareKc2_SHBT0并没有任何变化。3.存货期初数据进行更新后,并不会如库存一样在表QCCompareKc1SHBIA0中插入一行新的数据,而是每对一次,再取一次库存的数据插入,同样,对账结果表QCCompareKc2SHBIA0也没有任何的变化。注:还好的是,经查库存台账与存货明细账的期初结存都实时进行了更新,所以此处虽然对账对不起来,并不影响后期业务的处理。临时解决方案:将库存或存货期初余额对账之生成的四张表在数据库中进行删除之后,再进行对账,又根据最新数据生成临时表后,对账结果正确。2006UFIDASoftwareCorporation亚洲第二中国第一的亚洲第二中国第一的ERPERP软件供应软件供应商商