收藏 分享(赏)

基于b/s结构的多表层次分解mrp算法.doc

上传人:cjc2202537 文档编号:229177 上传时间:2018-03-24 格式:DOC 页数:13 大小:48.50KB
下载 相关 举报
基于b/s结构的多表层次分解mrp算法.doc_第1页
第1页 / 共13页
基于b/s结构的多表层次分解mrp算法.doc_第2页
第2页 / 共13页
基于b/s结构的多表层次分解mrp算法.doc_第3页
第3页 / 共13页
基于b/s结构的多表层次分解mrp算法.doc_第4页
第4页 / 共13页
基于b/s结构的多表层次分解mrp算法.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、基于 BS 结构的多表层次分解 MRP 算法基于 B/S 结构的多表层次分解 MRP 算法杜涛刘杰李怡文(同济大学经济与管理学院,上海 200092)Email:snoopy8391sina.corn.en摘要现行 ERP 系统的 MRP 运算周期较长,效率不高 .为此文章从首先从数据库设计方面研究了 MRP 算法中的表结构设计;然后针对该问题提出了基于 B/S 结构的多表层次分解的 MRP 算法,并应用实例实现了算法,大大提高了执行效率.关键词 ERPMRP 算法 B,s 结构文章编号 10028331 一(2005)32022004 文献标识码 A 中图分类号 TP301.6MRPAlgo

2、rithmBasedonMulti-tableLayeredDecomposinginaB/SEnvironmentDuTaoLiuJieLiYiwen(SchoolofEconomicsManagement,ToniUniversity,Shanghai200092)Abstract:ThecircleoftheMRPalgorithmisverylongandlowefficiency.Firstly,thispaperanalyzesthetabledesignofMRPalgorithmindatabase;Sec0ndly,itgivestheMRPalgorithmBasedonM

3、ulti-tableLayeredDecomposinginaB/SEnvironmentinaccordancewiththisproblem,andimplementsthisalgorithmbyanexample,greatlyincreasestheexecutiveefficiency.Keywords:ERP,MRPalgorithm,B/SStructure1 问题的提出物料需求计划(MaterialRequirementPlanning.简称 MRP)是根据产品结构的具体特征,将主生产计划具体分解成零部件生产进度计划和原材料,外购件的采购进度计划.确定自制件的投产日期与完工日

4、期以及原材料,外购件的定货采购和人库的日期.发展到今天的 ERP 系统更强调了协同管理的概念.在当前主要以 INTERNET 为主要信息交流平台的时代.采用 C,s 架构技术架构的 ERP 系统已不能满足众多企业用户的需求,采用 B,s 结构正是主流 .B,s 模式的特点在于具有广泛的信息发布能力.客户端只需要普通的浏览器即可.大大节省客户端的硬盘空间和内存,且界面通用,统一,使开发,维护,升级,培训等一系列工作简单化但 B,s 的交互能力有限 ,图形化应用不灵活 .开发数据量比较大的报表比较困难且服务器的负担重.对其性能的要求更高.为此,本文提出了一种 B,S 结构下多表层次分解的高效的MR

5、P 算法,它的意义在于使企业特别是制造型企业在市场不断变化的需求中,迅速做出反应,以满足客户的需要,提高企业的竞争力,同时,作为广义供应链管理的一个环节来说,也是当前提出的打造极速供应链的一个可以改善的环节.2MRP 的计算模型本文采用的是再生式生成 MRP 的方法.这种 MRP 生成后会对库存信息重新计算,同时覆盖原来计算的 MRP 数据,生成的是全新的 MRP.此类 MRP 的生成一般是周期进行的 .如每周运行一次.现行的 ERP 系统大多采用这种方式.因为 ERP的核心仍然是 MRP 运算. 但就目前国内的 MRP 算法研究主要集中在算法的实现上,且普遍应用在处理数据量大,实时要求高的

6、C/S 结构上,传统的 C/S 结构下的 MRP 运算也需要几个小时甚至更长的运行时间.而 B,s 结构的运行速度就更慢了,如何提高算法执行效率成为 ERP 应用在 B,s 结构上的关键2.1 主生产计划(MPs)物料需求计划为的是更有效地实施生产计划大纲.当生产计划大纲决定了企业中每类产品将生产多少.需要多少资源后,就由主生产计划按时间段来计划最终产品的数量和交货期.因此,主生产计划是驱动物料需求计划系统运行的根源,它是 MRP 系统的实际效率与效果所依仗的主要输人.从概念上说,主生产计划是一个企业的生产大纲,其中不仅要反映所要生产的产品计划,也应该包括独立需求预测和外部零部件订货的需求计划

