配置批号主档字段携带至即时库存,需每次清除缓存后即时库存才能正常显示原创
金蝶云社区-邱育华
邱育华
54人赞赏了该文章 2,813次浏览 未经作者许可,禁止转载编辑于2022年01月19日 15:12:24
summary-icon摘要由AI智能服务提供

本文讨论了客户在ERP系统中通过触发器更新批号主档字段,并希望将此字段值反映到即时库存中遇到的问题。客户发现即使更新了批号主档的值,即时库存显示仍然是旧值,因为即时库存系统对数据进行了缓存。文章提供了场景分析、代码示例和解决方案,即通过插件在特定操作后清除相关批号主档的缓存,以确保即时库存显示最新值。

一、【业务背景】:客户在批号主档上加了字段 这个字段取值是通过生产入库单的字段更新的;客户自行做了触发器,批号主档已经能写入值,但是这个值客户需要携带到即时库存里面;在即时库存里面批号是基础资料字段 所以可以通过引入属性去携带;但是每次需要清除缓存才可以显示出来;自定义的字段不支持携带到即时库存吗?


二、【场景分析】:客户二开触发器做数据更新(不建议),库中的批号主档数据已更新,但是即时库存引用批号主档的该字段值还是旧值,原因是即时库存查询中,批号主档做为基础资料已被应用层做了数据缓存,需要通过插件针对对应的批号主档数据清除缓存。


问题还原:

1、扩展“批号主档”基本信息,添加“备注”字段

2、扩展“即时库存汇总查询明细”,添加“基础资料属性”字段“FLotText”,关联批号备注字段

3.jpg

3、直接语句更新批号主档字段: Update T_BD_LOTMASTER set FTEXT  ='Test222' where FLOTID = '544154'

4、刷新“即时库存”,FLotText字段显示未更新

        

三、【代码示例】

  插件继承AbstractOperationServicePlugIn类,重写EndOperationTransaction(EndOperationTransaction e),附加在“保存”或者“审核”操作按钮点击事件下(示例中硬编码了批号主档内码544154,具体情况根据业务需求修改)

4.jpg


四、【实现效果】

验证效果:

1、直接语句更新批号主档字段: Update T_BD_LOTMASTER set FTEXT  ='Test222' where FLOTID = '544154'

2、触发单据中插件操作

3、刷新“即时库存”


1.jpg


2.jpg



以上分析及处理方案是一些个人的理解,如有不对之处,还请指正。

图标赞 54
54人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!