热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

ERP系统二次开发的原因

ERP实施过程中,由于各企业情况不同,必然会存在一些无法满足企业需求的情况,虽然系统通过参数调整可以满足部分需求,但很多情况

ERP实施过程中,由于各企业情况不同,必然会存在一些无法满足企业需求的情况,虽然系统通过参数调整可以满足部分需求,但很多情况下都需要改动原有程序、甚至需要修改原始数据库结构来满足需求。

ERP系统二次开发的原因

1.用户不接受新系统的操作习惯

ERP产品为了保持较强的通用性,功能跟流程的设置都是标准与规范的。但在实施时,除了业务流程等方面具有个性化需求外,还存在着一些不涉及业务流程的、由企业的特殊性而产生的操作习惯需求,而提出了大量的二次开发。

2.企业不规范的管理制度造成的特殊流程需求

大部分企业都想把现有的手工流程、手工作业全封不动的搬到ERP中去,而不分析规范化的流程与企业原有流程的优劣性,固执的坚持采用目前的管理手段、管理习惯,要进行必须二次开发来满足其需求。

3.ERP软件确实无法满足的需求

ERP系统属于行业通用软件,但每个企业是有其自身的特点,确实也存在着一些个性需求,要进行二次开发,既要吸纳软件中的先进管理思想,也要保持企业的特色。

4.接口需求

信息化建设涉及多套系统,如OA、电商平台等,而各系统的数据之间存在信息共享,有系统接口需求,二次开发也成为必然。

5.新的需求产生

随着项目实施的不断深入,企业人员对信息系统有了更深的了解,应用不断深入,对信息系统产品就会提出更多的要求,使系统更贴合企业运营。

ERP系统二次开发的可能带来的风险

1.过多二次开发会增加系统升级难度

ERP供应商会阶段性的对系统新功能进行完善与扩充,不断推出新版本。系统的升级只针对标准版,不会考虑到个性化和二次开发的部分,所以二次开发工作大部分要重新修改或者开发。

2.二次开发会降低系统稳定性

成熟ERP软件具有较高的稳定性。而二次开发只对单一用户,某局部的更改往往因为满足特殊需求而没有考虑对全局的影响殃及整个系统的稳定性,并且二次开发的测试和试运行时间有限,系统复杂度以及耦合度增大,降低系统的稳定性。

3.二次开发有时会偏离企业实施ERP系统的初衷

二次开发需求往往会使ERP系统合理的逻辑屈服于企业固有的、习惯的工作方法,也会因提高不同部门员工使用系统的效率,而影响流程的稳定性。企业无法借鉴系统优化流程,学习先进管理模式。

4.二次开发增加ERP项目的成本

因为规模效应,产品软件的价格相对于其实施费用是偏低的。而二次开发只针对唯一用户,所以这些程序开发的全部成本由其承担,即使用企业自行二次开发,也要投入人力、物力,必然会增加ERP项目的成本。

ERP二次开发的风险控制

尽管各企业都有不同需求,但必须把握好二次开发的原则:实施ERP二次开发项目的目的是提升企业的管理水平,优化企业的流程。因提升个别工作效率而会影响业务流程的稳定性,坚决不做;因工作效率提升,并未对业务流程以及管理水平有帮忙的开发,尽量少做。

1.对整个企业的业务进行规划,二次开发要有所取舍

对于制造企业,会涉及到CAD、PDM、CAPP、ERP、MES系统,并存在接口集成等,因此要根据企业情况,从整体考虑,而不是从某个功能点或某个业务部门去考虑。企业不应过多强调自身的特点,毕竟ERP中的管理流程具有一定的先进性和合理性。某些特殊之处是由企业流程自身的不合理产生的,应通过ERP的实施,对企业的业务流程进行优化重组,而不是一味修改软件以适应不合理的流程。

2.利用原有的“闲置”字段,避免改动数据库结构

对于会牵涉到新增字段而影响到原有数据库结构的开发,尽量利用系统原有的“闲置”字段,不要轻易新增字段或文件档案。如确实需要的要与原开发商进行确认,以避免二次开发与产品发展方向重叠或冲突,以降低日后版本升级的困扰。

3.不要随意修改核心代码,新功能最好自成模块

要严格遵守不修改核心代码这一原则。如果必须开发,则应尽量使二次开发的功能模块独立于原来的系统。这样当系统版本更新时,二次开发出来的模块无需修改或者只需较少的修改就可以应用于高版本系统。

4.建立二次开发的规范

二次开发要建立一套完整的开发流程与标准。新扩充的字段、新建程序的命名制定统一规范,并且要预留扩充空间。公用组件不建议修改,程序的编写应采用继承的方式。

5.避免开发人员流失

培养一支既懂管理科学又懂信息技术的复合型、专业化人才队伍是企业信息化建设韵重中之重。留住IT人才也是规避企业ERP二次开发风险的策略。

结语

企业ERP系统二次开发具有十分重要的意义,ERP实施的成功率和实施效益具有参考价值,不仅要贴合企业管理,还要助力企业全面发展。
本文转自d1net(转载)



推荐阅读
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
author-avatar
Only-安之若素
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有