即时库存二开问题整理总结

关于即时库存二开的问题,专家老师在社区很多帖子做了相关说明及针对问题有回复,这里我根据自己的学习及碰到的问题,将相关的内容做了一个整理,后续如有新的知识和理解,将会持续更新!如有错误的地方,还请指正。
【概述】
1、T_STK_INVSUMQUERY: 即时库存查询汇总数据表,该表初始数据为空,在即时库存查询时由插件即时插入,Kingdee.K3.SCM.Stock.Business.PlugIn.InvSumQueryList
Kingdee.K3.SCM.ServiceHelper.StockServiceHelper.FillInvSumQueryData(this.Context, para);
2、T_STK_INVENTORY:即时库存表,系统在用的14个库存维度:组织、辅助属性、批号、货主类型、货主、保管者类型、保管者、仓库、仓位、库存状态、生产日期、有效期至、计划跟踪号、BOM版本
3、BOS
单据
即时库存(系统界面): STK_InventoryQuery
即时库存汇总数据查询: STK_InvSumQuery
即时库存(明细): STK_Inventory
即时库存明细(系统界面):STK_Inventory
库存锁库列表: STK_LockStock
动态表单
单据联查库存(查询库存操作): STK_InvJoinQuery
4、"预留产生类型" 包括:
手工锁库产生:代表销售订单执行锁库操作,或者即时库存明细执行锁库操作,产生的预留;
MRP运算产生:代表进行MRP计算产生的预留;
手工产生:代表销售订单执行预留操作产生的预留;
单据转换产生:代表源单下推下游单据时产生的预留。

【业务场景】
参考文章:即时库存查询自定义
https://vip.kingdee.com/article/37929
系统的即时库存查询和即时库存明细使用的分别是“即时库存汇总数据查询”和“即时库存”的单据列表,由于即时库存维度固定,且即时库存表的数据都是由库存更新服务后台维护,
所以在BOS设计器,仅支持现有字段的配置或者增加现有基础资料属性类的扩展,不支持其他类型的扩展,如果要增加实际物理字段,数据只能自行维护,则需要通过定时服务或者其他单据插件自行维护数据(不建议,会影响系统单据操作的库存更新性能),
如果二开能严格遵守规范(比如组件和字段命名等),补丁和升级不会影响二开扩展
二开处理方式:
1、增加实际物理字段,通过定时服务或者其他单据插件自行维护数据(不建议,会影响系统单据操作的库存更新性能)
2、只增加字段,在查询时通过列表插件维护查询结果的数据,可参考如下方法:
即时库存查询使用的是“即时库存汇总数据查询”单据的列表,需要派生标准的单据列表插件Kingdee.K3.SCM.Stock.Business.PlugIn.InvSumQueryList,重写PrePareFilterParameter事件,先调用父类中的标准方法,得到This.TransactionID,然后使用这个ID值作为条件,根据业务需要操作t_stk_invsumquery表中当次查询事务的结果数据
即时库存明细使用的是“即时库存”单据的列表,该单据列表采用临时表模式,需要派生BOS列表插件抽象类AbstractListPlugIn,重写BeforeGetDataForTempTableAccess方法,该方法的参数e.TableName是当次查询结果存储的临时表名,可以在这里对临时表中的数据进行再加工
如果自定义字段的结果需要经过很复杂业务要求,计算过程非常耗时,建议还是通过自定义查询报表来实现,否则可能引起库存查询性能问题
1、业务场景:在物料上增加文本字段命名为货号,由新增物料人员填写,现需要把该字段在即时库存中显示,所以在即时库存中增加基础资料属性字段取物料上的货号字段,在查询即时库存的时候也能看到改货号,在即
即时库存二开问题整理总结
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



