即时库存引用批号主档显示供应商批号缓存问题处理原创
金蝶云社区-邱育华
邱育华
13人赞赏了该文章 1,134次浏览 未经作者许可,禁止转载编辑于2022年11月09日 14:10:40

一、【问题现象】

在即时库存明细中新增基础资料属性字段,取批号的供应商批号字段。

在第一次在做采购入库单录入对应批号的供应商批号之后,查询即时库存明细,可以显示出该供应商批号。

再一次做采购入库单录入对应批号的另一个供应商批号之后,即时库存明细中显示的还是之前的供应商批号。这时查询批号主档,供应商批号字段是已经更新的。


二、【原因分析】

即时库存查询中,批号主档作为基础资料已被应用层做了数据缓存,需要通过插件针对对应的批号主档数据清除缓存。


以其他入库单为例,二开保存插件,在保存事务结束后刷新批号主档的缓存。

import clr
clr.AddReference("mscorlib")
clr.AddReference('System')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.DataEntity')
clr.AddReference('Kingdee.BOS.ServiceHelper')
clr.AddReference('Kingdee.BOS.Contracts')
clr.AddReference('Kingdee.K3.Core')

from System import *
from System.Collections import *
from System.Collections.Generic import *
from System import StringComparison
from Kingdee.BOS.Log import Logger
from Kingdee.BOS import *
from Kingdee.BOS.Util import *
from Kingdee.BOS.App.Core import *
from Kingdee.BOS.App.Data import *
from Kingdee.BOS.Core.Bill.PlugIn import *
from Kingdee.BOS.ServiceHelper import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
from Kingdee.BOS.Core.Const import *

def EndOperationTransaction(e):
    lotIds = List[String]()
    for billObj in e.DataEntitys:
        entryItems = billObj["STK_MISCELLANEOUSENTRY"] # 单据体实体名 采购入库单:InStockEntry, 其他入库单:STK_MISCELLANEOUSENTRY
        for entry in entryItems:
            lotId = Convert.ToString(entry["Lot_Id"])
            lotIds.Add(lotId)
            
    ClearCacheByPrimaryKeys(this.Context, "BD_BatchMainFile", lotIds)
    
def ClearCacheByPrimaryKeys(ctx, formId, keys):
    if keys == None or len(keys) == 0:
        return
        
    metadata = FormMetaDataCache.GetCachedFormMetaData(ctx, formId)
    if metadata == None:
        return
        
    cacheManager = DataEntityCacheManager(ctx, metadata.BusinessInfo.GetDynamicObjectType())
    cacheManager.RemoveCacheByPrimaryKeys(keys)
    CacheUtil.ClearCache(ctx.DBId + formId, CacheRegionConst.BOS_QuickBaseDataCache)

image.png


image.png

image.png

image.png


相关参考:


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