K3元数据描述
K3的元数据大致上可以分为基础资料,单据和单据转换关系三类.
备注:此处以基础资料,单据为例。
t_TableDescription表记录所有的表的中文含义
t_FieldDescription表记录所有关联字段的中文解释,其中的FTableID字段外键连接到t_TableDescription.在工业单据和Bos单据中添加的字段,一般均会在这里有对应的记录(字段可能不全面,图1)
基础资料
核算项目
核算项目是K3 中比较基础的一类基础资料。之所以称为核算项目,我想原因大概是因为总账系统中的科目需要挂辅助核算,因此最终就把这类相关的资料称为核算项目了。因此如果希望某类资料类别可以在总账系统中挂在科目上做辅助核算,那么就必须定义成核算项目。K3的核算项目是可以新增类别的,而每个类别又可以自定义一些新的字段,唯一麻烦的是其字段名不能自己在前台定义。
K3的核算项目的相关元数据主要涉及以下几个表:
t_itemclass:核算项目的类别表,记录了所有的核算项目类别及相关的信息,其中最重要的是核算项目的明细表.
t_itempropdesc:核算项目的字段列表,记录了每种核算项目的相关字段,及字段的类型,以及Lookup关系,K3的核算项目基础资料界面根据这个表组织界面(下图2)。
t_item:这个表是所有的核算项目记录的明细表。这个表只记录一个编码的内码、编码和名称。其他的信息是不记录的,因为各核算项目类别所需要记录的信息不一样。另外一个是这个表记录了父编码,而各核算项目的子明细表只记录最末级的明细记录。也就是说父编码对于用户来说,只要有个编码和名称就够了,起个分类的作用,详细信息没有意义
备注:t_item表的字段不能增加,相关的明细表是可以增加字段的。这不难理解,因为t_item表用于记录更加抽象的数据,而相应基础资料明细表则记录更加明细的数据。
此处用客户表(t_Organization)作为演示(下图3)。
(图2)
(图3)
辅助资料
在K3中,辅助资料类似于软件开发中的枚举类型,一般如果一项基础资料项目数不多,也不会大量增长,也不需要额外定义一些字段记录其相关联的数据,那么就可以将这种基础资料定义成辅助资料。
K3系统预定义了许多辅助资料类别,甚至有些类别没有类别记录,但有明细记录.
辅助资料的类别表是t_SubMesType
辅助资料的明细表是t_SubMessage
备注:两个表通过FTypeID字段联接,基本上新增一个类别和明细,就只会涉及这两个表。K3的辅助资料,其内码是不会重复的,但可能和核算项目或Bos基础资料的内码重复。
图片说明:
Bos基础资料
Bos基础资料的做法和核算项目相当类似。数据用两个表存储,其中一个可以称为是主表,主要记录分组信息和明细信息,但明细信息记录不全。明细表则主要记录明细数据的各字段的值。
按标准的逻辑,所有的Bos基础资料的主表,表结构都是一致的,
分表可以有自己的逻辑。也就是说,新建的Bos资料,你加上去的任何字段,都会放入表体.
而编码则按用点来分级别。
Bos基础资料的描述与Bos单据相同,请参照Bos单据的描述。
备注:具体资料表在Bos单据模块说明。
其他资料
主要是科目,计量单位等一类数据。
特殊资料
特殊资料是指那些在单据中使用的,类别为负数的那一类资料。这类资料只在老单据中使用。
这类资料本身是以单据的形式录入的,但却被当成基础资料处理,主要是:
Bom表
工艺路线
生产任务单
单据
工业单据
此类单据的数据存储一般分为主表和明细表。当然也有那么一两个单据只有表头,没有表体。因此系统设计了两个表用于描述这两个表的相关字段。
ICTemplate用于记录单据的表头字段的详细情况。
ICTemplateEntry用于记录单据表体字段的详细情况。
ICTransactionType:工业单据类型描述表。
ICListTemplate: 序时薄模板
K3有个设计规则,只要是子表,其表名一般都会有个Entry的后缀。
图片说明:
Bos单据
Bos类单据是目前K3未来的方向,比工业单据要灵活,做开发也很方便。
icClassType基础资料的类别信息表(如:图6)
icClassTypeEntry记录一个单据有多少个子表体(这和工业单据不同,工业单据最多有一个表体) (如:图6)。
icClassTableInfo 所有(表头表体)字段信息记录表(如:图7)
ICClassActionList 动作设置(事件)记录表(如:图7)
Bos单据的每个字段都有三类事件可以引发:
单据加载时的处理事件,用于单据显示前的预处理
字段值被编辑后产生的值更新事件,用于响应用户的各类界面操作
单据被保存前的单据校验事件
图片说明:
(图6)
(图7)
推荐阅读