在线工博会

ERP软件的客户化与二次开发的探讨
魏玲 王晓丽 陈磊 崔海涛
随着信息技术的进步及激烈市场竞争的多元化,引进ERP这种代表了世界上最先进的管理思想和方法的管理信息系统是大势所趋。许多国内外著名公司基于自身的信息技术并根据企业整合的方法论开发出完整且复杂的ERP系统,堪称是企业参考模型的最佳典范。但是企业的业务流程与企业的文化特质是互不相同的,因此在导人ERP的过程中经常会产生ERP无法满足企业本身需求或与企业产生不合适的状况,因而产生了ERP用户化和二次开发的问题。所以在实施ERP系统的过程中用户化和二次开发就成为了必不可少的组成部分。
1 用户化和二次开发的涵义
当企业需求与ERP系统发生不合适状况时,我们有多种解决方法,而当企业需求不能做出让步时则只能改变ERP系统了。用户化和二次开发是两个容易搞混的概念,客户在项目的实施中对此往往不能很好的区分。但是如果不加以区分地将它们混为一谈则会出现很多弊端,从工作量和难易度看,用户化远远小于二次开发,而且它们各自适用的原则、步骤都是不同的。
1.1 用户化涵义
用户化的涵义即一般把不牵动程序的改动称为用户化,如修改报表格式。软件如果有报表生成功能,或采用第四代语言,任何业务人员,不需要有很多计算机知识就可以自行设置。当然,还需经项目实施小组的批准。
1.2 二次开发涵义
通常把改动程序的工作称为二次开发,即“以成熟套装软件方式针对某用户实施ERP时,对于软件功能不适用处进行的修改行为”。虽然系统通过参数可调的形式可以部分满足不同用户的需求,但很多情况下这种“轻度”灵活会失效。当客户的业务不能通过简单的用户化实现时,就需要通过改动程序的二次开发来完成。
2 解决的主要问题
2.1 国外软件的本土化
每个国家在历史、地理、政治、经济、文化等方面的条件各不相同,而反映到企业中,必然使企业在管理模式、管理方法等方面有所不同,所以自然会对ERP这样的管理系统提出不同的要求。而这些要求对大部分国外软件来说是无法完全实现的。这就产生了对软件进行用户化和二次开发的需求。这种用户化和二次开发常常是可以在多家国内企业广泛使用的,具有本地化的特点。对其程序要求具有产品软件的质量水平和技术支持水平,才能满足用户的需要。
2.2 满足不同行业的需求
某种软件产品的存在依赖于需求和市场。企业信息化发展到今天,行业细分需求特点日益明显。以制造业为例,企业用户已经不仅仅满足于财务管理、进销存管理,更要求对生产制造过程进行现代化管理,以提高核心竞争力。而这方面的需求具有鲜明的行业特点:同样是制造业,机械、电子、医药、冶金、化工、纺织、汽车等等对ERP软件的要求是不同的。即使同为汽车行业,总装厂、零部件厂、毛坯厂对软件功能的要求也各有不同。
2.3 适应不同的企业战略
一个ERP系统是一个通行的解决方案,它的设计反映了对企业通行业务的基本原则。供应商试图使系统反映最佳的操作,但是这“最佳”的含义往往是由供应商而不是由顾客定义的。在多数情况下,系统能使企业的业务运行比使用前效率更高。但是在有些情况下,系统的设计恰恰违背了企业的最佳效益。因此,在具体实施ERP以前,必定需要对企业、企业所处的行业、企业的客户以及竞争对手等因素进行具体分析,对业务进行合理的分析和调整来保持并加强企业的核心竞争力。当ERP的某些理念与企业的核心竞争力有冲突时,需要对ERP系统进行适当的调整。通过合理的配置。甚至于二次开发来满足企业的需求,而不是一味地修正企业自身来适应系统。
2.4 适应用户企业的特殊需要
有些使用ERP系统的公司是集团企业,作为集团企业的成员可能在不同的时期分别使用了自己的ERP系统,或者类似的信息系统,而作为统一管理这些成员公司的母公司,出于信息化管理的需要,必然希望能对这些不同的REP系统的信息进行汇总管理,这就必然要求各个成员公司的ERP系统能够提供母公司要求的格式的数据。这些数据经常是系统本身不能提供、或者不能按要求的格式提供的,这就必然涉及到用户化或二次开发工作。所以,在使用不同软件的集团公司中就常常需要进行接口程序的用户化或二次开发工作。另外,每个企业的生产过程是不一样的,对生产过程的管理与控制也是千差万别的,所以就往往会提出本企业的一些特殊要求。这些要求可能是部分流程逻辑的改变,也可能是一些特殊格式的报表,但是其共同的主旨是适应企业独特的需要,对通用软件进行用户化或二次开发。
3 二次开发的类型
ERP项目二次开发常常涉及以下方面的需求。
3.1 接口需求
由于企业所使用的系统常常不只ERP一个,而各系统的数据之间常常会有所交叉,这就产生了不同系统之间接口的需求。一般来讲,接口程序的编制都要由接口双方系统所属的公司共同完成,所以就在技术之外,先要有双方如何配合的问题。在需求分析上,要求接口双方和用户企业大力配合,才可以确定真正的接口需求。
3.2 报表需求
报表需求的产生一般都是由于各单位需要符合自己特殊要求的报表。其特点有以下几点。
(1)不需要修改数据库中数据,而只是进行查询和读取。
(2)一般对导出的数据字段内容及格式要求较严格。
(3)常常会不断有新的需求产生。
根据这些特点,应该鼓励用户自己参与报表的开发工作,这样做的理由是:报表的开发不会破坏系统逻辑或者修改系统数据,所以交给用户做是安全的,系统提供了方便的编制报表的工具。用户自己开发报表,更容易了解最终用户对内容和格式的要求。今后在项目实施阶段完成以后,遇有新的需求时。用户可以自行进行报表的开发。可以节约用户支付给开发商的软件开发费用。
3.3 逻辑修改需求
一个真正成熟的软件系统,其实施过程中需要进行的逻辑修改很少,进行时也要采取非常谨慎的态度。进行逻辑修改之前要先确认要进行的修改在逻辑上是合理的,在实现上是可行的。并且充分了解用户需求,设计出性价比最高的解决方案。同时要注意所采用的解决方案及其程序实现可以满足需要的性能要求和健壮性,并且界面相对容易掌握。因为要进行修改的是个大系统,所以要整体的看所要做的修改对系统的整体影响,不要顾此失彼,对整个系统的稳定运行造成影响。另外,要建立详细的文档,以保证将来在需要对系统进行升级时,可以在新版本中重建这些二次开发的部分。
4 二次开发的管理重点
4.1 全面了解用户需求
了解用户需求表面上看是很容易的,但实际上却需要很大的努力。有些资深顾问认为,了解用户需求的时间往往超过整个开发项目总时间的1/4,甚至有时在小项目中可以超过总用时的1/3。其困难主要是有以下几点。
(1)用户无法用专业词汇、专业逻辑来表述其需求,而程序开发人员又缺少用户企业环境的背景,造成双方沟通的困难。
(2)用户企业组织不利,造成每个部门,甚至每个人都有对二次开发有不同的要求。
(3)用户总是在自觉不自觉中希望重复企业原有的,不合理的生产逻辑。
基于上述可能产生的问题,就需要在了解用户需求时本着真正对用户负责的原则,耐心、细致、科学、系统地了解用户需求。①针对困难(1)就需要在进行二次开发设计之前,对户进行教育、培训,至少使主要的核心用户不仅了解ERP软件的使用方法,同时也了解ERP的内在逻辑,真正懂得ERP。这样,供求双方才能使用共同语言,在共同逻辑基础上讨论ERP二次开发的需求。②针对困难(2)要注意以下两点。一是帮助用户建立合理的项目队伍。只有项目队伍有合理的组织结构,才可能汇总、优化各个不同部门,不同个人的不同的需求。二是要求所有主要核心用户都参加整个ERP培训,而不只是自己工作相关模块的培训,这样才能让他们树立全局的观点,自觉把自己的、本部门的需求与ERP项目整体的需求相结合,得到完整的、一致的需求。③针对困难(3)就需要负责二次开发的技术人员本着对用户对项目负责的原则,深入地理解ERP系统的整体逻辑,与项目的实施人员紧密配合,真正了解用户的需求。这个工作有时甚至可能是一种极具挑战性的工作,不仅需要科学的态度,还要需要艺术的方法。
4.2 判断二次开发要求的合理性
对于软件的二次开发有时是不可避免的。但是,过多的修改又会影响ERP项目的顺利实施。那么,二次开发是否要做的标准是什么呢?也就是说如何判断用户化要求是否合理,从而有效的防止过多的修改呢?有3个方面的工作可以防止过多的修改,即教育、标准软件和管理。
4.3 区分及处理二次开发上线前、后阶段
在实际进行二次开发工作时,首要之事就是区分哪些二次开发是属于上线前一定要完成的,哪些二次开发是属于上线完成后才慢慢来进行的。前者指的是那些“不改的话根本无法上线”的二次开发,后者指的是那些属于重要性不高,不会影响上线的二次开发。如果不能对二次开发进行有效的区分,会模糊上线实施的管理重点,进而影响上线的进度甚至质量。
4.4 尽量避免更动数据库结构
新增或修改原有的报表或查询程序,不会影响系、统的原有数据库结构,因此不会造成日后系统升级的困扰。但是,如果二次开发牵涉到新增字段或档案,就可能影响到原有数据库结构,此时,最好的方式就是尽量利用系统原有的“闲置”字段,不要轻易新增字段或文件档案。如果有改动较大的二次开发,其规格应当请软件原开发厂商确认,以避免二次开发与产品发展方向重叠或冲突,以降低日后版本升级的困扰。
4.5 建立二次开发的规范
二次开发是一项庞杂的系统工程,决不是简单系统代码的增增减减,二次开发的文档应该由专人保管,而代码注释也必须清晰易懂,还必须有专人负责检查代码质量。新扩充的字段命名、新建程序的命名都应该由专人分配,首先不能和现有系统冲突,同时还应预留一定的空间。对于公用元件一般不建议修改,因为公用元件被很多程序调用。在程序的编写上应采用继承的方式,在保证不破坏原有功能的基础上做个性化的功能完善。如要修改处理业务逻辑.则分两种情况:一是修改原有程序中的处理逻辑,将局部的继承去掉,重写新逻辑。二是在原有功能基础上新增,保留继承关系,在新的子文件中只完成新功能的实现即可,当版本升级时,二次开发的程序惟一要做的就是继承新版本的源代码作重新编译。
5 结论
ERP系统用户化和二次开发具有十分重要的意义,本文旨在从中总结出一些普遍性的经验和教训。对提高ERP实施的成功率和实施效益具有参考价值,从而使得ERP能够真正的发挥作用,提高企业决策体系和市场运作体系的反应水平,提高企业捕捉发展机遇、规避市场风险的能力,提高企业的核心竞争力、加快企业的市场反应机制,并最终推动企业的发展。 10/5/2011


电脑版 客户端 关于我们
佳工机电网 - 机电行业首选网站