0 引言
订单驱动的中小型制造企业之间的竞争的主要目标就是获取订单,但是接到订单对于本企业的整个供应链来说只是一个开始,所有的后续生产工作都是围绕订单为主线来展开,其大致过程如下:企业在接到订单后就要根据订单上所列出的客户所需要的产品明细和数量,并参照产品的物料清单(bill of material,BOM)来决定需要生产和采购哪些零配件和部件,再结合产品和零部件库存数量就可以确定每个零部件需要生产或是采购多少个。所以BOM是中小型制造企业生产过程的基础,由于ERP软件所实现的也正是这样的一个生产管理过程,所以BOM也就成为制造企业实施ERP的基础数据之一。BOM 表达的是每一个产品由哪些零部件组成,每一个部件是由哪些零部件组成。由此可以知道,BOM的表达是一个递归的过程,如果要明确地想知道每一个产品是由哪些零配件组成,就要将BOM逐层展开,直到最下层的全部是零配件,没有部件为止,这样整个产品的树状结构就完全显现出来。
作者在为广东省某卫浴企业以JSP为技术手段开发浏览器/Web服务器/数据库服务器(B/W/D)3层结构ERP的过程中,实现了在JSP客户端网页上BOM的逐层显示与隐藏,使BOM的编辑与查询非常直观方便。
1 BOM信息的结构
BOM表达的是产品与零部件之间的关系,具体内容包括一个产品是由哪几个零件或是部件组成,每个零部件又在这个产品中需要几个。而在实际应用中,还要根据工厂的具体情况加上这个零件或是部件的加工方式(生产/外购)信息和备注信息。由于产品和配件都有可能有重复的名字,所以对产品和配件都进行了编号,具体每个产品和配件的其它信息要到产品表和配件表中进行查询得到。所以,整个BOM表的实体属性图及其与产品表与配件表的关系如图1所示。

由于最终显示到浏览器上的BOM信息是由BOM表、产品表和配件表中联合查到的,所以在显示BOM信息之前,要将BOM信息、产品信息和配件信息统一到一个数据结构中,这一数据结构包括的具体字段为:零部件编号、零件/部件、零部件数目、生产/外购、零部件类型、零部件名称、规格型号。在每一条记录中还要记载有没下一级BOM信息,所以还要有一个“是否有下一级”的信息。由于BOM是一种树状结构的数据结构,所以还要明确知道每一条记录属于哪一级,所以还要有一个“属于哪一级”的信息。整体结构如图2所示。
