存货中途启用批次管理的操作方法NC产品支持部徐建军xujianjun@ufida.com.cn项目开始实施的时候,增加存货档案,对于一些存货的属性,如:批次管理、辅计量管理等要求一经设置就不允许修改,如果客户在后续的应用中对于某些存货的属性想做调整,我们的建议是将存货全部出库然后封存,再重新增加存货。这样操作的话,客户在使用中肯定会感到不适,经过一段时间的总结并结合项目问题,我把中途启用批次管理存货的处理方式写成一篇案例,希望对大家能有所帮助。(仅限于批次管理,如果还有批次核算的话,此方案不适合)需求:存货A原来上线的时候不是批次管理,但是随着项目应用的变化,希望能够改成批次管理。分析:问题的重点在于如果启用了批次管理,后续做单据的话,肯定要输入批次号,但是在以前的单据上是没有批次号的,因此,做出库单保存的时候会报错,并且查询库存中的报表肯定也不正常(有的有批次,有的没有批次),所以我们需要将以前涉及到这个存货的所有的出入库单据都要添加上批次号(可以设定为固定的一个批次),由于批次的使用基本都在库存的单据以及报表中,因此可以只调整库存的单据。方案:(1)查询出公司和存货的pk/*将管理档案改成批次管理*/UPDATEBd_InvmandocfSETf.Wholemanaflag='Y'WHEREEXISTS(SELECTb.invcode,c.Invclasscode,a.Wholemanaflag,a.Pk_InvbasdocFROMBd_InvmandocaINNERJOINBd_InvbasdocbONa.Pk_Invbasdoc=b.Pk_InvbasdocINNERJOINbd_invclcONb.Pk_Invcl=c.Pk_InvclWHEREf.Pk_Invbasdoc=a.pk_invbasdocANDa.Pk_Corp='1017'anda.PK_invbasdoc='NC712007080411140570'ANDF.Wholemanaflag='N');(2)/*修改库存单据Ic_General_b的批次,将空的批次置为‘090101’*/UPDATEIc_General_bkkSETkk.Vbatchcode='090101'WHEREEXISTS(SELECTb.invcode,kk.VbatchcodeFROMBd_InvmandocaINNERJOINBd_InvbasdocbONa.Pk_Invbasdoc=b.Pk_InvbasdocINNERJOINbd_invclcONb.Pk_Invcl=c.Pk_InvclWHEREkk.Cinvbasid=a.pk_invbasdocANDa.Pk_Corp='1017'ANDkk.VbatchcodeISNULLANDa.Wholemanaflag='Y'ANDkk.CINVBASID='NC712007080411140570')AND(kk.Pk_Corp='1017'orkk.cgeneralhidin(selectcgeneralhidfromic_general_hwherepk_corp=’1017’))ANDkk.VbatchcodeISNULL;(3)/*修改库存单据ic_special_b的批次,将空的批次置为‘090101’*/UPDATEic_special_bkkSETkk.Vbatchcode='090101'WHEREEXISTS(SELECTb.invcode,kk.VbatchcodeFROMBd_InvmandocaINNERJOINBd_InvbasdocbONa.Pk_Invbasdoc=b.Pk_InvbasdocINNERJOINbd_invclcONb.Pk_Invcl=c.Pk_InvclWHEREkk.Cinventoryid=a.pk_invmandocANDa.Pk_Corp='1017'ANDkk.VbatchcodeISNULLANDa.Wholemanaflag='Y'ANDkk.Cinventoryid='0001V61000000002YAIV')AND(kk.Pk_Corp='1017'orkk.cspecialhidin(selectcspecialhidfromic_special_hwherepk_corp=’1017’))ANDkk.VbatchcodeISNULL;(4)调整现存量(5)调整月结数据