取消
搜索历史
热搜词
原创
活动
产业创新
转型理念
ENI专访
当前位置:首页 >文章发布 > 正文
中小企业ERP中BOMDWS系统的设计研究
来源:  : 2013-03-21 15:42:34
它的组织是否有效直接关系到企业资源计划系统的性能。对BOM的数据、BOM的特性、BOM的结构研究和分析表明,ERP系统中BOM的有效管理是一项非常重要和困难的工作。现有的BOM管理方式,是在各业务部门的事务处理系统中进行管理和组织,且已有BOM管理体系基本都是基于事务性系统构建。

   企业资源计划(Enterprise Resource Planning,ERP)系统是在早期的物料需求(Material Requirement Planning,MRP)和制造资源计划系统(MRPII)基础上发展而来的。企业资源计划系统是一种以生产经营、计划管理为主线,辅以CAD/CAM,Internet,GUI和EDI功能的当代企业管理方法,它代表了当代最先进的企业经营生产管理模式与技术。物料清单(Bill of Material,BOM)是ERP系统的重要基础数据,它的组织是否有效直接关系到企业资源计划系统的性能。

 物料清单BOM是ERP系统的重要基础数据,它产生于产品设计部门,生命周期的各个形态贯穿于各个部门。BOM作用于计算机识别物料、接受客户定单、编制计划、配套(装配)和领料、加工过程跟踪、采购和外协、成本计算、报价参考、物料追溯、改进产品设计等等。它的组织是否有效直接关系到企业资源计划系统的性能。对BOM的数据、BOM的特性、BOM的结构研究和分析表明,ERP系统中BOM的有效管理是一项非常重要和困难的工作。现有的BOM管理方式,是在各业务部门的事务处理系统中进行管理和组织,且已有BOM管理体系基本都是基于事务性系统构建。这样做不利于解决上述BOM管理中的难点,主要存在以下缺陷和不足:

 首先,由于各项应用处理的分散性,存在着数据信息相互独立的缺陷和不足,从而易形成各个信息孤岛。很显然,这样的信息孤岛将导致企业数据无法有效地支持决策和统计分析,而且,会引起企业中BOM数据不一致的问题。其次,企业用户对原始业务数据库中的数据的抽取,如不加以控制,制定统一标准,只是按需抽取,将会使系统数据间形成错综复杂的网状结构——蜘蛛网问题。再者,从BOM数据的使用者角度考虑。在企业中,针对各级用户,BOM数据的综合程度要求不同。而传统的基于数据库组织的BOM数据,只是一些实时数据,即使有一些汇总数据也是未经过专门性统计和汇总的数据,当使用者需要或作计划时才进行加工处理。然而一个企业中日积月累的BOM数据量非常庞大,这样做,没有把分析型数据从事务操作中分离出来,将影响系统运行效率。

 数据仓库技术为在BOM系统中建立这种决策分析环境提供了一种有效的数据存储和组织方式。数据仓库概念的形成是被誉为数据仓库之父的w.H.Inmon在1993年于《建立数据仓库》(Building the Data Warehouse)一书中正式提出的,他对数据仓库作了这样的定义:数据仓库(Data Warehouse,DW)是90年代信息构架的新焦点,它提供集成化和历史化的数据;集成种类不同的应用系统;数据仓库从事物发展和历史的角度来组织和存储数据,以供信息化和分析处理之用,是面向主题的、集成的、稳定的、随时间变化的数据集合,用以支持管理决策的过程。数据仓库不是数据的简单堆积,而是从大量的事务型数据库中抽取数据,并将其清理、检验、加工和重新组织为新的存储格式,以满足决策目标。用户可以按不同的决策主题对已有数据库进行分类、综合与存储,并采用数据挖掘(DM技术和联机分析(0LAP)技术对决策中所需的数据进行深层挖掘与分析,在已建立的各类数据库的基础上构造数据仓库。

 1 BOM数据仓库的体系结构

 BOM数据仓库系统(BOM Data Warehouse System,BOMDWS)对原BOM管理系统的数据集成抽取,进行不同程度的综合,为OLAP提供支持。它可分为四层:基础数据层、当前详细数据层(全局数据仓库)、综合数据层(数据集市)、客户层。这四层相互作用,共同构成BOM管理系统的事务处理和决策分析处理。

 基础数据层该层主要是基于事务处理,即各原始的数据库,包含基础的物料数据和大量的产品设计BOM数据,是其他各层的数据来源。

 详细数据层包括当前详细数据和历史详细数据,数据从基础层的数据库中析取和集成后直接导人该层。该层主要进行采集、清理、转换、集成、装载等操作,使得原始操作型数据转变为集成的、一致的数据。该层存储的主要是大量的细节数据,支持数据的细节查询,是BOMDWS的核心数据层。

 综合数据层各业务部门可根据业务需求,在全局级DW的基础上,抽取适合自己所用的数据并进行综合处理后存人部门级数据仓库。该层数据用多维模型组织,以支持部门级多维分析。其数据是全局级数据仓库的汇总数据,面向各部门管理者,以支持决策。

 客户层该层提供用户接口,用户在这一层上进行OLAP操作,并生成各种报表。

 从BOM数据仓库体系结构可以看出,数据从基础层进入全局数据仓库,而后导入部门数据集市,解决了信息孤岛和蜘蛛网问题,更有效的维护了数据的一致性。由于在BOM全局数据仓库基础上建立了部门数据集市,因此使得有效的生成和管理BOM的多视图成为可能,本文在这方面做了初步的探索;由于部门数据集市采用多维模型组织数据,因此可以对部门级的数据进行多维分析,以支持决策。

 2 数据仓库的生成接口

 数据仓库的生成所要做的工作主要是接口编程和数据的装入。

 2.1 设计接口

 生成数据仓库的主要任务是向产品使用外购件、外协件、自制件的信息(product_use)和零部件的用量信息(part_use)这两个表里导人数据。遍历产品设计BOM的每个零部件节点,统计每个零部件的用量,一种零部件被该产品用到,useflag数据即为1,作为统计零部件被使用频率细节数据,汇总每个产品使用外购件、外协件、自制件的数量。通过编写触发器和存储过程实现数据的导人。

 2.2数据的装入

 运行接口程序,确定数据装载次序,先导入part_use数据,接着从part_use中进一步统计数据导入product_use。数据仓库的数据需要不断从原系统不断追加,下面是BOM数据仓库的数据追加策略:

 创建两个表hasimported和notimport,这两个表结构相同只有一个字段,记录产品编号(product_key)。

 运行数据导入接口程序时,读取notimport表里的记录,装载对应产品的数据,同时把产品的产品编号移人hasimported表中;若notimport里无记录,则表示没有产品数据需要追加。

 在原系统中执行保存产品的设计BOM时,查看该产品的产品编号是否存在于hasimported,若存在,表示不能修改产品的设计BOM,因为该产品的数据已经被导人数据仓库不能再被修改;若不存在,表示该产品的设计BOM还没有被导人数据仓库,可以修改并保存,保存的同时,把该产品的产品编号写入notimport表中。

 这样,在进行数据仓库的数据追加时,只需要读取notimport表中的记录,导入对应的产品数据即可。

 3 BOM数据仓库管理系统的实现

 3.1 BOM数据仓库管理系统的开发环境

 系统的开发平台是Jbuitder 9.0,数据库服务器采用Oracle9i,应用服务器采用Weblogie 8.1。系统采用Java语言实现,系统中大量的Applet,JSP,Servlet还有JavaBean,EJB,均在Jbuilder上开发完成。Oracle9i数据库服务器强有力的支持Java,Java通过JDBC连接Oracle,比连接SQL Server表现出来的性能要好,而且Oracle支持对象类型,这给数据表的建立提供了更多的选择,在系统的标设计中就用到了嵌入表,在存储过程的设计中,也用到了自定义对象类型和对象数组。另外,为了辅助开发,借助PLSQL Developer和jfreechart。PLSQL Developer是用来开发PL/SQL程序,它不仅可以编辑PL/SQL代码,还可以进行语法检查和跟踪调试,大大弥补了Oracle在这方面的缺点,而且PLSQL Developer还可以作为Oracle客户端工具使用;jfreechart是一个开源项目,它可以方便地加人Jbuilder开发环境,运行在应用服务器上,方便地生成柱状图和饼图等多种报表。

 3.2 BOM数据仓库管理系统的设计实现

 采用J2EE三层模型设计BOM数据仓库管理系统总体结构可以简化应用程序的开发,自由选择J2EE应用服务器,开发代价低,易管理,而且可移植可跨平台,不限于特定的操作系统和特定的应用服务器。这是其他体系结构无法比拟的。系统的详细设计主要包括数据库中表和函数、存储过程、触发器的设计、服务器端组件的设计,还有浏览器端Applet的设计实现。数据库端的设计主要是表的设计、存储过程和触发器的开发。存储过程和触发器直接在数据库服务器上运算,减少服务端与客户端的交互,效率更高,可以充分发挥大型数据库的优势,尤其在基于Web的应用系统中,更应把和数据密切的操作封装在数据库服务器端,减少和服务器端的交互不仅可以提高效率,更能提高安全性,也遵循了低耦合高内聚的设计原则;在针对数据库编程时,很多复杂的对数据记录的操作被封装在存储过程里,也大大简化了编程的复杂度,易于开发和维护。在系统的实现中,对BOM的遍历以及零部件的统计都在存储过程和函数里完成,数据库端用到了三个存储过程和一个自定义函数,还用到了两个触发器,用来对数据进行自动分类。

 服务器端的设计主要是JavaBean,Servlet,EJB,JSP的设计。

 服务器端有两个JavaBean,DBConnection负责取得连接数据库的数据源DataSource的一个实例,ChartBean里调用jfreechart组件从外部取得数据集生成报表图片并输出图片的文件名。

 在服务器端开发了很多Servlet,结构和功能都相同,向上和Applet交换数据,向下和数据库交换数据。

 JSP主要用来实现对数据的统计分析,并把统计的数据传给ChartBean,在浏览器里先是ChartBean生成的报表图片,另外也实现对物料数据的查询。

 浏览器端的设计主要是Ajax和Applet的设计。通过Ajax在浏览器和Web服务器之间使用异步数据传输,Applet可以提供复杂的交互功能,它和Servlet的数据交互是关键技术,和Servlet的设计类似,也包括发送和接收数据。

编辑:phpcms
关键词: 中小企业  BOMDWS  设计研究 
活动 直播间  | CIO智行社

分享到微信 ×

打开微信,点击底部的“发现”,
使用“扫一扫”即可将网页分享至朋友圈。