【IT168 技术文档】
ABAP,Advanced Business Application Program。
ABAP是在SAP专用平台上的开发语言。SAP R/3系统是SAP公司研制的大型商用ERP(Enterprise Resource Planning)软件。SAP最初开发ABAP/4语言仅为内部使用,为应用程序员提供优化的工作环境,经过不断的改进和修改以满足商业领域的需要。现在,ABAP/4已成为SAP开发所有自己应用程序的仅有工具。
作为一个解释型语言,ABAP/4被称为第四代支持结构化程序设计的语言。它合并了所有通常的控制结构和模块化概念。同时,它还支持面向对象的程序设计方法,这为ABAP的应用开发开拓了更广阔的空间。而且,它还可以实现和其他编程语言的合成,如VB、Java、C/C++等。SAP的大部分业务逻辑都是用ABAP来表达,同时,ABAP也是SAP的二次开发工具。
ABAP的特性
ABAP的特性包括:
·ABAP/4支持商业数据类型和操作。可以用特殊日期和时间字段进行计算。系统会自动执行必需的类型转换。
·ABAP/4包含一个叫Open SQL的SQL子集。用Open SQL,可以读取和访问数据库表,与所用的数据库系统无关。
·ABAP/4允许定义和调用子程序,也可以调用其他程序的子程序。参数能够以各种方式从子程序传递或传递到子程序。
·ABAP/4包含一种特殊子程序,叫做功能模块。可以在中央库中创建和维护功能模块。在调用程序和子程序之间,功能模块有一个明确定义的数据接口,能够以调用程序的独立模式进行分别测试。
·ABAP/4报表程序用于分析数据库表中的数据。这种分析的结果可以显示在屏幕上或发送到打印机上。逻辑数据库支持报表程序。
·ABAP/4将对话程序组织为包含对话模块的模块池。每个动态程序(由一个屏幕及其流逻辑组成的“动态程序” )都基于一个ABAP/4对话程序。流逻辑包含对ABAP/4对话模块的调用。
与ABAP相关的SAP BASIS结构
SAP R/3系统是一个典型的三层架构系统,包括:
·表现层(Presentation Layer):这是SAP用户和R/3系统交流的接口,用户在这一层对SAP系统进行操作。这层将用户的命令或者操作传送给R/3系统,然后系统进行相应的处理后把数据返还给用户。
应用层(Application Layer):这层包括一个或者多个应用服务器和一个消息服务器。每一个应用服务器包括一系列服务以便运行应用程序。所有的服务分置在这些应用服务器之中,其实用户需要的只是其中的一个应用服务器,多个服务器之间传递信息以决定用户到底需要的是哪个服务器的服务。
数据库层(Database Layer):这里就是SAP系统的核心,存放了所有SAP系统的数据。
SAP支持很多数据库系统,包括Microsoft SQL Server、ORACLE、Informix、DB2等主流数据库系统。
ABAP的第一个程序
首先要介绍事务代码(Transaction Code)的概念:
在SAP中,每一个功能基本上都对应一个事务代码,可以输入相应的事务代码来执行相应的功能,事务代码在SAP Menu下面的输入框中输入。
第一个程序,Hello World。
1.用ABAP Report来实现:
(1)进入SAP系统—〉SE38。
(2)输入程序名z_hello,选择Create。
注意:自己开发的程序一定要用z或者y开头,这是因为SAP在升级的时候不会覆盖这些程序。
(3)这时会弹出一个对话框,输入Title,选择Type为Executable Program。
(4)然后会弹出一个对话框,选择开发类(Package)。如果有自己的开发类,输入就可以;没有直接点下面的Local Object。
(5)ABAP编辑器出现,输入代码:
“Write: 'Hello,World!' .” 。
(6)按Ctrl+F2:语法检查;Ctrl+F3:激活;F8:执行。
到这里,ABAP的第一个程序就完成了,很简单!
2.用 ABAP Dialog来实现:
比较麻烦,在这里详细介绍怎么建立SCREEN。
(1)建立一个Dialog程序,步骤同上,只不过在Type里选择Module Pool。
假设程序名为:Z_SCREEN。
(2)执行SE51,在Program里输入程序名称:Z_SCREEN;
在Screen Number里输入屏幕的号码:9000;
然后点Create。
(3)在Short Description中输入描述:hello world screen。
(4)点Layout,调出屏幕编辑器,建立一个标签,输入Hello World。
(5)点激活,或者Ctrl+F3。
(6)执行SE93:建立事务代码:输入z_hello,点Create,会出现对话框,输入Short Text,选择Program and Screen,然后输入建立的程序名以及屏幕号,这里是Z_SCREEN,9000
(7)点保存,会出现对话框,选择Local Object。
好了,执行z_hello。不过这个程序还没有退出的功能,后面会慢慢加上去。
最后,综述:
·ABAP编程不是简单的编程,SAP中最主要的语言:一个是ABAP,一个是Java。
·ABAP以后的路应该往OO方向发展,还有Java方面、ITS集成、最新BSP技术等,也是ABAPer需要了解和掌握的。
·开发包括几大部分,最简单的Report和Dialog,还有很多其他的,比如Web、Workflow、BAPI以及和其他PC系统的接口。
·Report最简单,最重要的是提高代码执行效率。(SD的报表是多多的,表也是大大的,月报表是运行慢慢的,以后发展的路就是提高SD报表运行的效率。)
·Dialog不常用,除非需要开发自己的一套系统,只是使用SAP平台。
·Workflow要和HR相结合,所以需要理解HR的业务内容。
·Web的东西更多,EP只是一个平台,不能满足所有的功能。