ABAP Object是SAP R/3 4.0版本之后发布的概念,该概念有双层含义。一是指整个ABAP运行时的环境,另一方面代表ABAP语言中新增加的面向对象部分。
1. 运行时环境
用ABAP Objects表示ABAP运行时的环境,意味着SAP系统本身也逐步趋向以面向对象的方式实现,并将进一步“面向对象”化。引入面向对象后的ABAP Workbench由不同的开发工具组成,而且使用功能模块本身也可以实现特定功能代码的封装。Business Object Repository(BOR,商业对象仓库)则允许用户创建SAP商用对象,供系统内部和外部(如通过DCOM和CORBA语言)接口使用。
2. 语言扩展
传统ABAP主要使用结构化程序设计技术,这种设计中,数据存储在结构化的数据库表中,通过面向过程的程序访问并操纵它们。
ABAP Objects是ABAP语言中的一套面向对象语句稽核,主要思想是将数据和功能整合在对象中,但并不和以往存在的ABAP语法存在冲突。可以将新的OO语句添加到原有的ABAP程序中,也可以在ABAP Objects中使用“传统”的ABAP语句。
ABAP 语言的面向对象部分是基于java和C++的OO模型进行改造而成的,并与DCOM和CORBA等外部对象接口相互兼容。SAP商业对象和GUI对象在系统内部就业分别实现面向对象技术,并可以与ABAP Objects相整合。
在介绍整个语法体系之前,下面给出一个以面向对象技术实现的简单程序,其功能是在屏幕上进行简单输出。
REPORT z_simple_object.
*class declarations
CLASS application DEFINITION. "类声明
PUBLIC SECTION.
METHODS: show_text.
PRIVATE SECTION.
DATA text(100) TYPE c VALUE 'This is my first ABAP object.'.
ENDCLASS.
*class definitions
CLASS application IMPLEMENTATION. "类实现
METHOD show_text.
WRITE text.
ENDMETHOD.
ENDCLASS.
*global data declaration
DATA ob_app TYPE REF TO application.
* event block start-of-selection
START-OF-SELECTION.
CREATE OBJECT ob_app.
CALL METHOD ob_app->show_text. "类调用
该程序中包括类的定义和实现,类对象的创建,以及类方法调用的整个过程,通过调用该方法实现了数据在屏幕中的输出。该程序的输出界面与普通ABAP程序无任何区别,也输出在普通列表屏幕中:
This is my first ABAP object.