`

实用的ERP核心算法及应用

阅读更多

一种实用的ERP核心算法及应用
 
ERP软件是提升企业管理效率极具威力的工具,目前国内许多企业都在准备采用ERP软件。笔者通过自己的实际应用和设计经验,介绍一种实用的ERP核心算法,适合国内中小规模企业(3000人以下企业)的使用。

  ERP软件的核心
  ERP就是企业资源管理,它的前身是MRP,即物料需求管理,MRP最早应用于生产制造企业,生产制造企业收到各种各样的订单时,单凭手工和经验往往不能很好地解决这样一个问题: 手头物料够不够用?什么时候需要采购什么物料?采购量为多少合适?而MRP可以很好地计算出物料需求,从而帮助企业管理人员做好物料的采购准备工作,既能保证生产不缺料,又不会积压大量的库存。物的流动与积压往往伴随着资金的流动与积压,所以后来MRP中加进了财务模块,在财务上对物流与库存进行有效的管理,这就是MRPII,即第二代的MRP。将MRP管理的思想发挥得最为极至的当数日本的丰田汽车公司,丰田倡导的“零库存”,“JIT”(及时供应)的先进管理概念在世界上备受推崇。零库存就是要尽可能地降低库存,因为任何库存都意味着资金的积压。而JIT(及时供应)就是说企业在最恰当的时候收到恰当的物料,既不缺料,也不会积压。

  现代企业的客户和供应商的地域范围都大大扩展了,不少企业在全国乃至全世界范围进行销售和采购,这样物料流动的成本是很高的。对此笔者就有切身的体会,笔者几年前在广东一家外资企业做生产管理工作,有一次接到一张重要的订单,开始生产后才发现,生产过程必需的铜线很快就要断料了,这种铜线是我国台湾省供应的,平常都提前几个月大批订货,从台湾海运过来。为了让生产线不停工(生产线停工的成本也很高的),只好让台湾的供应商马上空运(经香港中转)几轴铜线过来应急,这样平白多花了近万元的空运费。

  当前,制造企业面临着更大的挑战,因为个性化的时代需求意味着更多的款式,更小的批量,这样在物料的采购和生产的管理上难度都比大批量的制造难得多。十年八年不变地只生产单一的产品已经成为历史,现在就算比竞争对手慢一步推出新产品也会给企业带来不少损失。如在中国移动通信市场上,摩托罗拉的大块头模拟手机曾经独步天下,风光一时,后来爱立信公司推出了小巧玲珑的数字手机,一下子成为了市场的宠儿,后来几年,爱立信公司的手机款式一直没有多少改变,而诺基亚却不断地推出新潮的款式,得到市场的认可,迅速成为手机市场的新宠。

  MRPII确实极大地帮助了企业应付这些挑战,不过它自己也需要变革以应付更多的挑战。企业的管理主要包括:人(人力资源)、财(资金)、物(物料、产品和机器设备、厂房等),MRPII软件的管理范围还没有包括全部企业管理资源。ERP软件进一步扩大了MRPII软件的管理范围,它把MRP中“物”的范畴扩大到企业所有可管理的资源,如人力资源,机器设备能力等等。

  ERP最核心的功能是帮助企业管理好可用资源,这其中最重要的当然还是财(资金)、物(物料、产品)。

  物料清单(BOM)
  所有的ERP软件都离不开物料清单(BOM),BOM是所有ERP运算的基础,对资源的管理就是在BOM的基础上做BOM的展开运算。BOM是产品的配方,它列出制造某一种产品所需要的所有物料的清单。每个企业生产的产品不同,所用的材料不同,因而BOM是不同的。ERP软件能否成功实施,在很大程度上取决于能否整理出本企业的一个准确的BOM。在整理BOM时,需要分轻重,次要的无关紧要的物料可以不包括进去,这样就能抓住关键。

  当有了一个产品配方在手时,就几乎等于拥有了解决企业资源管理问题的金钥匙,这样当收到了订单,或是按销售预测制定了生产计划后,就能计算反推出: 手头物料够不够用?什么时候需要采购什么物料?采购量为多少合适?在ERP软件中,“物”的范畴扩大到企业所有可管理的资源,如人力资源、机器设备能力等等,这样就能计算反推出:手头人力资源、机器设备能力够不够用?资金够不够用?能不能接这张订单?什么时候需要什么资源?多少量最合适?在ERP软件中,产品配方中也可以包括制造某一种产品所需要的人力资源、机器设备能力、资金等资源的清单。从这里也可以看出,在工程项目管理上,ERP也可以大展身手。所以说准备好本企业的一个准确的BOM已经成功了一半了。

  不同的ERP系统采用不同的BOM存储结构,本文介绍的算法采用单层BOM存储结构,它的好处是简单、易用、扩展性好,可以实现无限的层次。图1是一个简单的BOM结构示意图。

  这样的结构的另一个优点是BOM表的输入与维护相当容易,用户用Excel就可以准备BOM表了,比较方便。材料用量和材料提前准备日数是BOM的两个重要参数,它们分别从量和时间上控制实现“零库存”、“JIT”(及时供应)的最高目标。

  有一点要注意到的是,现在所说的产品、材料是包括了所有资源的,而且产品与材料之间只是相对而言的。这样所有的资源(产品、物料及其他资源)都放到了一个数据库中,简化了管理,这也是ERP 带来的新概念。这样企业的BOM核心部分只有两个数据库,一个是资源库,它包括了所有的资源(产品、物料及其他资源);另外一个就是材料构成表(BOM)。这样的好处在于:利用BOM做展开时就相当方便了,可以方便地扩展应用的范围,从基本的物料需求,到人力、机器设备等其他资源,再到资金、项目进度管理,而惟一需要做的就是将它们放到资源库里,所以这种结构能充分地展示ERP的优点。

  本算法采用单层BOM存储结构的另外一个好处是:用户使用中很方便,不需要对资源(产品、物料及其他资源)做任何特别编码,也不需要理会层次的问题。这使得ERP的实施变得更简单,原来可能要花几个月甚至大半年来准备BOM,现在只要一两周可能已足够了。这对许多中国企业来说可能是非常重要的,因为资金雄厚的欧美大企业可以花上1~2年时间实施ERP系统,而许多中国企业整天都面临着生存发展的严峻问题,它们更需要快速的立杆见影的东西来提升自己的竞争力。

  这种结构的另外一个优点是能够比较好地处理替代件问题。替代件问题是困绕MRP/ERP的老大难问题,当一个产品的生产既可以用A部件,也可以用B、C、D等部件时,电脑处理起来就会很费劲。而采用单一资源库以后,可以将替代件归类为一个虚拟类,并建立一个类,而BOM只引用该类。

  同样,采用单一结构还能很好地简化BOM表,因为在许多企业,如鞋厂,不同尺码的鞋的BOM 差别往往在用量的多少,按比例地增加或减少,或大部分是相同的,而差别只在一两样配件上。单一结构就能很容易实现虚拟中间件,如一个鞋厂有10000种款式,每种鞋的物料有50种,如果单纯的相乘,就是10000×50 =500000种物料配方,而将各种款式分类后,通过增加一些虚拟中间件后,如A款鞋公用件,那么最终需要的物料配方可能不到20000就足够了,给实际应用和计算带来很大方便。

  展开计算的核心算法
  当BOM准备好以后,就可以进行ERP展开计算了,这里介绍一种展开算法。

  算法的具体实现步骤是: 

  1. 清空临时数据库;
  2. 从客户订单数据库读入实际订单或销售预测,插入到临时数据库中,这就是待展开的需求;
  3. 从临时数据库读出需求,同时读取材料构成表(BOM)中相应的物料需求项,并插入到临时数据库中,这就是展开的子层需求; 
  4. 重复3,直到算完所有的层,或者算到用户指定的层(应该允许用户选择,特别是当层次数很多时); 
  5. 从库存数据库读入手头的库存量,插入到临时数据库中,这就是库存量; 
  6. 从生产订单数据库读入手头的订单,插入到临时数据库中,这就是在制量; 
  7. 从采购单数据库读入手头的采购单,插入到临时数据库中,这就是在购量。 

  部分关键代码如下: 

  ’下面做展开计算,从顶层到最底层 
  DoNextLevel: 
  MySqLcalling = “select * from ERPTemp where 状态<>1 order by 产品编号” 
  If Myrs.State = 1 Then Myrs.Close 
  Set Myrs = Nothing 
  Myrs.Open MySqLcalling, MyDE, adOpenStatic, adLockBatchOptimistic 
  Myrs.MoveFirst 
  产品编号 = -1 
  Do Until Myrs.EOF 
  If Myrs(“状态”) = 2 Then 
  Myrs(“状态”) = 0 
  GoTo ReachNewRecord 
  End If 
  If 产品编号<>Myrs(“产品编号”) Then 
  产品编号 = Myrs(“产品编号”) 
  MysqlERP =“select 产品编号,材料编号,材料用量,材料提前准备日数 from产品材料构成表where 产品编号=”& Myrs(“产品编号”) 
  If MyDE.State= 0 Then MyDE 
  .Open 
  If MyRsERP.State = 1 Then MyRsERP.Close 
  MyRsERP.Open MysqlERP, 
  MyDE, adOpenForwardOnly, adLockReadOnly 
  End If 
  If Not MyRsERP.BOF Then 
  MyRsERP.MoveFirst 
  Do Until MyRsERP.EOF 
  TheNeededMonth = DateDiff(“m”, Now, DateAdd(“d”, -MyRsERP(“材料提前准备日数”), Now())) 
  If TheNeededMonth< 1 Then TheNeededMonth = 0 
  If TheNeededMonth>12 Then TheNeededMonth = 12 
  If ERPbyWeek Then 
  ’by week 
  TheNeededMonth = DateDiff(“WW”, Now, DateAdd(“d”, -MyRsERP(“材料提前准备日数”), Now())) 
  If TheNeededMonth< 1 Then TheNeededMonth = 0 
  If TheNeededMonth > 52 Then TheNeededMonth = 52 
  End If 
  Myrsbookmark = Myrs.Bookmark 
  Myrs数量 = Myrs(“数量”) 
  Myrs.AddNew 
  Myrs(“分组序号”) = 4 
  Myrs(“分组”) = “需求量” 
  Myrs(“状态”) =“2” 
  Myrs(“产品编号”)= 
  MyRsERP(“材料编号”) 
  Myrs(“数量”) = MyRsERP(“材料用量”) * Myrs数量 
  Myrs(“日期”) = DateAdd(“d”, -MyRsERP(“材料提前准备日数”), Now()) 
  Myrs(“月份”) = 
  TheNeededMonth 
  Myrs.Bookmark = Myrsbookmark 
  MyRsERP.MoveNext 
  Loop 
  Else 
  Myrs(“状态”) = 1 
  End If 
  Myrs(“状态”) = 1 
  ReachNewRecord: 
  Myrs.MoveNext 
  Loop 
  MyRsERP.Close 
  Myrs.UpdateBatch 
  Myrs.Close 
  ERPlevel = ERPlevel + 1 
  DoEvents 
  If ERPStop Then GoTo ErrorHandle 
  If CalcLevel = -1 Then 
  GoTo DoNextLevel 
  Else 
  If ERPlevel< CalcLevel Then GoTo DoNextLevel 
  End If 
  Else 
  ’OK, 结束 
  End If 

  大家可以注意到,由于上面采用了单层BOM存储结构,所以展开计算的算法就相当简单了,由于不需要特别的产品编码,BOM的输入与维护也非常简单。另外,大家还可以注意到,算法完全不用递归嵌套,因而可以加快运行速度。

  展开计算完毕以后,就可以利用交叉表调出临时数据库中的数据,进行浏览、分析和打印了。这样需求量与供应量(库存量、在制量、在购量)就摆在了一起进行比较,管理者就能够很直观、清楚地看出各种资源现有多少,需求量有多少;管理人员可以据此做采购和生产的计划。而计划可以是主计划,也可以是细计划,取决于用户选定要展开到哪层,如果展开所有的层,那么所有的细计划,如车间计划,每个车间的人力、设备安排都会被包括在内。

  本算法采用Access数据库,在VB 6.0上调试实现,由于采用了特别的算法设计,使得既可以实现无限的层次,又不用递归嵌套。对于国内中小规模企业(3000人以下,产品、材料条目总数在50000以下)来说,利用Access开发的小ERP系统可以很好地实现企业的现代化管理,应付日常的管理需求。

  ERP只是一种企业资源计算器
  ERP是一种有效的管理工具,可以对企业内部的资源进行有效管理,明显减少积压库存,加快资金周转率,降低成本。在当前激烈的市场竞争环境下,谁能比别人以更低的成本生产出更美更好的产品,谁就能成为市场的领导者。美国石油大王洛克菲勒成功最根本的原因是他在成本管理上严密精细。他能准确地查阅并分析下面呈报上来的开支和成本,销售及损益数据,并以此考核每个分厂的工作。

  现实生活中,企业管理层,特别是实际操作的一线主管,很少会每个人都有洛克菲勒那样的数字分析天分,而且不少企业比油厂复杂得多,所以ERP等工具就像是一种企业资源计算器,如果企业严格按它的规程去做,那么它就能比洛克菲勒还要精确地分析处理数据。

  如果洛克菲勒今天还在世,他一定也会借助于强大的电脑来管理庞大的业务。不过工具毕竟是工具,最智慧的还是应用它的人。如果一个企业家有洛克菲勒那样的经营智慧,就算用手工算,他也肯定是按照着这种管理理念在卓有成效地工作。

  所以最智慧的不是机器而是应用它的人,ERP只是一种企业资源计算器,就像会计人员手里的算盘、计算器一样,只是一种工具。

  总 结
  ERP的实施中,最重要的一点在于一定要把握住关键,而忽略一些次要的因素,这对各方面的管理与规范相差甚远的国内企业来说尤为关键。这样抓住了本质以后,实施的成功就是必然的了。另外必须要注意到,ERP软件只是一种工具而已,企业管理应用者的智慧有多高,软件应用的水平就有多高。100万元的ERP软件和1万元的ERP软件的差别,除了功能和可靠性外,还有很重要的一点在于前者通过具体实施的过程,将一套很完善的管理方法和管理理念灌输给企业管理应用者,这也就是人们常说的知识的价值。

(出处:www.delphibbs.com)

分享到:
评论

相关推荐

    一种实用的ERP核心算法及应用

    Word 文档内容 ERP软件是提升企业管理效率极具威力的工具,目前国内许多企业都在准备采用ERP软件。笔者通过自己的实际应用和设计经验,介绍一种实用的ERP核心算法,适合国内中小规模企业(3000人以下企业)的使用...

    计算机应用基础知识概述.doc

    第1章 计算机应用基础知识概述 第2讲 计算机应用基础知识概述(二) 教学目标及基本要求: 1、掌握计算机软件系统的构成,软件的概念、特点及分类 2、了解指令、语言、程序的概念。 3、掌握计算机的基本工作原理。 ...

    计算机应用基础知识概述(3).doc

    第1章 计算机应用基础知识概述 第2讲 计算机应用基础知识概述&lt;二&gt; 教学目标及基本要求: 1、掌握计算机软件系统的构成,软件的概念、特点及分类 2、了解指令、语言、程序的概念。 3、掌握计算机的基本工作原理。 教学...

    计算机应用基础知识概述(1).doc

    第1章 计算机应用基础知识概述 第2讲 计算机应用基础知识概述(二) 教学目标及基本要求: 1、掌握计算机软件系统的构成,软件的概念、特点及分类 2、了解指令、语言、程序的概念。 3、掌握计算机的基本工作原理。 ...

    计算机应用基础知识概述(2).doc

    各种实用工具程序 实用工具程序能配合各类其他系统软件为用户的应用提供方便和帮助.如磁盘与文件管理 软件、瑞星、金山毒霸与##等.在Windows的附件中也包含了系统工具,包括磁盘碎片整理 程序、磁盘清理等实用工具...

    朋科PECU-ERP企业资源管理系统 v14051701.zip

    系统摒弃了华丽的导航式操作界面,一切操作均模拟企业的实际业务流程,直达企业的核心需求,至简、高效、实用,能充分适应企业的发展需求,企业经营者无需重新学习ERP管理理念,无需建立完善会计制度,更不需要重新...

    隐私保护机器学习的挑战和ERP系统中训练数据的解决方案-研究论文

    数字化转换无处不在,这进一步推动了ERP公司采用更多的机器学习算法来推动智能实时决策能力的发展。 ERP系统已开始合并由庞大的企业数据,云和计算功能提供支持的机器学习用例。 但是,数据隐私仍然是一个挑战。 ...

    使用深度学习算法实现的中文问答系统.zip

    计算机硬件系统: 计算机硬件系统是构成计算机物理实体的所有部件的集合,包括核心组件以及外设。其主要组成部分包括: 中央处理单元 (CPU):作为计算机的大脑,负责执行指令、进行逻辑运算和数据处理。 内存:...

    工业大数据分析综述:模型与算法

    随着条形码、二维码、RFID、工业传感器、自动控制系统、工业互联网、ERP、CAD/CAM/CAE等信息技术在工业领域的广泛应用,大量与工业生产活动相关的数据被实时采集并存储到企业的信息系统中。对这些数据进行分析,有助...

    沙盘运行器

    2013年热门Android应用 Android 游戏教程:让人物动起来 跟燕青一起学Android应用开发 .. 相关资源 AgileEAS.NET SOA 平台简易教程 50个Div+CSS模板 圣诞程序雪花飞舞的世界(VC++) C#5.0语法范例 读懂C++...

    操作系统存储管理的算法实现与演示.zip

    管理系统是指由硬件设备、软件应用、数据资源、人员以及相关管理制度共同构建的,用于处理、监控、分析和决策各类业务活动的综合信息系统。它通常包括以下几个核心组成部分: 数据采集模块:负责从各类业务环节中...

    管家婆仓库管理软件

     本系统定位于解决中小企业的核心管理问题,业务流程及组织架构相对简单;企业操作人员也可以根据指导手册,实现自助式实施应用,大大降低了企业对供应商的依赖性。本系统使用的是MS SQLSERVER数据库,在Windows...

    大数据分析平台.docx

    基于Hadoop来实现的经典算法,拿这个作为数据分析的核心算法集来参考还是很好的。 大数据分析平台全文共4页,当前为第2页。 大数据分析平台全文共4页,当前为第2页。 如此一个决策支持系统要怎么展现呢?其实这个和...

    SmartNest切割套料编程软件

    SmartNest软件的功能覆盖了板材下料及其生产管理的各个方面,包括切割零件库管理、板材及其余料库管理、自动套料、交互套料、切割轨迹优化、数控自动编程及切割模拟、数据汇总与统计报表等,并可与企业PDM、ERP等...

    大数据基础产品介绍-大数据相关产业方案介绍.pptx

    数仓建模系统 工作流调度系统 业务分析建模 算法模型库 图形化报表 ETL工具 运维管理 可视化的 集群管理 多样的 部署方式 多维度的 监控 …… 信息系统 ERP CRM SCM 机器日志 音视频 物联网 社交媒体 非结构数据 ...

    友为财务管理软件

    软件介绍: ...结合底层系统平台和应用层的各种权限机制,提供了完善的安全授权机制,支持职位权限授权,数据传递采用SSL加密算法。客户认证,全部在服务器上认证,数据本身的安全机制保护数据库。

    beauty of architecture

    ArchitectedERP-超越ERP 1.4 企业架构核心概念辨析 架构设计术语注解 企业架构设计基础(一) 企业架构设计基础(二) 企业架构核心概念辨析(一) 企业架构核心概念辨析(二) 延伸阅读 好书推荐: 1.5 ...

    智能工厂的五大特征.docx

    数据采集方面毫无疑问做的很好,但数据也仅仅停留在形成报表的层面,无法直接利用与分析,识别出问题并进行整改,直接反映的是数据分析和数据应用人员的缺失,尤其是与专业相结合,需要既了解专业又懂得建模和算法的...

    RouterOS2.9.6.with.crack及配置动画

     系统提供强大的防护功能,支持内/外部攻击防范,提供扫描类、DoS类、可疑包和含有IP选项的包等攻击保护,能侦测及阻挡IP欺骗、源路由攻击、DoS等网络攻击,能有效的阻止端口扫描、防SYN flood , UDP flood , ICMP ...

Global site tag (gtag.js) - Google Analytics