本文介绍了仓位值在仓库管理系统中使用的两种方式:组合方式与非组合方式。非组合方式下,仓位值不录入,单据录入时可选择任意仓位值;组合方式则设置仓位值,保存时生成多个仓位值组合,单据录入时只能从这些组合中选择。文中还详细说明了如何通过SQL查询获取仓库、仓位值集及具体仓位值的信息,并解释了如何根据设置生成仓位值组合数据,以及如何在单据录入时应用这些组合。此外,还提及了如何批量禁用和反禁用仓位值组合。
仓位值的使用分为:组合方式、非组合方式
非组合方式:仓位值不录入,即仓位值不采用组合方式,则在单据录入每个仓位值集的具体数据
组合方式:设置有仓位值,则仓库中在保存时会生成多个仓位值的组合数据,仓位值组合总数(笛卡尔乘积)等于仓位集1的仓位值数 * 仓位值集2 * 仓位值集N 的仓位值数,在单据录入时只能只能从对应仓位的值组合中进行选择
非组合方式数据
一、新增仓库,启用仓位管理,添加仓位值值,不设置仓位值
-- 仓库启用仓位的值集维度
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
此时,T_BD_FLEXVALUESCOM 、T_BAS_FLEXVALUESDETAIL 两张表未生成该仓库相关的仓位值数据
SELECT * FROM T_BD_FLEXVALUESCOM WHERE FSTOCKID = 140723 -- 仓库仓位值集合组合
SELECT * FROM T_BAS_FLEXVALUESDETAIL -- 值集资料维度数据
新增其他入库单,因为该仓库的仓位值集下没有设置对应仓位值,所以可以选择任意的仓位值
审核单据
查看即时库存(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
组合方式数据
一、新增仓库,启用仓位管理,添加仓位值集,同时设置仓位值
查询: 仓库启用仓位的值维度
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
此时,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 的仓位值数,在单据录入时只能从对应仓位的值组合中进行选择
新增其他入库单,因为该仓库的仓位值集下设置对应仓位值,所以只能从仓位值组合中进行选择
以上分析仅供参考,如有错误,请指导改正。
推荐阅读