ABAP编程语言-概览

ABAP  编程- 概览

ABAP 是SAP为SAP商业应用开发而设计的一种编程语言,其对象组件使面向对象编程成为可能

ABAP on AS ABAP实例

在SAP系统中,ABAP 是 Application Server ABAP (AS ABAP) 的编程接口

  • 在使用ABAP编程语言之前,SAP系统必要要安装AS ABAP作为应用层, AS ABAP给ABAP应用程序提供一个独立于平台的运行时环境
  • AS ABAP 必须和数据库层或数据库关联起来,其核心数据保存在标准数据库中
  • 基于UI的数据访问需要表示层展示(SAP GUI 或者浏览器),

除了这些之外, AS ABAP 还有以下的通信组件

  • Remote Function Call(RFC )

这是AS ABAP最原始的一个功能接口, RFC 是调用程序调用非本系统(SAP)函数的一种方式, 调用程序所在的系统可以是SAP系统,也可以是其他类型第三方系统, 在 AS ABAP中, RFC通过FM(function modules)实现, 在其他系统中也是通过类似FM的特殊编程函数实现的

  • Internet Communication Manager (ICM)

用于支持 AS ABAP通过 HTTP/HTTPS/SMTP协议直接和Internet交互 , ICM 用于支持网络Web展示组件如WDA SAPUI5 BSP, ICM 还支持AS ABAP分别作为Web services的服务端和客户端, ICM 可以通过实现相关接口访问

  • ABAP Channels

ABAP Channels 是一种基于事件的用于ABAP实例和Internet之间通信的框架,其中ABAP Messaging Channels (AMC) 用于不同ABAP实例之间交换信息, 另一方面,ABAP Push Channels (APC),支持AS ABAP和Internet通过WebSocket协议和TCP socket 协议实现双向通信,

在AS ABAP中,ABAP程序的主要角色是处理和格式化来源于数据库的数据,并通过通信层与数据展示层实现数据展示和交互

更多信息参考ABAP Programs in AS ABAP,

编程模型

ABAP 支持以下:

  • 基于接口和类的面对对象编程模型
  • 基于函数模块和子例程的面向流程编程模型

两个模型都是可以兼容对方的

备注

对于新项目和已有项目的改造,都通过使用ABAP面向对象来完成

数据库访问

ABAP作为商业应用编程语言的一个基本属性,在于访问数据库是完全集成到语言本身的,

数据建模

ABAP 数据建模使那些在数据库上有变式的商业应用有创建数据模型的可能

  • ABAP Dictionary是一个包含数据模型及其依赖关系的持久化库, 它们是可见的而且可以在所有的其他开发对象上使用,在AS ABAP数据库中,ABAP Dictionary 负责管理database tables, views, and lock objects等对象
  • ABAP Core Data Services (ABAP CDS) 是通过对ABAP Dictionary增加CDS概念的实现 , 跨平台的CDS DDL和CDS DCL 使定义 CDS views, CDS table functions, 和associated CDS roles, plus semantic enrichment成为可能。

数据库访问

ABAP是完全继承了数据库的访问操作:

  • ABAP SQL可以访问ABAP Dictionary和CDS定义的对象,这种访问是跨平台并且集成到语言当中的;在ABAP运行环境中,可以通过table buffer实现速度优化
  • AMDP 可以用来管理HANA数据库当中的procedure和table function
  • Native SQL 可以通过ADBC用面向对象的方式访问大部分类型的第三方数据库

语言特性

ABAP特别为商业软件批量处理数据而设计的第4代编程语言,,除了集成数据库访问,与其他基本语言相比,它还提供了以下特性

  • 用来存储和处理临时数据的内表
  •  ABAP运行时环境集成了LUW概念,多个用户可以并行访问数据库
  • 通过Remote Function Call接口可以实现和其他编程环境的集成
  • 实现了与XML的集成接口

ABAP语言集成了这些功能对于程序的静态检查和性能很有好处, 这意味着ABAP包含比基本编程语言多得多的语言元素

多语言支持

AAP程序的多语言功能是通过将源代码中的文本提取到独立的文本组件当中实现的, 然后根据运行时的环境语言动态加载,这回决定程序的精确行为,例如文本的排序顺序(不同语言下可能不同)。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平