ABAP简介
ABAP简介
中文名称:高级企业应用编程语言
英文全称:Advanced Business Application Programming
德语全称:Allgemeiner Berichts Aufbereitungs Prozessor(通用报表预处理器)
概述:一种高级编程语言,起源于20世纪80年代,由德国软件公司SAP开发,主要用作SAP的编程,现行版本为ABAP/4,同时支持面向过程和面向对象。(SAP:一个服务器软件,是主要用来开发商务应用的SAP NetWeaver平台的一部分)
历史:
ABAP作为一种面向特定应用的第四代编程语言,其产生的最初目的是为企业生成简单打印报表程序,原本作为一种报表语言应用在SAP R/2上 — 一个为大型公司在大型机上建立原材料管理和财务会计管理商务应用提供帮助的平台。ABAP第一次引入了“逻辑数据库”的概念,它在基本的数据库层提供了更高级的抽象。
ABAP编程语言被SAP的开发者用于开发SAP R/3平台。它的设计也为SAP客户增强SAP的软件应用提供了工具,客户可以通过ABAP开发自定义的报表和界面。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。
ABAP的运行机制:
所有的ABAP程序都是驻留在SAP数据库里,不像其他语言程序那样独立的存储于单独的外部文件里。在数据库里代码以两种形式存在:一是可以用ABAP workbench查看和编辑的源代码;二是由ABAP运行环境载入和解释的“编译”代码(技术上更精确地说是“产生”代码),当一段ABAP源代码第一次被调用时会隐含的进行代码产生,如果稍后源代码改变了或者程序访问的对象改变了(比如数据库的表添加了新的字段),产生代码就会自动重新产生。
ABAP程序在运行时系统(SAP核心的一部分)的控制下运行在SAP应用服务器里。运行时系统负责处理ABAP语句,控制显示的逻辑序列和响应事件。ABAP运行时系统的一个关键组件是数据库接口,它把ABAP的数据库无关语句("OPEN SQL")变成底层数据库管理系统可以理解的语句(“NATIVE SQL”)。数据库接口处理ABAP程序和关系数据库之间所有的通信;它也有一些其他的作用,比如把经常访问的数据缓存到应用服务器本地的存储器里。
ABAP程序类型:
1.报表程序:这种程序遵循一个相对简单的编程模型,用户选择性输入一系列参数,然后程序根据输入的参数以一个交互式列表的形式产生一张报表。报表程序的输出是交互式的而不是被动的显示;用户可以通过使用ABAP语言深入挖掘其功能来获得某些数据更详细的视图,或者通过菜单命令触发更深层次的处理(如排序、筛选等)。这种方式有很大的优势,特别是对于那些需要处理大量信息但又要以很灵活的方式来检查这些信息的用户,这样他们就不会再被限制到一种固定的显示形式或者大小上无法管理的列表形式的报表中了。这种方便的开发交互式报表的方式是ABAP语言的一大重要闪光点。
2.在线程序(也叫模块池):这种程序不产生列表,而是使用一系列的屏幕(用户看到的实际的物理图像)来定义更加复杂的用户交互模式。每个屏幕还有一个“流逻辑”;这是指由屏幕触发的ABAP代码,比如初始化屏幕,响应用户请求的应答和控制模块池的屏幕之间的序列的逻辑。每个屏幕都有自己的流逻辑,每个流逻辑都分为“PBO”(Process Before Output 输出前处理)和“PAI”(Process After Input 输入后处理)部分。在SAP的文档中,术语“dynpro”(动态程序)用来表示这种屏幕和流逻辑的结合。 在线程序并不是通过名字调用的,而是和一段事务代码联系在一起。用户可以通过自定义、角色依赖、事务菜单来触发它们。
除了报表和在线程序外,以类库、功能库和子程序池的形式开发共享代码段也是可以的。
——据维基百科整理改编