即时库存引用批号主档显示供应商批号缓存问题处理

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

即时库存引用批号主档显示供应商批号缓存问题处理

一、【问题现象】

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

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

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


二、【原因分析】

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


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

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.webp


image.webp

image.webp

image.webp


相关参考:


即时库存引用批号主档显示供应商批号缓存问题处理

一、【问题现象】在即时库存明细中新增基础资料属性字段,取批号的供应商批号字段。在第一次在做采购入库单录入对应批号的供应商批号之后,...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息