序列号在库存管理系统中的数据结构说明

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

序列号在库存管理系统中的数据结构说明

本文对金蝶云星空产品中的序列号在库存管理系统中的数据结构  做一个简明扼要的说明

(本文中涉及到SQL脚本,在MS SQL SERVER环境下调试通过)


1、物料


物料在库存管理中用到序列号,需要要在物料的【库存】页签中勾上序列号管理的“库存管理”,如下图所示

image.webp

图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

......

image.webp

图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'

image.webp

图3


2.2 序列号本身,库存管理模块中主要是用到以下这5张表

T_BD_SERIALMASTER               -- 序列号主档

T_BD_SERIALMASTERORG        -- 序列号主档适用组织

T_BD_SERIALMASTEROTHER    -- 序列号主档(次要字段)

T_BD_SERIALBILLTRACE            -- 序列号跟踪

T_BD_SERIALBILLTRACE_E         -- 序列号跟踪附属信息表



如果不同的物料存在相同的序列号,查询序列号主档的内码时需要加上物料内码进行区分

需要注意的是,如果物料是其他组织分配过来的,序列号主档中用到的物料内码是物料的FMASTERID

值而不是物料的FMATERIALID值。

MSSQL数据库环境,序列号中的字母不区分大小写(仅大小写不一致的序列号,当作同一个序列号),而ORACLE数据库则区分大小写


image.webp

图4


2.3 序列号主要的5张表的说明

序列号相关的表对应的保存内容

image.webp

图5



2.3.1 表 T_BD_SERIALMASTER (序列号主档)主要用于查询序列号的内码;它还保存了禁用状态、禁用人、禁用日期等信息。


2.3.2 表 T_BD_SERIALMASTERORG(序列号主档适用组织)保存序列号主档的所在组织及该组织的在库状态

序列号主档的在库状态,保存在 T_BD_SERIALMASTERORG.FSTOCKSTATUS 字段中,

其值: 0---待入库;1---在库;2---待出库;3---出库


image.webp

图6


2.3.3 表T_BD_SERIALMASTEROTHER (序列号主档-次要字段)保存了序列号主档的仓库、批号、供应商、生产部门、辅助属性、客户、创建日期、创建人、修改日期、修改人 等信息。


2.3.4  表T_BD_SERIALBILLTRACE(序列号跟踪)此表与即时库存密切相关,下图中以物料1sn,机加原材料仓库中的即时库存,在表T_BD_SERIALBILLTRACE中的数据为例进行说明(先其他入库,再通过直接调拨单到这个仓库)

image.webp

图7


image.webp

图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')

image.webp

图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,待入库状态,此时序列号仍绑定原来的即时库存,在即时库存中能查到,但这个序列号在调拨单审核前,不能在出库单上被选到

image.webp

图10


如下图,注意这种调拨单保存后未审核,待入库状态的,表T_BD_SERIALBILLTRACE中同一序列号,对应最大跟踪表内码 FBILLTRACEID的一行中FINVID值为空,FSTATE=0,此时即时库存绑定的是FINVID值不为空的一行中的即时库存IDimage.webp

图11


如果是出库单未审核,序列号状态显示为待出库,此时即时库存绑定的是FINVID值不为空的一行中的即时库存ID。此序列号能在即时库存中查到,但不能在出库单上选到。

image.webp

                                                      图12

其他出库单保存后未审核,待出库状态的,表T_BD_SERIALBILLTRACE中同一序列号,对应最大跟踪表内码 FBILLTRACEID的一行中FINVID值为空,FSTATE=2,数据库中的数据如下:

image.webp

图13


2.3.5 表T_BD_SERIALBILLTRACE_E (序列号跟踪附属信息表) 对应T_BD_SERIALBILLTRACE的行,用于显示单据编号和单据日期。(如果T_BD_SERIALBILLTRACE_E显示的单据编号与表T_BD_SERIALBILLTRACE不匹配,双击单据编号时会按T_BD_SERIALBILLTRACE表的单据类型内码、单据内码打开对应单据,而不是界面上显示的单据编号)

image.webp

图14


以上是序列号在库存管理系统中的数据结构的说明,希望对读者能有一定的帮助。

限于作者的水平,文中可能存在错漏,欢迎读者批评指正。


写的非常详细。多谢分享


写的非常详细,赞!!!



写的非常详细,赞!!!

序列号在库存管理系统中的数据结构说明

本文对金蝶云星空产品中的序列号在库存管理系统中的数据结构 做一个简明扼要的说明(本文中涉及到SQL脚本,在MS SQL SERVER环境下调试...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息