ERP中的产品不仅是物料,它同时还是一个装配件,通过BOM表达它的装配结构。
第四章装配
4.1装配(assembly)与子装配(sub-assembly)
ERP中的产品不仅是物料,它同时还是一个装配件,通过BOM表达它的装配结构。
一个装配件由若干个子装配件组成。
比如一台PC,包含的子装配件有主板、CPU、显卡、硬盘、显示器等,其BOM的结构如图4-1:

这个结构表示一台PC由1件主板、1件CPU、1件显卡、2件硬盘、1件显示器、1件机箱组成。这种结构可以看成PC这种产品的一个属性。在MES系统中,这种结构通过产品工艺路线的若干个工位体现,如图4-2:

图4-2表示PC的装配工艺共分散在4个工位中。
为了记录产品与其子装配之间的关系,我们需要将产品的序列号与子装配的序列号进行关联。具体的操作如表4-3:

关联完成之后,MES数据库里就保留了产品与其装配件之间序列号的关联关系,如图4-4:

从技术的角度而言,有两种方法记录序列号的关联关系。第一种方法是在数据库里保存产品的结构,然后各相关序列号指向这种结构。
第二种方法是直接记录各序列号之间的关联关系,形成一棵“树”。比较而言,第一种方法方便形成批量数据关联关系的报表,而第二种方法隔离了序列号数据与产品结构,所以产品的结构变了也不会影响历史数据。
我们更倾向于采用第二种方法,因为这对于后面要说到的序列号关联替换、注销等操作更为方便。
4.2序列号关联表的设计
考虑到关联的结构,用父-子节点来定义树状结构是非常方便的,效率也比较高。如图4-5所示的结构:


ID字段是序列号所在的节点,SN是序列号,father_id是序列号的父节点,如为负数则表示此父节点并没有对应的序列号存在,也就是说此SN是该节点数上的根节点,为方便,我们称负数的节点为虚节点。
4.3新增序列号关联
按照节点的设计,任何一次关联动作可以看成把某一节点设置为另一节点的父节点,为方便叙述,我们统一称为把SN1的节点设置为SN2的父节点,或者把SN2关联到SN1上。
新增序列号关联的方法为:更新序列号关联表,设置SN2的父节点等于SN1的节点。
为避免逻辑上的混乱,我们在关联之前必须进行检查,规则为:
1)SN2的父节点必须为虚节点,也就是说SN2是根节点,这样做是为了保证任何一个SN只能有一个父节点。
2)SN2的父节点不能是SN1所在树上的根节点。
例如,将2221关联到1116上,如图4-7

则222......More↓↓↓