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)
相关推荐
Word 文档内容 ERP软件是提升企业管理效率极具威力的工具,目前国内许多企业都在准备采用ERP软件。笔者通过自己的实际应用和设计经验,介绍一种实用的ERP核心算法,适合国内中小规模企业(3000人以下企业)的使用...
本文将详细介绍SAP XI(Exchange Infrastructure)在ERP与MES集成中的应用,并针对邯郸钢铁集团的实际案例,分析其在集成过程中遇到的关键问题及解决方案。 #### 二、SAP XI 技术概述 SAP XI 是一种用于集成不同...
工作流引擎核心调度算法是流程自动化中的关键技术,它负责协调并执行一系列相互关联的任务,以完成一个完整的工作流程。在企业信息化系统中,工作流引擎扮演着至关重要的角色,能够提高工作效率,规范业务流程,并...
本篇文章将详细介绍一种改进的方法——加权平均算法,并探讨其在ERP提取中的应用。 #### 二、加权平均算法原理 传统的简单叠加平均方法假定背景噪声为加法性且与ERP信号相互独立,各次ERP的波形时不变性以及背景...
### 管家婆ERP A8系统介绍及应用知识点 #### 一、系统概述 **管家婆ERP A8**是一款由WeWay Software Development Co. Ltd研发的企业管理软件,旨在为中小型企业提供全方位的信息管理解决方案。该系统基于Web开发,...
通过具体的应用实例,验证了商业智能解决方案的有效性和实用性。 #### 四、商业智能的未来展望 除了在商业领域中的应用,作者还指出,商业智能的关键技术如果应用于军事领域,特别是在军用舰艇管理方面,将具有...
- 技术应用:涉及数据采集、图像处理、音频压缩、三维图形系统、小波变换等领域,以及对实用算法的分析和评价。 撰写毕业论文时,理工科专科学生应具备科学研究、工程设计、项目开发的基础训练,并能按照科技报告...
"基于MES的特钢企业CAPP系统研究及应用"这一标题揭示了本文的核心内容,涉及到了三个关键领域:MES(Manufacturing Execution System,制造执行系统)、特钢企业以及CAPP(Computer-Aided Process Planning,计算机...
4. 企业级软件:Java是许多企业的首选语言,用于开发企业资源规划(ERP)、客户关系管理(CRM)等企业级应用。 5. 云计算:Java在云计算平台中广泛使用,如Amazon Web Services、Microsoft Azure和Google Cloud ...
第1章 计算机应用基础知识概述 第2讲 计算机应用基础知识概述(二) 教学目标及基本要求: 1、掌握计算机软件系统的构成,软件的概念、特点及分类 2、了解指令、语言、程序的概念。 3、掌握计算机的基本工作原理。 ...
在实际应用中,这种算法可能会集成到生产管理系统(MES)或企业资源规划系统(ERP)中,与库存管理、物料需求计划(MRP)等功能协同工作,实现整个生产流程的智能化。 例如,文件"ConsoleApp1"可能是这个自动排产...
SAP S/4HANA Cloud作为智慧企业应用的核心,提供了包括客户体验、生产和供应链数字化、人员互动、网络和支出管理在内的全方位解决方案。它利用智能技术,如深度学习、预测性分析和规范性分析,以及行业模型和算法,...
第1章 计算机应用基础知识概述 第2讲 计算机应用基础知识概述(二) 教学目标及基本要求: 1、掌握计算机软件系统的构成,软件的概念、特点及分类 2、了解指令、语言、程序的概念。 3、掌握计算机的基本工作原理。 ...
5. **专利保护**:对于这样的核心算法,企业会申请专利以防止技术被盗用,保护自身竞争优势。 6. **智能决策**:算法能自动化执行决策过程,如自动下单、调整安全库存水平,减轻人工操作负担。 7. **业务效益**:...
MRP算法的核心在于对库存、生产需求和采购计划的精确计算。在这个Java实现中,MRP系统可能包括以下几个关键部分: 1. **物料数据库**:系统会维护一个包含所有物料信息的数据库,如物料编码、描述、库存量、安全...
这篇报告聚焦于2006年至2007年中国软件技术的应用情况及未来发展趋势。通过详实的研究,报告揭示了这一时期中国软件行业的核心特征,包括人才分布、技术应用状况以及企业信息化进程。 首先,报告指出中国的软件开发...
由于其健壮的安全性机制和强大的网络功能,Java被广泛用于构建服务器端应用程序,如企业资源规划(ERP)、客户关系管理(CRM)系统,以及各种类型的Web应用和移动应用后端服务。例如,许多电子商务网站、银行交易...
而AI算法的应用,则可优化生产策略,提升生产效率。 总结,以DCS为核心的生产信息自动化系统在汽车工厂的应用,不仅提升了生产效率,降低了生产成本,还促进了企业的数字化转型。随着技术的进步,未来DCS系统将在...