物料清单(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)虽然定义了子件的层次关系,但是并没有记录它属于哪一个父层,因此,不能反查出某零部件的上一层父件,只能查出它属于哪个产品,无法清晰地显示产品的树型结构。
4 复合式BOM构造方法
4.1 复合式BOM的结构分析
传统BOM的构造方法有单层BOM和多层BOM,这两种方法各有其局限性。针对单层BOM和多层BOM存在的问题,本文提出一种综合两种BOM构造方法的复合式BOM构造方法来解决系统实际运行过程中数据维护和运行效率之间彼此矛盾的问题,既保证了系统的运行效率,又能够清晰地定义产品的结构树。
BOM作为描述产品结构与配置关系的表单,它主要由本体和从体两部分组成。其中,BOM本体指零部件对象本身的结构关系,而BOM从体是指BOM主体的属性集和与BOM主体相关联的对象集两部分。在关系数据库中,其数据结构如图3所示。
图3 复合式BOM表的数据结构
采用复合式BOM,产品A可用表3来表示。其中,字段“产品子项总数”表示在产品A中各子件的总数量,显然,它只针对产品的最底层零件,对于产品结构树中的中间部件,则表示为空。
表3 产品A的复合式BOM表的数据库记录
4.2 复合式BOM的特点分析
复合式BOM与单层BOM结构相类似,仍然采用“单父一单子”的数据结构,同时在处理逻辑上,采用了多层BOM的构造思想,增加了子件所属产品的描述。
复合式BOM结构对每个产品进行分别定义,相对多层BOM结构数据冗余小,在定义产品A时,多层BOM需要9条记录,复合式BOM仅需要7条记录。对于相同的零部件结构,只要存在于不同的产品结构当中,复合式BOM仍然需要重复记录,因此相对单层结构将占用更多的存储空间。复合式BOM结构确保了产品数据的独立性,克服了单层BOM由于部件错误定义导致所有相关产品结构错误的缺点,保证了产品结构的准确性,便于产品结构的维护。
复合式BOM不仅显示了零部件所属的产品,同时清晰定义了父件与子件的隶属关系,通过递归即可以显示产品的结构树以及每一个零件的归属情况,因此,复合式BOM结构能够清晰定义产品的结构。
复合式BOM结构通过字段“层次”标识零件在产品结构中所属的层次,通过字段“产品子项总数”,标识最底层零件的数目,因此可以方便的查询产品部件及最底层零件。尤其对于产品结构复杂、需要频繁BOM分解的系统而言,复合式BOM将有效解决运行效率这一瓶颈问题。
综上所述,复合式BOM综合了单层BOM和多层BOM的优点,既可以清晰定义和方便维护产品结构,又可以进行快速物料分解,是一种实用性较强的BOM构造方法。
5 结 论
物料清单作为ERP系统的核心数据,其数据结构对ERP系统的运行效率将产生直接影响。传统的BOM单层和多层结构具有其应用的局限性,本文在结合两者特征的基础上,提出了一种实用性强的复合式BOM结构。复合式BOM优化了ERP系统的性能,提高了ERP系统的运行效率。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:ERP环境下物料清单的数据结构研究