产品BOM管理与基于BOM的物料计算 - Pascal的专栏 - CSDNBlog

来源:百度文库 编辑:神马文学网 时间:2024/04/18 19:27:44
企业资源计划ERP及应用》课程设计1产品BOM管理与基于BOM的物料计算 一、           引言 本设计为《企业资源计划ERP及应用》的课程设计——产品BOM管理与基于BOM的物料计算。BOM是MRP II中相当关键的基础数据,它是物料需求系统的主要输入之一。因此本设计注重于对EPR中关键技术及术语的理解,采用的例子也比较简单,为参考教材中的例子(教材《MRPII/ERP原理与应用》中:6.3 物料清单表6-1 一副眼镜的BOM的例子)。本设计采用B/S结构,基于JAVA语言及相关技术。 二、设计中用到MRPII/ERP原理及关键术语 2.1 物料清单(BOM)   物料清单(Bill of Material,BOM)是指产品所需零部件明细一及其结构。在MRP II中,物料一词有着广泛的含义,它是所有产品、半成品、在制品、原材料、毛坯、协作件、易耗品等等与生产有关的物料的统称。采用计算机辅助企业生产管理,首先要使计算机能够“读出”企业所制造的产品构成和所有要涉及到的物料,为了便于计算机识别,必须把用图示表达的产品结构转化成某种数据格式,这种以数据格式来描述产品结构的文件就是物料清单,即BOM。    为了便于计算机管理和处理的方便,BOM必须具有某种合理的组织形式,而且为了便于在不贩场合下使用BOM,BOM还应有多种组织形式或格式。    BOM是MRP II系统中最重要的基础数据,其组织格式设计的合理与否直接影响到系统的处理性能,因此,根据实际的使用环境,灵活地设计合理且有效的BOM是十分重要的。    BOM不仅是MRP重要的输入数据,而且是财务部门核算成本、制造部门组织生产等的重要依据,因此,BOM的影响面最大,对它的准确性要求也最高。采取有力措施,正确地使用与维护BOM是系统运行期间十分重要的工作,必须引起足够的重视。    此外,BOM还是CIMS/MIS与CAD、CAPP等子系统的重要接口,是系统集成的关键之处,因此,用计算机软件实现BOM管理时,应充分考虑它与其它子系统的信息交换问题。在此设计中主要涉及BOM的格式、设计及使用与维护等有关问题。   2.2 BOM的格式    BOM主要有以下几种格式:    •单级型BOM    •多级型BOM    •综合型BOM    •单级反查表•多级反查表•末项反查表    (1)单级型BOM    单级型BOM是BOM的一种最基本的形式,它表达了产品结构的某一层,可以反映如下信息:    •父项的零部件清单    •每一零部件的标识符    •每个零部件的简单描述    •生产父项所必须的各种零件数量    •储存和发放零部件的计量单位    (2)多级型BOM    多级型BOM可以看成是一串单级BOM按照装配关系的相互连接,在我级型BOM中,可以反映出下列信息:   •单级BOM所反映的全部信息   •构成产品所需零部件的装配关系   •构成产品的层次代码    (3)综合型BOM   综合型BOM反映了产品的的全部零件清单,而并不考虑各零部件之间的结构关系,各零部件仅出现一次。综合型BOM主要用于采购部门。 (4)单级反查表   单级反查表常用于确定一个装配件变化时,哪些物料单受影响,计划人员可以用单级反查表来辩识由于组件推迟交货或损坏而受影响的装配件。   (5)多级反查表     多级反查表向上扫描产品结构的每一层,一直到末项。       (6)末项反查表       又称追踪格式。它仅仅列出使用某个零件的那些末项。    2.3  BOM的使用   在任何制造环境中,不同的部门和系统都为不贩的目的使用BOM,每个部门和系统都从BOM中获取特定的数据。主要的BOM用户有:设计部门、工艺总门、生产部门、产品成本核算部门、物料需求计划(MRP)系统。(1)   设计部门    设计部门既是BOM的设计者,又是BOM的使用者。就使用而言,无论何时,当产品结构发生变化或绎某个零7部件进行重新设计,该部门都要从BOM中获取所有零部件的信息及其个互间的结构信息,只有得到这些信息,才能对其进行定义、描述或修改。(2)   工艺部门工艺部门根据BOM信息建立各零件的制造工艺和装配件的装配工艺并确定加工制造过程中应使用的工装、模具等。(3)   生产部门生产部门使用BOM来决定零部件或最终产品的制造方法,决定领取的物料清单等。(4)   产品成本核算部门该部门利用BOM中每个自制件或外购件的当前成本来确定最终产品的成本。(5)   物料需求计划(MRP)系统BOM是MRP的主要输入信息之一,它利用BOM决定生产主生产计划项目时,需要哪些自制件和外购件,需要多少,何时需要。 2.4 BOM的构造前面已经提到,BOM是系统中最重要的基础数据,它几乎与企业中的所有职能部门都有关系,BOM构造的好坏,直接影响到系统的处理性能和使用效果。因此,根据实际环境,灵活地构造BOM是十分关键的。就一长般情况而言,构造BOM应注判决书以下几方面:(1)   在BOM中,每一个项目(零部件)必须有一个唯一的编码。对于同一个项目,不管它出现在哪些产品中,都必须具有相同的编码。对于相似的项目,不客它们的差别有多么微小,也必须使用不同的编码。(2)   为了管理上的方便,有时可以将同一零件的几中不状态视为几个不同的项目,构造在产品的BOM中。(3)   BOM中零件、部件的层次关系一定要反映实际装配过程,在实际装配中,有并不不定把某些零件装配成某个有名称的组件,或者由于工艺上的考虑需要将某些零件旭在一起加工(例如箱子与箱盖),形成临时组件,但这些组件在产品的零部件明细表和装配图上并没有反映出来,但必须在计划管理中反映出来,这就需要在BOM中设置一种物理上并不存在的项目,通常称之为“虚拟件”或“虚单”。构造虚拟件有时还出于以下目的:   •简化MRP的编制过程。   •养活零部件之间的影响。(4)   根据生产实际情况,有时为了强化某些工装、模具的准备工作,还可以将这些工具构造在BOM中。这样就可以将一些重要的生产准备工作纳入计划中来。有时为了控制某袋子上重要的零件在加工过程中的某些重要五环节,比如,进行质量检测等,还查将同一个零件不同加工状态视为不同的件,构造在BOM中。总之,构造BOM是非常灵活的,主要取决于构造者的实际管理经验。(5)   为了满足淡同部门获取零部件的不同信息,可以灵活地设计BOM中每个项目的属性。例如计划方面的、成本方面的、库存方面的,订单方面的等等。 2.5 BOM的维护BOM是任何管理系统中基础的基础,如果没有BOM,就无法制造同样的产品,为:(1)   不准确BOM造成的影响•一些项目为BOM造成的影响• BOM中列入了一些不必要的项目,导致零部个过多储备•由于缺件的数量过多,导致制造的低效率。•订单不能按期交货•质量低劣•计划缺管可信性•不正确的产品库存(2)     BOM中发生错误的环节•工程部门产生BOM时•为BOM准备数据时• BOM数据录入时(3)   正确维护BOM的方法•指定专人负责维护BOM•经常监测BOM——检查项目数量及其生效日期•对工程改变进行分类:* 危急性改变——立即完成。例如,产品不能实现其功能,或不利于安全时* 紧急性改变——迅速完成。工程部门设置一个合理日期来完成改变* 常规改变——从经济实用角度要求变化时再完成。•通知要进行的工程改变•实施工程改变 三、           系统概要设计 如引言中提及,本设计采用的例子为参考教材中一副眼镜的BOM例子(教材《MRPII/ERP原理与应用》中:6.3 物料清单)。 眼镜的产品结构树如下(共分三层):

