陈素燕 吴楚平
摘 要: 采用成熟套件+二次开发是成功实施具有特色ERP系统的主要方法,而一个成熟的ERP二次开发工具是成功实施ERP不可缺少的保障。通过研究钢铁企业ERP二次开发的特点,归纳总结出一个采用Oracle ERP+Delphi+PL/SQL进行二次开发应用的方法。
关键词: Oracle ERP; 二次开发; Delphi; PL/SQL
中图分类号:TP311 文献标志码:A 文章编号:1006-8228(2013)08-40-04
0 引言
ERP是企业资源计划(Enterprise Resource Planning)的简称,在国外已成功运用几十年,其融合国外先进管理理念及管理方式,与国内管理有很大的不同。随着信息技术的飞速发展和企业经济实力的不断增强,国内越来越多的企业开始实施ERP[1]。ERP是从传统制造业发展起来的,如汽车制造业,国外ERP成熟套件有其明显的行业特征;而钢铁行业的生产流程与这些领域差别很大,完全套用ERP成熟套件在钢铁行业实施就很难成功。若采用成熟的ERP套件+二次开发的技术路线,充分利用ERP套件的集成性、先进的管理理念,结合商用大型应用系统的实施经验及自身的二次开发优势,则实施风险小,成功机会大。
1 ERP的工作原理
ERP的工作原理在于MRP(Material Resource Planning),它根据销售预测和客户订单,以BOM建立的供需关系,综合考虑到设备能力、库存情况、时间要求等一系列复杂关系,产生出物料需求信息:生产、采购、委外。系统围绕计划,设计了三条主线:进销存、生产制造、财务,从而构成了一套完整的ERP企业信息管理系统[1]。ERP系统的总体框架如图1所示。
2 ERP二次开发实施基本原则
⑴ 尽量以使用标准功能为主,能使用标准功能的,坚决不做二次开发;
⑵ 能在ERP系统内开发的坚决不在系统外开发;
⑶ 系统外开发一定要继承和发扬原有信息化建设成果,对用户来说做到新旧系统透明转换。只有充分了解二次开发工具及与ERP接口方法,才能更好地进行二次开发的应用和实施。是系统内开发还是系统外开发,是前台开发还是后台实现,采用何种工具,如何接口,把握好二次开发基本框架等,是二次开发成败的关键。
3 ERP二次开发体系结构
3.1 开发工具/应用程序层次结构
Oracle应用系统11i版本是真正完全基于互联网Internet 架构,并且采用开放的Java语言和技术标准进行编写的应用软件,其开放性使Oracle应用系统11i版本有越来越强的生命力,Oracle应用系统充分采用了数据库上的先进技术,将有些系统功能放到数据库中去实现,而不是通过编程的方式,因而大大简化了程序,提高了效率。使用Oracle ERP标准功能开发工具,能够很好地实现二次开发与ERP的集成,界面风格统一,并且在系统升级时也能很好地得到支持。
Delphi以C/S构架为主,是一种面向对象编程的工具,特别适用于企业局域网内大批量数据处理。特别是其第三方控件丰富,可满足用户个性化需求。
ERP二次开发可能用到的开发工具有以下:
⑴ 利用系统标准功能的Form开发,它主要适用于前台业务操作,如炼钢、轧钢车间管理,由于操作相对单一,与ERP标准功能联系紧密,能完全融合在ERP标准界面内,操作简单、方便,属B/S三层模型构架。
⑵ 利用系统标准功能的支持Web的PL/SQL工具,它以网页形式返回输出,可以使结果动态化,主要用于数据展示,如报表综合查询。
⑶ 利用Delphi,主要用于与ERP标准功能联系不紧密,个性化多、数据量大的业务操作,如销售发运平台、大宗原(燃)材料验配结算系统,属于客户机/服务器(C/S)构架。
⑷ 利用Oracle后台PL/SQL工具,主要用于后台数据处理,不需人工干预的地方。如产成品完工入库完全是在后台执行的。
3.1.1 使用Delphi开发模板
Delphi是Borland公司研制的新一代可视化开发工具,可在Windows 2000,Windows XP等环境下使用。它拥有一个可视化的集成开发环境(IDE),采用面向对象的编程语言Object Pascal和基于部件的开发结构框架。Delphi它提供了100多个可供使用的构件,使开发人员可以快速地构造出应用系统。开发人员也可以根据需要修改部件或编写部件。
其主要特点[2]:
⑴ 直接编译生成可执行代码,编译速度快。
⑵ 支持将存取规则分别交给客户机或服务器处理的两种方案,允许开发人员建立一个简单的部件或部件集合,封装所有的规则,独立于服务器和客户机,所有的数据转移通过这些部件来完成。大大减少了对服务器的请求和网络上的数据传输量,提高应用处理的速度。
⑶ 提供许多快速方便的开发方法,使开发人员能用尽可能少的重复性工作完成各种不同的应用。
⑷ 具有可重用性和可扩展性。开发人员不必再对诸如标签、按钮及对话框等Windows的常见部件进行编程。Delphi包含许多可以重复使用的部件,允许用户控制Windows的开发效果。
⑸ 具有强大的数据存取功能。
Delphi 开发模板主要利用了Delphi 本身面向对象编程(OOP)的精髓:如类(Class)、继承(Inherited)、重载(Overload)、超载(Override)技术。
这些主要特性的组合使用,最终可完成Delphi开发模板的各项功能:模板技术。
3.1.2 PL/SQL
Oracle是一种功能非常强大且非常灵活的关系数据库系统,其强大的功能和灵活性,使Oracle非常复杂。为了实现基于Oracle 设计有用的应用程序,则有必要理解Oracle是如何操作存储在系统中的数据的。PL/SQL就是这样一种实现数据操作的重要工具,用于从各种环境中访问Oracle数据库的一种比较复杂的编程语言[4]。由于它与数据库服务器集成在一起,其代码可以得到快速有效的处理。
⑴ PL/SQL的特点
SQL(Structured Query Language)结构化查询语言是第四代语言(4GL),描述的是应该做什么,而不是怎么做,此功能特性专门用来处理和检验关系型数据。例如,下面的SQL语句将从数据库中删除所有主修营养学的学生记录:
DELETE FROM STUDENTS WHERE major='Nutrition';
而面向对象语言,如C++或Delphi,是第三代语言(3GL),虽然融合了面向对象设计的原则,但在解决问题时是按一步接一步的算法,例如,用以下的语句来完成DELETE操作:
每种类型的语言都有其优点和缺点。一般而言,象SQL这样的第四代语言相当简单(与第三代语言相比),提供了较少的命令。第四代语言让用户不必关心那些由运行系统实现的底层数据结构和算法。但在某些情况下,3GL中的过程性结构对于某些程序的表达是非常有用的。这就是为什么使用PL/SQL的原因所在。它将4GL的强大性和灵活性与3GL的过程性结构融为一体。例如,用以下的PL/SQL程序完成上面的DELETE操作:
⑵ PL/SQL和网络流量
无论应用程序是客户/服务器还是三层模型,在客户端将请求直接或间接发送到数据库服务器时,使用PL/SQL语言实现要比使用单个SQL语言实现的网络流量要大大减少;应用程序执行速度快。因为前者是通过打包作为一个单独的单位发往服务器,后者要经过多次网络传输交互。
3.1.3 支持Web的PL/SQL
PL/SQL主要用于后台编程进行数据处理,而HTML语言主要用于WEB页面显示。Oracle ERP提供的支持Web的PL/SQL就是二者完美结合产品。它类似于ASP编程,程序员只要稍有一点网页制作经验,就很容易用其进行开发。支持Web的PL/SQL主要用于数据展示,如报表开发、数据查询。下面给出用Web的PL/SQL语言开发的产品组码监控调度程序,通过图2钢材产出组码、判定、入库监控所示,可以看出该开发工具的使用和输出效果:
3.2 数据来源及存贮方式
⑴ 手工录入:这主要指基本数据,如开单重量、发货的仓库等;
⑵ 从ERP系统获取:如销售订单、物料编码、物料事务处理明细;
⑶ 从数据采集系统获取:产成品基本信息,批号、批次属性、能源动力消耗;
⑷ 从二次开发的其他模块中获取信息:如验配结算系统从质量模块中获取检验信息,实际成本还原从销售发运平台、验配结算中提取结算单等。
3.3 接口方式
从数据交换方向上区分,有的是双向的,一方面从ERP系统提取数据到用户表,处理完毕后向ERP传回结果,如验配结算系统、销售发运平台;有的是单向的,只是从ERP系统提取数据,并不返回数据给ERP,如实际成本还原。
从数据传递形式上区分,有的采用接口表的方式,如物资暂估入库;有的采用API调用的方式,如产品完工入库;也有的是上述几种方法的结合,如:销售发运平台等;也有的直接更改系统表。
接口表形式直观,容易实现,按接口表要求填入数据由系统自动处理即可,速度快,适用于批量数据录入,但由于实现简单,容易产生锁表现象,需要经常在前台处理。
API调用实现相对复杂,需要手工控制、跟踪执行进程,执行速度销慢,但不容易产生锁表现象,适合于少量数据处理。
3.4 服务器体系结构
ERP硬件配置同MES硬件配置同步设计、实施。如图3所示为服务器体系结构。两台IBM P570小型机分别作为生产环境的应用服务器、数据库服务器;一台IBM P550小型机作为测试服务器;IBM存贮为ERP实现MES共享共用,占用不同的存贮空间;一台IBM3582磁带机用作备份。服务器与存贮设备通过交换机采用SAN方式进行网络联结,以提高IO性能。SAN是存储区域网(Storage Area Network)的缩写。SAN的核心在于通过网络方式进行多主机与多存储器间的整合和统一访问。
4 结束语
本文主要以钢铁行业的ERP二次开发作为研究对象,利用Oracle ERP系统二次开发所特有的开放性和灵活性,以及Delphi模板技术、PL/SQL强大处理数据功能和改造接口技术,实现ERP与各管理系统的完整集成,并与同步实施的MES进行无缝联接,使钢铁企业的计划、采购、生产指挥、质量控制、计量、销售、物流、财务、成本管理等实现完整的全流程信息化管理,达到物流、资金流、信息流的和谐统一,实现“产销一体化、财务业务一体化、数据集中管理”[6],所产生的效果突出。
参考文献:
[1] 罗鸿.ERP原理、设计、实施[M].电子工业出版社,2005.
[2] 牛光涛等.Delphi6.0网络实例编程[M].中国水利水电出版社,1995.
[3] 陈维军,王蕾等译.Oracle 9i PL/SQL 程序设计[M].机械工业出版社,2002.
[4] Dogglas Scherer等.Oracle9i数据库开发技术与技巧[M].机械工业出版社,1995.
[5] 郭振斌,黄业清.Delphi高级界面特效制作百例[M].中国电力出版社,1996.
[6] 杨建青,刘海青,张朝辉,制造型企业管理信息化技术研究[J].工业控制计算机,2003.16(1).