预计在星空2023年1月版本中,提供了寄售结算单保存时校验即时库存功能。在寄售流程中,默认是通过销售出库单审核操作上的校验,如果即时库存不够,销售出库单审核是校验不过的。近期有客户反馈寄售流程中销售出库单的即时库存校验时点会偏后,希望提前在寄售结算单保存或审核操作上就能校验即时库存(有些客户可能没有按正常的寄售流程出库,或者因为其他原因导致客户仓的库存被其它单据出库了,抑或因为系统bug导致直接调拨单上的可结算数量异常,这些情况都可能导致寄售结算的数量与即时库存不一致)。基于此通版提供了相关插件,但默认此插件不配置也不启用,下面介绍下如何配置。
首先打开BOS IDE,扩展寄售结算单,注册相关插件,如下图1-1所示:
图1-1
上图1-1中的插件名为 Kingdee.K3.SCM.App.Sal.ServicePlugIn.ConsignSettle.MinusStockCheck, Kingdee.K3.SCM.App.Sal.ServicePlugIn,通常情况是在寄售结算单上的保存或审核操作上注册此插件,如果不是在星空系统所在的服务器上打开的BOS IDE,则一般是不能选择到这个插件的,这是因为本地电脑打开BOS IDE注册插件时是没有对应的 Kingdee.K3.SCM.App.Sal.ServicePlugIn.dll 组件(如果是本地环境注册插件,可下载附件到本地电脑后再注册)。如果对XML元数据结构有一定的认识,也可以直接修改XML来达到注册插件目的,此时可以扩展单据后不作任何修改直接保存,关闭后通过打开元数据XML增量视图,直接在XML里面追加插件注册代码,如下图1-2所示:
图1-2
元数据保存后,如果即时库不够,则寄售结算单保存时会提示相关警告信息,可以忽略此警告继续,但在后续做销售出库单时会拦截住,寄售结算单保存校验提示如下图1-3所示:
图1-3
注意事项:
1,此服务校验即时库存数量是否充足时,是依赖于寄售结算单的选单明细中的行本次结算数量(基本单位),并且会根据选单明细已有的相关库存维度(库存维度一般包含物料,保管者,货主,仓库仓位,BOM,批号,保质期,有效期等)汇总出一个基本单位数量与即时库存表中同一库存维度的基本数量对比(即时库存表T_STK_INVENTORY会确保同一库存维度只会有一条记录,如果入库同一库存维度的单据,只会在表T_STK_INVENTORY不存在相同维度时添加一条记录,在存在相同维度时只修改即对应记录的数量)。
2,本插件初版只查询即时库存表 T_STK_INVENTORY 中有效且库存状态为可销售的记录,如果跟踪脚本,可看到类似于以下的Sql脚本片断:
SELECT FID, FBASEQTY, FAUXPROPID, FBOMID, FKEEPERID, FKEEPERTYPEID, FLOT, FMATERIALID, FOWNERID, FOWNERTYPEID, FSTOCKID, FSTOCKLOCID, FSTOCKORGID, FPRODUCEDATE, FEXPIRYDATE FROM T_STK_INVENTORY WHERE FISEFFECTIVED = '1' AND FSTOCKSTATUSID IN ( SELECT FSTOCKSTATUSID FROM T_BD_STOCKSTATUS WHERE FNOTSALE = '0' )
3,由于本校验插件默认不是标准功能,只是给特定客户使用(通版只发布此插件代码,但不会在寄售结算单的任何操作校验上配置),后续逻辑可能会根据客户提单修改(比如查询即时库存表的条件可能会修改),后续通版若有修改,会在本帖子中说明版本更新记录。
4,基于 PT-146922 [8.0.0.20220811] 制作过临时补丁(临时补丁也修复过自动匹配发货序列号重复问题),地址为:https://k3cloudpt.kingdee.com/Package/TempPatch_V8_SCM/TempPatch_V8_SCM_8_0_309_12/8_0_309_12/Stardard/TempPatch_V8_SCM.8.0.309.12.kdpkg ,如果客户是此版本且有使用此功能的意愿,可直接安装此临时补丁。
Bin.zip(380.42KB)
推荐阅读