SAP系统的开发语言--ABAP简介

来源:互联网 发布:vb中变量名的命名规则 编辑:程序博客网 时间:2024/06/02 07:29
 这是我给公司内部杂志投稿的一篇文章,目的在于向不了解SAP开发的同事介绍SAP的开发技术。发在这里,希望对各位希望学习SAP开发技术的朋友有帮助。

ABAP的全称是Advanced Business Application Programming-高级业务应用编程语言,mySAP ECC 6.0的底层源代码,全部是使用ABAP编写的。因此,想要对系统进行二次开发,包括功能开发,报表开发,借口开发,都要使用到ABAP语言。

首先,我介绍一下APAB开发平台的相关特性

从某种意义上讲,ABAP不仅仅是一门开发语言,ABAP DEVELOP WORKBENCHABAP开发平台)不仅仅是一个开发工具,而更像是一套基于SAP myERP软件套件的完整的client/server开发环境。对比一下,微软的Visiual Studio就是一个开发环境,VB,VC++等是开发工具。

我们看一下SAP开发环境的三层架构示意图

Presentation(表示层)是面向用户的程序界面,由很多的SCREEN组成,Application(应用层)处理用户逻辑,向下连接Database(数据库层)获取数据。一般的开发是在Application层面进行的,根据用户需求的不同修改或添加相应的业务逻辑。当某些业务要求无法通过系统默认的输入界面实现的时候,也可以在Presentation层添加特定的用户界面。

得益于和SAP的紧密结合,ABAP在报表开发方面效率很高。在数据库访问方面,ABAP可以使用native SQLopen SQL两种方式。使用native SQL,开发环境会把SQL语句直接发送给底层的数据库,可以获得较快的执行速度,但是由于没有经过开发环境的校验,出现错误的时候很难跟踪。open SQL是集成在ABAP开发环境中的SQL语言,可以和ABAP代码写在一起,结合使用。在ABAP字典中实现了透明表对底层数据库表的映射,我们在ABAP中使用open SQL进行操作的时候是与具体数据库类型无关的。open SQL通过读取透明表,实现对数据库表的操作。

下面从编程语言本身讲一下ABAP的语言特点。

ABAP是一种解释型语言,和VB有一点类似,可以跟踪程序的执行过程,还可以在跟踪过程中对变量赋值,这对于追踪程序的Bug是很有帮助的。当然,由于解释型语言的自身缺陷,相对于编译型的语言,ABAP的执行速度比较慢。最初几个版本的ABAP,并不支持面向对象技术,所编写的程序都是面向过程的。随着技术的发展,ABAP在新的版本中,加入了对面向对象技术的支持。

现在Java作为通用的开发语言,为众人所熟悉,我们看一下ABAPJava在语法和所支持的特性方面,有那些相同点和不同点。

1.       ABAPJava相似,支持类的定义:

JavaClass myClass{

        Public myClass(string id){

}

}

ABAP:CLASS myClass DEFINITION.

      PUBLIC SECTION.

      Constructor IMPORTING id TYPE string.

      ENDCLASS.

2.       定义变量的方式上,两者有一定的区别

Javaprivate int myNum

ABAP:PRIVATE SECTION.

      DATA myNum TYPE i.

3.       ABAP也可以抛出异常

Javapublic void getMynum(int myNum, myClass example)

       Throws myClassException.

ABAP: PUBLIC SECTION.

        METHODS:

          getMynum IMPORTING

                     myNum

                     example TYPE REF TO myClass

                   RAISING cx_myClass

从以上几点可以看出,ABAPJava除了语法格式的不同,在面向对象技术的支持方面有着很大的相似性。

当然,两者之间还是存在很多的区别的,最大的区别是,ABAP是集成在SAP系统上的,底层是SAPABAP虚拟机,用来开发C/S架构的程序。Java属于通用的开发语言,可以进行各种领域各种平台的开发,底层是JVM,一般开发基于B/S架构的程序

原创粉丝点击