唐钢ERP系统二次开发语言ABAP探究
来源:用户上传
作者: 马一然 佟红岩 吴卫亮
摘要:本文对ERP系统中二次开发语言ABAP做了整体介绍,阐述了ABAP语言的使用背景;详细的介绍了唐钢ERP系统中ABAP语言开发的内容;及使用ABAP语言的注意事项。
关键词:ERP系统 ABAP
中图分类号:TP311 文献标识码:A 文章编号:1007-9416(2012)01-0158-01
1、ABAP语言应用背景
1.1 ERP简介
ERP是Enterprise Resource Planning企业资源计划。是建立在现代企业的先进管理思想基础之上,利用信息技术为企业提供决策、计划、控制和业务的全方位、系统化解决平台。一般包括财务会计、管理会计、生产计划及管理、物料管理、销售等主要功能模块,系统的实施通过搭建资源共享、运转高效的集中管控平台,达到减少资源占用,提高资源利用效率目的。
1.2 唐钢ERP系统介绍
唐钢ERP系统采用是的SAP R/3系统。SAP全称Systems Applications and Products in Data Processing。既是公司名又是其产品-企业管理解决方案的软件名称。SAP R/3系统是SAP软件中的一个软件产品即ERP系统。
唐钢ERP系统实施了财务会计、管理会计、销售、采购、生产、质量等模块。实现了物资的全生命周期管理。尽管SAP R/3系统本身提供了相当强大的可配置功能,但是由于企业复杂的业务背景,特别是对各种报表的需求,依旧免不了二次开发。唐钢ERP系统使用的二次开发语言为ABAP。
2、ABAP语言介绍
ABAP Advanced business application program高级业务应用程序开发工具,是集成在SAP基础平台系统中的一种开发语言,用来进行二次开发。为客户提供定制化发开,以满足个性化需求。
作为一个解释型语言,ABAP/4被称为第四代支持结构化程序设计的语言。它合并了所有通常的控制结构和模块化概念。同时,它还支持面向对象的程序设计方法,这为ABAP的应用开发开拓了更广阔的空间。而且,它还可以实现和其他编程语言的合成,如VB、Java、C/C++等。SAP的大部分业务逻辑都是用ABAP来表达,是SAP的二次开发工具。ABAP与VB类似,具有解释执行的特点,但是ABAP又同时与JAVA等相同,具有编译后生成编译过对象的特点,其编译的结果将缓存在数据库中,多次执行时提高性能。
3、ABAP语言开发的内容
3.1 修改
修改是指直接修改SAP标准程序。唐钢ERP系统中,修改SAP标准程序的开发工作只占了绝少部分,只有当业务需求不被满足,并且标准程序中没有相应接口,程序员才会对标准程序进行修改,但这种做法要向SAP总公司提交修改申请,并得到批准获取修改请求码时,才可以修改标准程序。这种做法一般不建议使用,因为标准程序改了,升级以后被新版本覆盖了,还得再改一次。而且SAP标准程序较复杂,修改后需要经过一段繁杂的测试阶段,才可保证以后不会再出现BUG,才可以放心使用。
3.2 增强
增强是ERP系统设计时考虑到企业实际流程有可能和系统默认标准流程不同,在标准流程框架下专门留的接口,每个接口对应一个客户化函数,这些出口函数有标准处理程序传入的参数和输出参数,用户可根据系统输入参数做条件编写适合本企业流程的逻辑,然后通过输出参数传输回。增强程序在唐钢ERP系统中较为普遍,主要是为了满足业务的个性化需求。增强的开发在各个模块的实施中都存在。因为增强的开发都是针对SAP系统的标准功能做相应的调整,所以也需求在系统投入使用前,对该增强进行多次测试,以免因为增强程序的BUG,导致系统中的标准功能不能使用。譬如MM模块中订单创建的功能,有的业务要求订单中的价格不能超过该物料维护的信息记录中的价格,那么就可以通过在接口程序中写增强达到业务需求。
3.3 客户化开发
客户化开发是最常见的开发工作。针对用户的个性化需求,设计功能,程序员自行开发。对以下程序类型做介绍:
(1)报表程序。主要为了满足业务人员查询综合或明细业务数据的需求。ERP系统中有些标准查询报表只能查询某一块的内容或者是某一项的内容,不能大批量的、全面的对业务数据进行查询,这时就需要自开发一些报表程序。譬如MM模块中,业务人员需要查询某段时间范围内,某个采购组所创建的所有采购订单的收货金额、结算金额、到货未结算金额等明细信息。用TCODE-ME23N虽然可以查询单笔采购订单的详细情况,但不能查询多笔采购订单的情况,即使最终可以满足业务需求,但要完成这项统计工作并不是什么简单的事。这时就需要自开发报表,给业务人员一个清晰、方便的显示界面,用来减少业务人员的工作量。(2)表单打印。主要是为了满足业务需求,从系统中打印出纸质单据。软件开发员在ABAP程序中可以通过WORD输出,EXCEL输出,SAMARTFORMS输出等技术手段,为业务输出一张张纸质单据。譬如MM模块的出库单、入库单、合同打印等。表单的程序一般对格式的要求较严格。(3)交互程序。这是一类精简的基本列表,通过定位光标并输入命令,从该列表中调用业务详细信息或者调用出其他报表;当然用户也可以通过屏幕、控件实现业务功能操作,但这样的交互程序比较复杂,一般都是为了满足业务的特殊需求而开发的类似于系统某些标准功能的功能,程序中需要考虑的情况较繁琐。(4)Interface程序。用来开发的interface程序,本地数据或外部系统数据可以通过interface交互。主要是进行不同系统之间数据的传递工作。
4、使用ABAP开发语言需要注意的事项
唐钢ERP系统已经运行了四年多的时间了,数据库中的数据日益增多,庞大的数据量直接导致了数据的读取时间增加、读取速率降低,大大降低了ABAP程序的运行效率。甚至有些程序在运行时会因为超时而与数据库断开连接,用户在使用过程中需要长时间的等待,不仅影响了业务应用的效率,同时也影响了用户的使用,如何提高报表的运行效率,就是进行ABAP报表开发时应注意的问题,也是报表开发工作后期将要关注的问题。
作者简介
马一然(19830809),河北唐山市人,唐山钢铁集团有限责任公司计控管理部信息中心助理工程师,从事软件开发工作。
佟红岩(19840521),河北唐山市人,唐山钢铁集团有限责任公司计控管理部信息中心助理工程师,从事软件开发工作。
吴卫亮(19850607),河北唐山市人,唐山钢铁集团有限责任公司计控管理部信息中心助理工程师,从事软件开发工作。
转载注明来源:https://www.xzbu.com/8/view-1065374.htm