SAP的ABAP作为开发语言有什么优势
SAP ABAP是一种面向业务逻辑的编程语言,主要应用于SAP系统的二次开发。SAP ABAP的优势在于:一、适用范围广;二、易学易用;三、程序丰富。ABAP编程语言最初被SAP的开发者用于开发SAP R/3平台。但它也被设计让SAP的客户用于增强SAP的软件应用–客户可以用ABAP编程开发自定义的报表和界面。
![](https://cdn-kb.worktile.com/kb/wp-content/uploads/2023/04/2023041502234218.jpg)
一、适用范围广
ABAP编程语言最初被SAP的开发者用于开发SAP R/3平台。但它也被设计让SAP的客户用于增强SAP的软件应用–客户可以用ABAP编程开发自定义的报表和界面。这个编程语言对于程序员来说很容易学习但并不是一个非程序设计人员可以直接使用的工具。编写ABAP程序需要良好的编程技巧和关系数据库方面的知识,如果知道面向对象设计的概念更好。
虽然SAP较早于1992年就发布了R/3,但ABAP仍可以用于为R/3系统编写程序。在20世纪90年代,随着计算机硬件的发展,越来越多的SAP的应用软件和系统都用ABAP来实现。一直到2001年,几乎所有的基本功能都是由ABAP编程实现的。在1999年,SAP在发布R/3 4.6版的同时也发布了一个对ABAP的面向对象扩展,叫做ABAP Objects。
SAP最新的开发平台NetWeaver同时支持ABAP和Java。
二、易学易用
和VB一样,ABAP是解释型的,如读者精通VB,学习ABAP应该毫不费力,倒是既然SAP是企业管理解决方案,ABAPer必须对企业管理流程熟悉。
解释型的另一好处是可以很好跟踪程序逻辑(使用/H),这对了解业务逻辑的实时追踪错误很有效. 和VB不同的是,VB跟踪时允许程序运行指针随意往回或往全拉而ABAP程序却不行,但是ABAP程序允许在运行时修改变量的值,这是编译程序不能做到的.当然通常编译比解释执行的速度会更快。
ABAP程序执行并不直接读取源代码,而是执行内部经过“生成”的描述,对于ABAP/4字典的修改激活后将触发内部描述的重新生成,如程序并没激活就执行原版本,或者出现错误(程序没激活可能造成ABAP Dumping ABAP)。
三、程序丰富
基于面向对象的风靡,ABAP在此方面也有相当反应,在SAP强大的软件包中提供了大量可重复使用的程序,读者也可定义类并使用它快速建立新的对象。
类似Java,ABAP开发的程序能运行于任何操作系统(Java有Java虚拟机,ABAP也有ABAP processor),多种数据库(比如在ABAP字典中实现了透明表对各种底层数据库表的映射,这样在ABAP层看到的透明表就和具体数据库无关),各种网络系统。
延伸阅读
运行环境
所有的ABAP程序都驻留在SAP数据库里。他们不像Java或者C++程序那样存储在一个单独的外部文件里,在数据库里所有的ABAP代码都以两种形式存在:可以用ABAP workbench查看和编辑的源代码和由ABAP运行环境载入和解释的“编译”代码(技术上更精确地说是“产生”代码)。当一段ABAP源代码名列前茅次被调用时会隐含的进行代码产生。如果稍后源代码改变了或者程序访问的对象改变了(比如数据库的表添加了新的字段),产生代码就会自动重新产生。
ABAP程序在运行时系统(SAP核心的一部分)的控制下运行在SAP应用服务器里。运行时系统负责处理ABAP语句,控制显示的逻辑序列和响应事件(比如,用户按一下屏幕上的一个按钮)。ABAP运行时系统的一个关键组件是数据库接口,它把ABAP的数据库无关语句(“开放SQL”)变成底层数据库管理系统可以理解的语句(“本地SQL”)。数据库接口处理ABAP程序和关系数据库之间所有的通信;它也有一些其他的作用,比如把经常访问的数据缓存到应用服务器本地的存储器里。