眼镜 LT=1 镜框(1) LT=2 镜片(2) LT=2 螺钉(2) LT=1 镜架(1) LT=1 镜腿(2) LT=1 鼻托(2) LT=1 螺钉(4) LT=1  

 产品结构树从视觉上比较直观的反映了产品结构,物料清单BOM是以一种特殊的方式将产品结构存在计算机中。一个BOM文件至少应包括3个数据处理项:标识代码、需求量(单位父项所需该子项的数量)、层次码(该项目在结构表中相对于最终项目的位置)。除此以外,BOM中还可以包括子项说明、单位等。 下表为一副眼镜的BOM: 
产品零件号:#20000—眼镜    层次 0 零件号 描述 装配数量 单位 层次 20100 镜框 1 个 1 .20110 镜架 1 个 2 .20120 镜腿 2 个 2 .20130 鼻托 2 个 2 .20099 螺钉 4 个 2 20300 镜片 2 个 1 20099 螺钉 2 个 1  本设计采用MVC架构,其简单原理简述如下。MVC(Model-View-Controller)应用程序结构被用来分析分布式应用程序的特征。这种抽象结构能有助于将应用程序分割成若干逻辑部件,使程序设计变得更加容易。MVC 结构提供了一种按功能对各种对象进行分割的方法(这些对象是用来维护和表现数据的),其目的是为了将各对象间的耦合程度减至最小。MVC结构本来是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的。但是,将这些概念运用于基于 Web的企业级多层应用领域也是很适合的。在MVC结构中,模型(Model)代表应用程序的数据(data)和用于控制访问和修改这些数据的业务规则(business rule)。通常模型被用来作为对现实世界中一个处理过程的软件近似,当定义一个模型时,可以采用一般的简单的建模技术。这一层主要处理底层BOM数据的存储。当模型发生改变时,它会通知视(View),并且为视提供查询模型相关状态的能力。同时,它也为控制器(Controller)提供访问封装在模型内部的应用程序功能的能力。一个视(View)用来组织模型的内容。它从模型那里获得数据并指定这些数据如何表现。当模型变化时,视负责维持数据表现的一致性。视同时将用户要求告知控制器(Controller)。主要来实现单级BOM查询、多级BOM查询、单级BOM反查、多级BOM反查、末项反查等界面功能。控制器(Controller)定义了应用程序的行为;它负责对来自视的用户要求进行解释,并把这些要求映射成相应的行为,这些行为由模型负责实现。在独立运行的GUI客户端,用户要求可能是一些鼠标单击或是菜单选择操作。在一个Web应用程序中,它们的表现形式可能是一些来自客户端的GET或POST的 HTTP请求。模型所实现的行为包括处理业务和修改模型的状态。根据用户要求和模型行为的结果,控制器选择一个视作为对用户请求的应答。通常一组相关功能集对应一个控制器。主要实现BOM结构(三层结构)的维护,实现基于BOM的物料计算。 下图描述了一个MVC应用程序中模型、视、控制器三部分的关系: 图中实线表示高耦合的依赖关系,虚线表示低耦合的消息关系。业务模块是不依赖用户界面的,这样就隔离了用户界面的变更对业务程序的影响。用户界面负责收集用户的输入,显示用户需要的数据;控制器负责将用户的请求调用到实际的业务程序,也将业务程序处理的结果回送给用户界面;业务程序具体处理业务操作。同时业务模块可能主动发送消息到用户界面,通知界面显示数据。       总之,本设计底层数据保留BOM的主要数据,由Model层负责与底层的数据交互,View层负责展现各个界面给BOM的使用者,Control层负责完成View层与Model层的交互,实现维护、查询、计算等业务逻辑。本设计的开发环境为Eclipse,应用WEB服务器为Tomcat,底层数据库为MySQL,采用基于MVC框架的Java Web相关技术。具体详见详细设计。 四、           详细设计及实现 4.1 创建模型层 4.2 创建视图层 4.3 创建控制层 4.4        五、           结语 本设计基于ERP中BOM的维护、查询和计算。重点在于对MRPII/ERP课程中概念的理解和运用。   附录:运行程序及源程序,设计规格说明书和使用说明书(可参见本设计)。