序列号在库存管理系统中的数据结构说明
本文对金蝶云星空产品中的序列号在库存管理系统中的数据结构 做一个简明扼要的说明
(本文中涉及到SQL脚本,在MS SQL SERVER环境下调试通过)
1、物料
物料在库存管理中用到序列号,需要要在物料的【库存】页签中勾上序列号管理的“库存管理”,如下图所示
图1
物料上的相关字段:
对应的数据库中的字段:t_bd_materialStock. FISSNMANAGE (如果启用,则此字段值为1)
可通过以下SQL查询:
select s.FISSNMANAGE, m.* from t_bd_materialStock s join t_bd_material m on s.fmaterialid=m.fmaterialid where m.fnumber='1sn'
2、序列号相关的表
2.1 出入库单据中保存序列号的表,表名基本上都是以 SERIAL结尾
比如采购入库单序列号表 :T_STK_INSTOCKSERIAL
销售出库单序列号表 : T_SAL_OUTSTOCKSERIAL
盘盈单序列号表 : T_STK_STKCOUNTGAINSERIAL
......
图2
SQL示例:对应上图,查询采购入库“TESTin” 的序列号,注意与t_stk_instockEntry的fEntryid字段关联
select a.fbillno,a.fdate,e.fseq,e.fentryid,S.*
from t_stk_instock a join t_stk_instockEntry e on a.fid=e.fid join T_STK_INSTOCKSERIAL s on s.fEntryid=e.fEntryid where a.fbillno='TESTin'
图3
2.2 序列号本身,库存管理模块中主要是用到以下这5张表
T_BD_SERIALMASTER -- 序列号主档
T_BD_SERIALMASTERORG -- 序列号主档适用组织
T_BD_SERIALMASTEROTHER -- 序列号主档(次要字段)
T_BD_SERIALBILLTRACE -- 序列号跟踪
T_BD_SERIALBILLTRACE_E -- 序列号跟踪附属信息表
如果不同的物料存在相同的序列号,查询序列号主档的内码时需要加上物料内码进行区分
需要注意的是,如果物料是其他组织分配过来的,序列号主档中用到的物料内码是物料的FMASTERID
值而不是物料的FMATERIALID值。
MSSQL数据库环境,序列号中的字母不区分大小写(仅大小写不一致的序列号,当作同一个序列号),而ORACLE数据库则区分大小写
图4
2.3 序列号主要的5张表的说明
序列号相关的表对应的保存内容
图5
2.3.1 表 T_BD_SERIALMASTER (序列号主档)主要用于查询序列号的内码;它还保存了禁用状态、禁用人、禁用日期等信息。
2.3.2 表 T_BD_SERIALMASTERORG(序列号主档适用组织)保存序列号主档的所在组织及该组织的在库状态
序列号主档的在库状态,保存在 T_BD_SERIALMASTERORG.FSTOCKSTATUS 字段中,
其值: 0---待入库;1---在库;2---待出库;3---出库
图6
2.3.3 表T_BD_SERIALMASTEROTHER (序列号主档-次要字段)保存了序列号主档的仓库、批号、供应商、生产部门、辅助属性、客户、创建日期、创建人、修改日期、修改人 等信息。
2.3.4 表T_BD_SERIALBILLTRACE(序列号跟踪)此表与即时库存密切相关,下图中以物料1sn,机加原材料仓库中的即时库存,在表T_BD_SERIALBILLTRACE中的数据为例进行说明(先其他入库,再通过直接调拨单到这个仓库)
图7
图8
上图中,最下面一部分是 序列号跟踪 表T_BD_SERIALBILLTRACE 的内容
其中,同一个序列号主档(内码 100267)在跟踪记录中有两条记录,跟踪表内码 FBILLTRACEID 值最大的一行,是最新的出入库跟踪记录,其FSTATE字段值也是记录的在库状态,其值: 0---待入库;1---在库;2---待出库;3---出库 ,其FINVID字段的值与即时库存的FID字段值一致;
序列号跟踪信息中显示的单据号,在这张表中保存的是单据类型、单据内码,在序列号主档中双击跟踪信息中的单据,按这里保存的单据类型、单据内码打开对应的单据
其中的单据类型字段 FBILLFORMID 的值,可以参考以下SQL查询(WHERE条件中列出了一部分)
select a.FBILLFORMID,l.fname from T_META_NEEDTYPEBILL a join T_META_NEEDTYPEBILL_l l on
a.fBillformid=l.fBillformid and l.FLOCALEID=2052
where a.FBILLFORMID in('STK_MISCELLANEOUS','STK_MisDelivery','SAL_OUTSTOCK','STK_InStock')
图9
如果要在即时库存中能查到这个序列号,且能正常领料出库,必须具备以下条件:
1)物料的即时库存大于0;
2)相关序列号(内码)在T_BD_SERIALMASTERORG.FSTOCKSTATUS字段值为1(在库),所在组织与即时库存的库存组织一致;
3)在表T_BD_SERIALBILLTRACE中同一序列号对应最大跟踪表内码 FBILLTRACEID的一行中,FSTATE字段值为1(在库),其FINVID值不为空值 ,且与即时库存的FID值相等。
如果在即时库存中查询不到相关的序列号,最大的可能就是T_BD_SERIALBILLTRACE 这张表的数据与即时库存不匹配
--以下图10~图13中的内容,系统环境是“审核时”更新库存。如果是保存时更新库存,效果会不一样
如果存在调拨单已保存或提交,但未审核,对应于 T_BD_SERIALMASTERORG.FSTOCKSTATUS、
T_BD_SERIALBILLTRACE.FSTATE字段(同一序列号,最大跟踪表内码 FBILLTRACEID的一行)的值为0,待入库状态,此时序列号仍绑定原来的即时库存,在即时库存中能查到,但这个序列号在调拨单审核前,不能在出库单上被选到
图10
如下图,注意这种调拨单保存后未审核,待入库状态的,表T_BD_SERIALBILLTRACE中同一序列号,对应最大跟踪表内码 FBILLTRACEID的一行中FINVID值为空,FSTATE=0,此时即时库存绑定的是FINVID值不为空的一行中的即时库存ID
图11
如果是出库单未审核,序列号状态显示为待出库,此时即时库存绑定的是FINVID值不为空的一行中的即时库存ID。此序列号能在即时库存中查到,但不能在出库单上选到。
图12
其他出库单保存后未审核,待出库状态的,表T_BD_SERIALBILLTRACE中同一序列号,对应最大跟踪表内码 FBILLTRACEID的一行中FINVID值为空,FSTATE=2,数据库中的数据如下:
图13
2.3.5 表T_BD_SERIALBILLTRACE_E (序列号跟踪附属信息表) 对应T_BD_SERIALBILLTRACE的行,用于显示单据编号和单据日期。(如果T_BD_SERIALBILLTRACE_E显示的单据编号与表T_BD_SERIALBILLTRACE不匹配,双击单据编号时会按T_BD_SERIALBILLTRACE表的单据类型内码、单据内码打开对应单据,而不是界面上显示的单据编号)
图14
以上是序列号在库存管理系统中的数据结构的说明,希望对读者能有一定的帮助。
限于作者的水平,文中可能存在错漏,欢迎读者批评指正。
写的非常详细。多谢分享
写的非常详细,赞!!!
写的非常详细,赞!!!
序列号在库存管理系统中的数据结构说明
本文2024-09-16 18:42:20发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-23872.html
- 鼎捷EAI整合規範文件V3.1.07 (集團).pdf
- 鼎捷OpenAPI應用場景說明_基礎資料.pdf
- 鼎捷OpenAPI應用場景說明_財務管理.pdf
- 鼎捷T100 API設計器使用手冊T100 APIDesigner(V1.0).docx
- 鼎新e-GoB2雲端ERP B2 線上課程E6-2應付票據整批郵寄 領取.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A4使用者建立權限設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C3會計開帳與會計傳票.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程E6-1應付票據.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A5-1進銷存參數設定(初階篇).pdf
- 鼎新e-GoB2雲端ERP B2 線上課程D2帳款開帳與票據開帳.pdf