ERP环境下物料清单的数据结构研究[转]

物料清单(Bill of Material,BOM)是贯穿于产品整个生命周期,并且是制造企业内最活跃的信息之一。BOM在企业的生产管理过程中具有不同的应用和表现形式,在制造企业的信息流程中跨越多个应用系统,是现实企业信息化的关键。BOM是组织产品数据的重要形式,是ERP,PDM,CIMS等企业信息化系统中的核心数据。

    为优化ERP系统的性能,提高系统运行的效率,从数据结构的角度研究BOM的构造与算法,对ERP的开发与设计有着实际意义。目前,国内外研究较多的停留在传统BOM构造形式的功能、应用与表示方面,对于传统BOM构造形式的改进研究较少。本文研究了单层与多层两种常见的BOM构造方法和分解算法,并在此基础上提出了一种既能保证基本信息的质量,又能满足ERP系统运行效率的复合式BOM数据结构。

1 ERP环境下物料清单数据结构的应用

    物料清单是产品结构的报表形式,是在产品结构的基础上建立的,它不仅说明了产品结构上下层级的从属关系,而且说明了需用的时间关系。它既是连接CAD/CAPP到ERP必不可少的纽带,也是PDM和ERP两大信息平台的交汇点,在ERP系统中起着非常重要的作用,如图1所示。


图1 BOM与其他数据的关系


    物料清单是ERP系统中的基础数据,各个部门的活动几乎都要用到物料清单。生产部门要根据物料清单生产产品;库房要根据物料清单进行发料;财会部门要根据物料清单计算成本;销售和订单录入部门要通过物料清单确定客户定制产品的构成;维修服务部门要通过物料清单了解需要什么备件;质量控制部门要根据物料清单保证产品正确地生产;计划部门要根据物料清单来计划物料和能力的需求。

    如何合理地设计产品数据结构——BOM结构,不仅决定了BOM数据的一致性和完整性,而且将直接影响产品结构树分解速度的快慢。BOM的数据结构及算法构成了ERP系统数据模型的核心,其数据结构的设计直接影响到ERP系统实施和运行的多个方面,包括基础数据的准备、数据质量、数据维护、BOM分解算法的速度等。

2 单层物料清单数据结构

    2.1 单层BOM的结构分析

    单层BOM结构采用“单父-单子”的数据结构,记录了各父件和子件之阔的对应关系。以图2中的产品A为例,其BOM的结构表达如表1所示。


图2 产品A续构

表1 产品A的单层BOM表的数据库记录


    2.2 单层BOM的特点分析

    单层BOM数据结构的最大特点在于它对于每种相同的层次隶属结构只定义一次,逻辑关系强,适应性好。这既可以较大幅度的节约数据的存储空间,数据冗余小,又便于维护,变更操作简单。当某个部件的配置发生变更时,其它引用该部件的地方也随之更改,避免了繁琐的重复劳动。

    单层BOM的父件可能是一个产品,也可能是一个部件,它是与产品无关的基本零部件结构的配置,具有产品无关性的特征。当某个零件或部件被某个产品引用时,单层BOM中的零部件及所关联的属性信息才与具体的产品发生联系。基于单层BOM的管理思想,可将企业设计成熟的零部件按单层BOM方式构造成基本零部件库,作为产品配置设计的基础。由此可配置出基于共用件管理模式的产品配置,把过去以产品为对象的BOM人工管理方式提升为以零部件为核心的BOM管理方式,配合零部件独立编码的使用,避免借用件在产品BOM中出现,解决了长期以来产品BOM人工管理中对借用件管理的混乱状况。

    单层BOM在描述零部件的配置关系时,只记录了父项与子项之间的隶属关系,不能完整地描述一个产品的零部件配置结构。在实际工作中,单层BOM数据结构的使用增加了保证准确性的难度。如果由于疏忽,错误定义了某个部件,则所有和这个部件有关的产品结构都会出错。

3 多层物料清单数据结构

    3.1 多层BOM的结构分析

    多层BOM采用“单父-多子”的数据结构,它详细记录了产品的结构信息,即便是同样的零部件结均,必要存在于不同的产品中,也要再记录一次。以图2中的产品A为例,其BOM表的表示结果如表2所示。


表2 产品A的多层BOM表的数据库记录


    3.2 多层BOM的特点分析

    多层BOM有以下优点:

    1)能精确描述一个产品的零部件组成及用量;
    2)产品间结构不互相影响,各个产品之间的数据记录没有交叉,因而维护比较方便;
    3)分解时算法简单,只要根据产品名称查询出最底层子件的名称和数目即可,效率较高。

    多层BOM存在的主要缺点如下:

    1)数据冗余大。比如定义产品A需要有9条记录,而采用单层BOM结构只需要7条记录,零部件结构的重复定义,增加了系统启动时录入基础数据的工作量;
    2)BOM配置时,产品结构变换的互动性差;
    3)虽然定义了子件的层次关系,但是并没有记录它属于哪一个父层,因此,不能反查出某零部件的上一层父件,只能查出它属于哪个产品,无法清晰地显示产品的树型结构。

原文地址:https://www.cnblogs.com/ddlzq/p/1686626.html