仓位数据查询-学习笔记原创
金蝶云社区-邱育华
邱育华
12人赞赏了该文章 2,372次浏览 未经作者许可,禁止转载编辑于2023年01月13日 16:01:19
summary-icon摘要由AI智能服务提供

本文介绍了仓位值在仓库管理系统中使用的两种方式:组合方式与非组合方式。非组合方式下,仓位值不录入,单据录入时可选择任意仓位值;组合方式则设置仓位值,保存时生成多个仓位值组合,单据录入时只能从这些组合中选择。文中还详细说明了如何通过SQL查询获取仓库、仓位值集及具体仓位值的信息,并解释了如何根据设置生成仓位值组合数据,以及如何在单据录入时应用这些组合。此外,还提及了如何批量禁用和反禁用仓位值组合。

仓位值的使用分为:组合方式、非组合方式

  • 非组合方式:仓位值不录入,即仓位值不采用组合方式,则在单据录入每个仓位值集的具体数据

  • 组合方式:设置有仓位值,则仓库中在保存时会生成多个仓位值的组合数据,仓位值组合总数(笛卡尔乘积)等于仓位集1的仓位值数 * 仓位值集2 * 仓位值集N 的仓位值数在单据录入时只能只能从对应仓位的值组合中进行选择


非组合方式数据

一、新增仓库,启用仓位管理,添加仓位值值,不设置仓位值

image.png


-- 仓库启用仓位的值集维度

SELECT T2.FSTOCKID, T2.FNUMBER, T3.FNAME,T1.FFLEXID 仓位值集维度内码, T31.FNUMBER 仓位值集编码,T31L.FNAME 仓位值集名称 FROM T_BD_STOCKFLEXITEM T1
JOIN T_BAS_FLEXVALUES T31 ON T1.FFLEXID = T31.FID
JOIN T_BAS_FLEXVALUES_L T31L ON T31L.FID = T31.FID
JOIN T_BD_STOCK T2 ON T1.FSTOCKID = T2.FSTOCKID
JOIN T_BD_STOCK_L T3 ON T2.FSTOCKID = T3.FSTOCKID
WHERE T2.FSTOCKID = 140723 
ORDER BY T2.FSTOCKID


image.png


此时,T_BD_FLEXVALUESCOM 、T_BAS_FLEXVALUESDETAIL 两张表未生成该仓库相关的仓位值数据

SELECT * FROM T_BD_FLEXVALUESCOM  WHERE FSTOCKID = 140723     -- 仓库仓位值集合组合    

SELECT * FROM T_BAS_FLEXVALUESDETAIL -- 值集资料维度数据


新增其他入库单,因为该仓库的仓位值集下没有设置对应仓位值,所以可以选择任意的仓位值

image.png


审核单据

image.png


查看即时库存(T_STK_INVENTORY)和仓位值集维度使用数据T_BAS_FLEXVALUESDETAIL

select * from T_STK_INVENTORY where FMATERIALID = 128834 and FSTOCKID = 140723 
select * from T_BAS_FLEXVALUESDETAIL where FID = 100017
-- 即时库存仓位FstockLocId关联查询仓位值
select T3.FNUMBER, T31.FNAME, * from T_STK_INVENTORY T1 
left JOIN T_BAS_FLEXVALUESDETAIL T2 ON T1.FSTOCKLOCID = T2.FID -- 值集资料维度数据
left join T_BAS_FLEXVALUESENTRY T3 ON T3.FENTRYID = T2.FF100001   -- 仓位值
left join T_BAS_FLEXVALUESENTRY_L T31 ON T31.FENTRYID=T3.FENTRYID and T31.FLOCALEID=2052 --仓位值
left join T_BAS_FLEXVALUES T12 on T3.FID = T12.FID and T12.FFLEXNUMBER = 'FF100001' --仓位值集 -基本信息
where FSTOCKORGID = 100003 and FMATERIALID = 128834 and FSTOCKID = 127842


这里相当于在单据使用时仓位维度才确定下来,系统根据各维度仓位值生成了一个确定的仓位内码


数据说明:

  • 针对T_BAS_FLEXVALUESDETAIL中的数据可以这么理解: FID: 仓位内码  列名:FF100001,FF100002中的100001(编码:区)、100002(编码:位) 表示仓位值集的内码,数据行中100002(B区)、100020(17位)对应为仓位值内码

  •  即(B区)-(17位) 所对应的仓位内码为:100017


image.png


组合方式数据

一、新增仓库,启用仓位管理,添加仓位值集,同时设置仓位值

image.png

查询: 仓库启用仓位的值维度

SELECT T2.FSTOCKID, T2.FNUMBER, T3.FNAME, T4.FFLEXENTRYID AS 仓位值内码, T41.FNUMBER 仓位值编码, T41L.FNAME 仓位值名称, T1.FFLEXID 仓位值集维度内码,T31.FNUMBER 仓位值集编码,T31L.FNAME 仓位值集名称 FROM T_BD_STOCKFLEXITEM T1
JOIN T_BD_STOCKFLEXDETAIL T4 ON T1.FENTRYID = T4.FENTRYID
JOIN T_BAS_FLEXVALUES T31 ON T1.FFLEXID = T31.FID
JOIN T_BAS_FLEXVALUES_L T31L ON T31L.FID = T31.FID
JOIN T_BAS_FLEXVALUESENTRY T41 ON T4.FFLEXENTRYID = T41.FENTRYID
JOIN T_BAS_FLEXVALUESENTRY_L T41L ON T41L.FENTRYID = T41.FENTRYID
JOIN T_BD_STOCK T2 ON T1.FSTOCKID = T2.FSTOCKID
JOIN T_BD_STOCK_L T3 ON T2.FSTOCKID = T3.FSTOCKID
WHERE T2.FSTOCKID = 140734
ORDER BY T2.FSTOCKID, T31.FNUMBER, T41.FNUMBER


image.png


此时,T_BD_FLEXVALUESCOM 、T_BAS_FLEXVALUESDETAIL 两张表在仓库保存后生成该仓库相关的仓位值数据

select * from T_BD_FLEXVALUESCOM where FSTOCKID = 140734     -- 仓库仓位值集合组合    

select * from T_BAS_FLEXVALUESDETAIL where FID in 
(select FSTOCKLOCID from T_BD_FLEXVALUESCOM where FSTOCKID = 140734) -- 值集资料维度数据


当设置有仓位值,则仓库中在保存时会生成多个仓位值的组合数据,仓位值组合总数(笛卡尔乘积)等于仓位集1的仓位值数 * 仓位值集2 * ..... 仓位值集N 的仓位值数,在单据录入时只能从对应仓位的值组合中进行选择

如何批量禁用和反禁用仓位值组合


image.png


新增其他入库单,因为该仓库的仓位值集下设置对应仓位值,所以只能从仓位值组合中进行选择

image.png




以上分析仅供参考,如有错误,请指导改正。


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