![06e7f258e04080b156981cecc593f7d3.png](https://i-blog.csdnimg.cn/blog_migrate/e815a7a28ee62c3ef05eda142d2571ed.jpeg)
ABAP是SAP开发的基础语言,这在SAP简介和SAP开发的生产力两篇文章中已经介绍过,下面这个系列我们就一起来看看ABAP开发的细节。
如果你已经有一些其他语言的开发经验,1-2周即可上手开发ABAP报表。但和大多数语言一样,ABAP属于上手容易精通难,ABAP包罗万象,涉及企业管理软件的方方面面,要成为专家,需要数年的修炼才可以,技术上的提高是一方面,还要结合业务的理解,这就要在项目中慢慢积累了。
ABAP 主要是用来处理企业数据和业务逻辑的,这就免不了要和数据库打交道,我们就从ABAP的数据字典开始讲起吧。
SAP是跨数据库的,可支持市面上大部分主流数据库,比如Hana,Oracle,DB2,MySql, Sqlserver等,那这是如何做到的呢?原来ABAP并非直接在数据库底层直接操作,而是在应用服务器通过数据字典来定义和管理数据对象,数据字典定义的表,一般称为透明表,SAP会在底层数据库创建和透明表相同结构的表。简单来说,SAP是通过底层代码映射解决了跨数据库的问题。各位可以感受下,要实现这种映射并非易事,需要强大的基础架构做支撑。
常见的数据库对象有表空间,表,字段,索引等,除开这些,ABAP字典还有一些自己独创的概念,主要是域(Domain),数据元素(Data Element),结构(structure),透明表(Transparent Table),表类型等。它们之间的关系如下图:
![e158b10ab179d14c600dff405e89a50e.png](https://i-blog.csdnimg.cn/blog_migrate/05d7709346ca7bbf3f89bb43a3818349.jpeg)
域(Domain): 用于定义字段的技术属性,包括数据类型、格式、长度、初始化值等。域在定义时可使用SAP的预定义类型。
![8bedf2a46f47a7890012adad6f5754bc.png](https://i-blog.csdnimg.cn/blog_migrate/24358eb7e37aeef5625ccdd19f75f2eb.jpeg)
这些预定义类型最常用的是CHAR(字符),DEC(金额), INT4(整型), NUMC(数字字符),CURR(货