即时库存表数量和界面对不上?原创
金蝶云社区-null
null
22人赞赏了该文章 895次浏览 未经作者许可,禁止转载编辑于2019年08月29日 09:50:21

     有用户发现系统的即时库存表里保存的数量和系统中查询到的不一致,难道是系统出了问题,导致数据错误了?   

     为了性能考虑,系统的即时库存表中只有基本单位数量(FBaseQty)和库存辅助单位数量(FSecQty)是实时更新的。其他的字段都是在查询即时库存时才计算出来显示的。即时库存单据STK_Inventory对应的列表即时库存明细采用的是临时表模式,BOS列表平台会把根据过滤条件获取到的数据插入到临时表中,然后通过列表框架的BeforeGetDataForTempTableAccess事件通知列表插件数据所在的表名,列表插件在此方法中对临时表数据进行加工,最终显示出结果,也是这个原因,库存单位数量和可用量是没办法拿来做过滤的,因为表里就没有存这个数据。(如果需要在即时库存增加二开字段,也可以在此方法中对临时表中的二开字段数据进行加工,达到在列表明细显示的目的)

      利用系统WebApi接口的“单据查询”接口获取“STK_Inventory"数据时,得到的也是数据表中未做加工的数据。如果要获取库存单位数量,可以根据返回的物料内码重新加载物料数据,得到物料上缓存的库存单位换算分子和库存单位换算分母,以此来做单位换算。库存单位的精度和舍入类型也可以根据库存单位内码加载单位数据得到。也可以加载单位换算关系数据,得带换算率信息。

      如果还要扣除预留和锁库,计算可用量。可以使用“PLN_RESERVELINK”作为FormId读取预留结果数据单据的供给数据,以即时库存内码作为供给单据内码的过滤条件和汇总依据,来匹配扣减现有的基本单位预留/锁库数量,得到基本单位可用量之后再换算出库存单位可用量

赞 22