7、.但是在实际应用中,后两项内容通常不包括在主生产计划中,而以数据文件形式直接作为 MRP 系统的单独输人文件.概括的说,编制 MRP 的第一个前提条件是需要一个主生产计划.在此采用的是销售订单生成主生产计划的方法,由于销售计划里订单的数据经常更改,所以我们建立一个用于临时处理主生产计划的表来存储,它在数据库中的设计如表 l(表名为#mrp_mps):.2.2 物料清单(BOM)由于最终产品结构中的各个子件加工周期的不同,即对同一BOM 中的物料需求时间不同,因此.MRP 要根据产品的作者简介:杜涛(1980 一), 男 ,硕士生,主要从事管理信息系统与电子商务研究.刘杰(1963 一 ),男,

8、 教授,博士,博士生导师,主要从事管理信息系统与决策支持系统研究与教学.李怡文,女,博士生,主要从事管理信息系统与企业信息化研究.2202005.32 计算机工程与应用表 1MPS 结构表BOM 对 MPS 进行需求展开.对于制造型企业中生产的单个产品,其结构呈现出一种树状结构,反映出该产品所需的原材料,零件,部件及总装件之间的从属关系,数量和提前期.如图 1 中,产品是由 B,C 构成.又由 D,E,F 构成,括号(LT) 表示此中物料的提前期,箭头线上的数字表示父子之间的数量关系.依此类推,其中不能再分解或处于产品结构树底部的零部件就是需要制造或采购的零部件图 1 产品 A 的树状结构图在

9、数据库中这种产品的树状结构的存储可以采用单层BOM 和矩阵式 BOM.但是矩阵式 BOM 在运算时要借助矩阵代数的分析方法求解,而且一般情况下矩阵的维数比较高,特别是对于这种基于 B,S 的三层架构的系统来说 .影响页面的响应速度.在此采用的是单层 BOM 的存储,它的优点是对每一种父子结构关系只存储一次,从而消除了冗余数据,另外当这些通用件或标准件的结构发生变化时,在数据库中也只用修改一次.以产品 A 为例,它在数据库中的设计如表 2(表名为#mrp born)所示.表 2 产品 BOM 结构表字段名称类型含义产品 A 的 BOM 结构可以在表中表示成下面的这种形式 ,如下表 3 所示.表

10、3A 产品的 BOM 结构表示2-3 库存信息依据物料库存信息确定各个物料的需求量.同主生产计划临时表相类似,它在数据库中的设计是由两个临时表来存储的,一个用于存储物料(原材料)的在途信息,如表 4(#mmatonroad)所示.表 4 物料的在途信息字段名称类型含义一个用于存储物料(包括成品,半成品,原材料)的各种基本信息的,如表 5(#mrp_inv)P).表 5 物料的库存信息字段名称类型含义idVarchar(20)物料代码stfloat 现有库存mdfloat 已分配库存sefloat 安全库存plfloat 批量tqqInt 提前期从主生产计划到 MRP 实际上是属于从粗到细的两个

11、不同计划阶段,细计划产生之后接下去就是计划的执行.如果某产品是需要加工的,就产生一个制造工令,并下加工单到相应的车间班组进行生产:如果是需要采购或托外加工的,就产生相应的采购订单或托外加工单.MRP 原理如图 2 所示.厂_困困3MRP 的计算方法MRP 系统的核心是计算物料需求量 ,MRP 在计算物料需求时要涉及到很多个量:净需求量,毛需求量,已分配量 ,计划接收量,现有库存量,可用库存量,安全库存他们之间的运算公式如下:净需求量=毛需求量 +已分配量一计划接收量一现有库存量;可用库存量=现有库存量一安全库存一已分配数量.此外,由于受到批量和提前期的影响,该净需求的时间和数量还不一定等于需要

12、下达的生产计划和采购计划的数量和时间.举例说明,物料需求量的计算,以图 1 的物料 B 为例,并设B 的批量为 10,则:表 6 物料 B 的需求量时段 l23456毛需求量 3040153020已分配量 20计划接收量 30现有库存 302050l0525 一 l5净需求量 l03020计划产出 1O3O20从表 6 中可以看出,物料 B 第一天的毛需求量是 30,已分配量为 20,它的原来库存量为 30,现有库存量减至 20;第二天计算机工程与应用 2005.32221一 l223423簿毛需求量为 0.而计划接收量为 3O,因此现有库存量增加至 5O;第三天的毛需求量为 40.现有库存量

13、变为 10;第四天的毛需求量是 15.现有库存量不能满足需要而变为负数,净需求为 1O;第五天的毛需求量是 30,现有库存量不能满足需要而变为负数.净需求为 30;第六天的毛需求量是 20,现有库存量不能满足需要而变为负数.净需求为 20.由于物 B 的提前期为两天,批量为10.因此分别在第 2,3,4 天下达计划,计划产出量分别是 10,30,20.对物料 B 的下属组件来说也可以按以上的方法计算各自的下达计划数量和时间.MRP 是根据主生产计划来确定与这个计划有关的每一库存项目的净需求和为满足这些净需求所需的库存储备.所有这些需求及库存数字都是按时间分段的.即不仅计算出需求数量.也计算出相

14、应时间.在 MRP 系统中.每当主生产计划或库存状态或产品结构发生变化时.都要重新安排净需求和库存储备计划.因此本文中涉及的数据库表结构的设计都是临时性质的.4 本文提出的 MRP 算法本文提出的 MRP 算法地, 将所有参加 MRP 运算的数据存储在临时表里.便于数据的及时更新,灵活运用了临时表,将多个表结合起来用来提高运算效率.多表层次分解 MRP 算法就是从被查找的根结点开始,按层次一层层往下遍历.类似于数据结构中树的层次遍历过程(上文提到的计算方法.只是单列一个层次的一种物料的计算方法).结合 BOM 结构,从最终产品开始,即根据主生产计划,同时结合库存逐层运算,最后得到物料或组件的采

15、购或加工计划清单.4.1 基于 B,s 的 MRP 算法设计的关键问题客户机上只要安装一个浏览器(Browser),服务器上安装数据库.浏览器通过 WebServer 同数据库进行数据交互.是典型的三层架构模式.B/S 最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件.只要有一台能上网的电脑就能使用.客户端零维护.系统的扩展非常容易.只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了.同时.基于 B/S 结构的ERP 也比较容易向供应链管理(SCM) 和客户关系管理 (CRM)方向扩展.便于企业信息系统的进一步升级.但是 B/S 不可避免地会有一些致命缺点.不同与传统的

16、C/s模式,由于客户端实现不是与服务器直接相连,有中间环节,因此响应速度慢,特别是对于大数据量的计算来说就更加让人难以忍受.而 MRP 正是对大量数据的运算处理 .对于需及时相应市场变化的中小企业来说它的销售是不断变化的.需要多次的运行 MRP,因此如何设计一个效率较高的 MRP 算法尤其重要.为了解决这个问题.结合单层 BOM 相比矩阵 BOM 结构模型的优点,笔者提出以下基于 B,s 结构的多表层次分解 MRP算法.4.2 层次分解 MRP 算法的实现本算法是基于存储过程的,结合上面列出的临时表1,2,4,5,还要在 sqlserver2000 下建立两个临时表#mrp_temp和#mrp

17、_resuh,前者用于存储运算的中间数据,后者存储运算的最终结果算法的描述如下:(1)清空临时表 1,2,4,5,7,8.2222005-32 计算机工程与应用表 7 临时表#mrp_temp表 8 临时表#mrp_resuh(2)从销售计划中读取数据到主生产计划表#mrp_mps 中 .(3)从树状 BOM 和网状 BOM 中读去最新的产品结构信息到单层 bom 结构表#mrp_bom 中.(4)将以发出的订单而尚未到货的信息读到物料的在途表#mrp_matonroad 中.(5)把关于最新的物料现有库存,安全库存,已分配库存,提前期和批量的信息读到表#mrpinv 中.(6)核心算法的实现

18、:,/声明变量declareIvint,idvarehar(20),qYfloat,drdatetime,midvarehar(20),stfloat,mdfloat,sefloat,plfloat,tqqintdeclarepidvarchar(20),cidvarchar(20),uyfloat,layerint,btqqint,/声名临时变量deelaretempIfloat,temp2float,temp3float,temp4datetime/声明系统时间变量和在途量declaresysdatedatetime,ryfloat/检查主生产计划表中有无计划whileexists(sel

19、ectfrom#mrp_mps)beginsetsysdate=getdate()一 1setlv=0,/按时间顺序取出主生产计划的一条成品信息selecttop1id=id,w=qy,dr=drfrom#mrp_mpsorderbydatereqaSC,将主生产计划数量放进临时运算表中insertinto#mrp_temp(id,qY,dr,lv)values(id,qy,dr,Iv),取出的该条记录从主生产计划表中删除deletefrom#mrp_mpswhereid=idanddr=-drwhileexists(selectfrom#mrp_temp)begin/将临时表中层数最小的物料

20、的取出一条selecttop1id=id,qy=qy,dr=dr,Iv=layerfrom#mrptemporderbylayerasc,/找出该物料的所有信息,包括现有库存等selectmid=id,st=st,md=md,8e=se,pl=pl,tqq=tqqfrom#mrpinvwhereid=id/若在途量信息中有在此时间段的物料的基本信息则更新临时表#mrp_inv 中的信息,即将在途量也算做库存,同时将在途量信息表中的该条记录删除whileexists(select$from#mrp_matonmadwhereid=idandda=drandda=sysdate)bginselec

21、try=qy,temp4=dafrom#mrp_matonroadwhereid=idandda=drandda=sysdatesetst=st+ryupdate#mrp_invsetst=stwhereid=mid“+deletefrom#mrp_matonroadwhereid=idandda=tem04end,取出一条关于该条物料的实时信息selectmid=id,st=st,rod=rod,se=se,pl=pl,tqq=tqqfrom#mrp_invwher.eid=idsettempl=qy-(st-md-se),在保证安全库存的前提下,现有的库存不能够满足需求,需计算该物料的生产或者采购量if(templ0)beginif(templ/pleast(templ/p1)asint(4)settemp2=(east(templ/p1)_鹕 int(4)plelsesettemp2=(cast(templ/p1)asint(4)plsetdr=-dr-tqq不能满足的情况下,先检查#mrpresuh 表是否有该物料在那个时间存在,如果存在,更新生产或者采购量,否则,将该条信息插入表

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报