K3 物料代码的批量修改

    需求:K3物料代码由于公司的编码规则变换,需要批量修改编码内容;

    批量修改在数据库进行批处理的时候,需要注意几个问题:

    1.物料表为关联表,主要个核心核算表为 T_ITEM,先通过表关联关系进行关联更新,更新时需要注意数据类别的区分;

          其中  fitemclassid的分类不同,决定的数据不同     4:物料     2001:成本对象  一般存在这两种,其它的在数据字典中查询即可; 

          还要更新物料的父级归属内码,根据case函数进行判定,更新即可;         

     select * from t_ItemClass  --查询各种代码的类别

--更新前需要关注提供数据表的准确唯一性
  delete from yuanbiao$ where fitemid in (select fitemid from t_item where fnumber in (select fnumber from yuanbiao$))
--更新核算信息表,通过导入将需要更改的表导入数据库,随后进行联合查询更新;
update a set a.fnumber=b.new,a.FParentID=(case when left(b.new,8)='60.01.01' then 13635 when left(b.new,8)='60.01.02' then 13195 end)

from t_item a
     inner join  caisheet$ b on a.fnumber=b.old where a.FDeleted=0 and a.fitemclassid=4

          2.更新 t_ICItemCore 物料核心信息表的物料代码,跟 t_item 联合跟新;

  --实例为更新60.01.04的物料代码
  update a set a.fnumber=b.fnumber, a.FParentID=b.FParentID  from t_ICItemCore a 
   inner join t_item b on a.fitemid=b.fitemid  
   where b.fitemclassid=4  and  b.fnumber like '60.01.04.%'

  更新完成即可,更新前需要查询父级关键点的内码,方便更新,也可用编码更新;

posted @ 2020-04-27 16:05  菜菜程序猿  阅读(1301)  评论(0编辑  收藏  举报