电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

#实践案例#启用批号的物料可以反启用吗?方案来了!!

来源:金蝶云社区作者:金蝶2024-09-167

#实践案例#启用批号的物料可以反启用吗?方案来了!!

1 业务背景

1.1业务场景

本案例基于启用批号业务场景而撰写,产品为旗舰版V7.0,在企业的实际业务中,有启用批号管理业务场景,但是在使用过程中,批号并没有给公司带来很大便捷性,反而给后续的仓库造成很大的工作量,比如启用批号,下推领料的时候,有时候由于未能及时入库,或者由于入库单未能及时审批,出库的批号是未知之数,因此不能选择或者随便填写,出库单也就无从选择批号。此种情况是最为常见并且仓库工作量投入大量精力,往往数据不能及时有效录入系统。


1.2客户痛点分析

帐套中去掉批号管理

本来物料启用批号的主要目的就是想要追溯来源,并且为后续订单质量进行追踪,方便分批进行成本计算。但是在实际的操作过程中,仓库的工作也做了,不但没有起到强大的管理作用,反而经常出现实物批号跟系统库存批号不符的情况,更有甚者,库存中某个批号为正数,某个批号为负数,数量刚好相反,如果物料的计价方法为分批认定法的话,给财务的工作也造成了很大的困扰,往往获取不到负结存料号的单价,存货核算也就结账不成功。给财务造成很大的工作量,往往在期末结账的时候,都在大量查找各种产品,的各种成本,严重延误出报表的时间

 

1.3客户诉求与期望

客户最大的期望是仓库数据及时稳定,同时财务可以正常快速结账。考虑再三,还是决定去掉物料中的批号管理,这样仓库的工作量也会小一些,财务结账也会更顺畅一些

 

2 解决方案

 2.1整体思路

根据客户实际的业务场景,在加上金蝶系统本身的功能,不在数据库中进行处理,系统中是根本不具有解决方案的,因此考虑到直接在数据库中清掉跟批号有关的所有数据,具体方案如下:


需要考虑的点

1)物料属性修改:去掉所有物料的批号控制设置;

2)出入库单据修改:清除所有出入库单据的批号;

3)生产投料资料批号清除;

4)生产投料变更单批号清除;

(5)生产任务单批号清除;

(6)生产任务变更单批号清除;

(7)生产物料报废/补料单批号清除;

(8)采购销售发票批号清除;

(9)初始化库存单据批号清除;

(10)库存余额数据批号清除和数据处理;

(11)即时库存重算:前端系统重算【校对及时库存】。

  

关键步骤及效果展示 

步骤1:物料属性修改:去掉所有物料的批号控制设置;

update t_icitem set FBatchManager = 0  where FBatchManager = 1

如果只是某一个或者部分料号误操作,启用了批号,则直接在最后增加where语句即可

 

步骤2:出入库单据修改:清除所有出入库单据的批号;

update ICStockbillEntry set FBatchNo = '' where isnull(FBatchNo,'') <> ''

如果只是某一个或者部分料号误操作,启用了批号,在入库的时候提示需要输入序列号,还未入库的情况下,则不需要处理此步骤

 

步骤3:生产投料资料批号清除

update PPBOMEntry set FBatchNo = '' where isnull(FBatchNo,'') <> '' 

 

步骤4:生产投料变更单批号清除

update PPBomChangeEntry set FBatchNo = '' where isnull(FBatchNo,'') <> ''

 

步骤5:生产任务单批号清除;

update ICMO set FGMPBatchNo = '' where isnull(FGMPBatchNo,'') <> ''

 

步骤6生产任务变更单批号清除;

 update ICMOChangeEntry set FBatchNo = '' where isnull(FBatchNo,'') <> '' 

 

步骤7生产物料报废/补料单批号清除;

update ICItemScrapEntry set FBatchNo = '' where isnull(FBatchNo,'') <> '' 

 

步骤8采购销售发票批号清除;

update ICPurchaseEntry set FBatchNo = '' where isnull(FBatchNo,'') <> ''

update ICSaleEntry set FBatchNo = '' where isnull(FBatchNo,'') <> ''

 

步骤9初始化库存单据批号清除;

第一步删掉期初数据并且备份数据,参考如下:

select a.* into ICInvBal_bak01 from ICInvBal a,(

select FYear,FPeriod,FStockID,FItemID

from ICInvBal

group by FYear,FPeriod,FStockID,FItemID

having count(1) > 1 ) b

where a.FYear = b.FYear and a.FPeriod = b.FPeriod and a.FStockID = b.FStockID and a.FItemID = b.FItemID

 

delete a 

from ICInvBal a,ICInvBal_bak01 b

where a.FYear = b.FYear and a.FPeriod = b.FPeriod and a.FStockID = b.FStockID and a.FItemID = b.FItemID

 

insert into ICInvBal(FBrNo,FYear,FPeriod,FStockID,FItemID,FBatchNo,FBegQty,FReceive,FSend,FYtdReceive,FYtdSend,FEndQty,FBegBal,FDebit,FCredit,

FYtdDebit,FYtdCredit,FEndBal,FBegDiff,FReceiveDiff,FSendDiff,FEndDiff,FBillInterID,FStockPlaceID,FKFPeriod,FKFDate,

FYtdReceiveDiff,FYtdSendDiff,FSecBegQty,FSecReceive,FSecSend,FSecYtdReceive,FSecYtdSend,FSecEndQty,FAuxPropID,FStockInDate,

FMTONo)

select 

'0',FYear,FPeriod,FStockID,FItemID,'',sum(FBegQty),sum(FReceive),sum(FSend),sum(FYtdReceive),sum(FYtdSend),sum(FEndQty),sum(FBegBal),sum(FDebit),sum(FCredit),

sum(FYtdDebit),sum(FYtdCredit),sum(FEndBal),0,0,0,0,0,0,0,'',

0,0,0,0,0,0,0,0,0,'',''

from ICInvBal_bak01

group by FYear,FPeriod,FStockID,FItemID

第二部更新数据:

update ICInvBal set FBatchNo = '' where isnull(FBatchNo,'') <> ''  

 

步骤

#实践案例#启用批号的物料可以反启用吗?方案来了!!

1 业务背景1.1业务场景本案例基于启用批号业务场景而撰写,产品为旗舰版V7.0,在企业的实际业务中,有启用批号管理业务场景,但是在使用过...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信