问题现象: | 材料出库单删除时,出现错误提示“存货CP290101A0A1该子件用料已删除” |
问题原因: | 1、此问题是由于材料出库单是参照生产订单生成的,当单据保存时会写入rdrecord(s)表中,同时根据mom_moallocate表的allocateid字段回写rdrecords表的impoids字段。以材料出库单(单据号:2006040433)为例,子件为:CP290101A0A1,利用语句查询出该记录所对应的impoids为7753(语句如下:select cMPoCode,impoids,* from rdrecord m join rdrecords s on m.id=s.id where m.ccode='2006040433'and m.cMPoCode='2006030044X')。这时,再查询mom_moallocate表的allocateid字段所对应的值为36256(语句如下:select invcode,* from mom_moallocate where invcode='CP290101A0A1')。这样造成没有对应关系,因此无法删除。 |
解决方案: | 在查询分析器中选择当前账套及年度后执行如下脚本:(修改前请务必做好数据备份) update s set impoids=36256 from rdrecord m join rdrecords s on m.id=s.id where m.ccode='2006040433'and m.cMPoCode='2006030044X' 【注意事项】 1、不建议直接在后台删除rdrecord(s)表中的记录,那样会造成生产订单已领数量未被清除(mom_moallocate表的issQty),造成后续业务出现问题。 2、此问题无法做批量修改,因为有些生产订单中对应的同一子件存在多个,不知道回写哪个allocateid号是正确的,因些请根据具体单据查询后修改。 3、按照您的描述,修改已经被参照生成材料出库单和生产订单子件(子件变更),发现被修改的子件在mom_moallocate表的allocateid字段值没有发生变化,如果人为增加一条相同的子件信息,会在该表中产生一条新的记录,同时allocateid也会产生新号,以后再参照这样生产订单生成材料出库单时也会根据allocateid字段值回写到rdrecords表的impoids字段中,保持这种对应关系,而不会出现不对应的现象。 4、最后需要说明的是打上补丁后不会造成impoids的丢失。 |
相关补丁: | |
版本: | 8.61 |
模块: | 库存管理 |
产品: | U861--供应链--库存管理 |
问题名称: | 材料出库单删除报错 |
最后更新: | 2006-07-25 00:00:00 |