SAP ABAP 数据字典及其应用(透明表/池表/簇表、视图、数据类型、域、搜索帮助、锁对象)
1.数据库表 Database Table
表类型 |
说明 |
透明表 Transparent Table |
透明表是指在ABAP字典里结构定义和在数据库中结构(表名、字段名称、字段数量等)完全相同的表。因此,对数据字典中透明表执行的增、删、查、改等操作相当于直接对数据库表执行增、删、查、改等操作。 |
池表 Pooled Table |
存储表(pooled table)可以用来存储控制数据。几个存储表可以组合成一个表存储池(table pool)。该表库和数据库中的一物理表库相一致。它包含了各组合库分派给它的所有记录。例如:SAP的存储表TBSL,表存储池ATAB。 |
簇表 Cluster Table |
SAP中会存在一些比较大的表,与此同时这些表可能同时会用到相同的主键字段,把这些相同的字段(可以定义一个“超级大”字段,把一堆数据放到这个字段里)取出来放到一个表里,这个表就是簇表。非常重要的一点是需要定义一个UNIQUE的KEY,可以通过定义指针来读取所需要的数据。例如:SAP的簇表BSEG,表簇RFBLG。 |
(1)透明表:
(2)存储表Pooled Table
(3)簇表(Cluster Table)
2.视图View
视图类似于一个虚拟表(不占用存储空间),通过关联一个或多个表的数据来创建。
视图类型 |
说明 |
数据库视图 Database View |
数据库视图通过INNER JOIN的方式把数据库表连接起来,连接条件需要自定义,可以类似的作为一个数据库表在ABAP里使用 |
投影视图 Projection View |
投影视图通过OUTER JOIN的方式,必须定义在单个透明表上,可以用于屏蔽一些字段(可以起到保护数据的作用) |
维护视图 Maintenance View |
维护视图通过OUTER JOIN的方式把数据表连接起来,主要用于在SM30中维护数据 |
帮助视图 Help View |
用于创建搜索帮助 |
3.数据类型Data Type
数据类型 |
说明 |
数据元素Data Element |
相当于定义在数据字典中的ABAP基本类型和引用类型 |
结构Structrue |
由数据元素字段构成 |
表类型Table Type |
用于定义程序中内表的结构和属性等 |
4.域Domain
域是所有数据对象设置的基础,它可以通过基本类型定义数据类型、格式、长度和初始值等属性
SAP基本预定义类型:
Type |
Permitted Places m |
Meaning |
ABAP Type |
ACCP |
6 |
Accounting period |
N(6) |
CHAR |
1-255 |
Character string |
C(m) |
CLNT |
3 |
Client |
C(3) |
CUKY |
5 |
Currency key |
C(5) |
CURR |
1-31 |
Currency field |
P((m+1)/2) |
DATS |
8 |
Date |
D |
DEC |
1-31 |
Calculation/amount field |
P((m+1)/2) |
FLTP |
16 |
Floating point number |
F(8) |
INT1 |
3 |
1 byte integer |
B |
INT2 |
5 |
2 byte integer |
S |
INT4 |
10 |
4 byte integer |
I |
LANG |
1 |
Language |
C(l) |
LCHR |
256- |
Long character string |
C(m) |
LRAW |
256- |
Long byte string |
X(m) |
NUMC |
1-255 |
Numerischer text |
N(m) |
PREC |
2 |
Accuracy of a quantity field |
S |
QUAN |
1-31 |
Quantity field |
P((m+1)/2) |
RAW |
1-255 |
Byte sequence |
X(m) |
RAWSTRING |
256- |
Byte sequence |
Xstring |
SSTRIING |
1-255 |
Character string |
String |
STRING |
256- |
Character string |
String |
TIMES |
6 |
Time |
T |
UNIT |
2-3 |
Unit key |
C(m) |
5.搜索帮助Search Help
Search Help |
说明 |
基本搜索帮助 |
基本搜索帮助只有一个搜索路径,基本搜索帮助必须定义命中列表从哪里读取数据,屏幕和选择方法之间如何实现数据交换,和联机的搜索帮助应该如何被定义。 |
集合搜索帮助 |
集合搜索帮助可以包含多个基本搜索帮助,所以可以有多个不同的搜索路径。 |
6.锁对象Lock Object
锁模式 |
说明 |
共享锁(S) |
允许多个用户同时读取数据,当某个用户修改数据之后,其它用户将不能再读取数据。同一时间内允许多个用户加共享锁,但是加了共享锁,就不能加其它排它类型的锁。 |
更新锁(E) |
被锁定的数据只能被一个用户来读取,不允许其他用户来进行锁操作。同一时间内非同一事务内的E锁和S锁都不允许加,但同一事务内的E锁和S锁可以加。 |
独占锁(X) |
同一时间内只能加一次X锁,在同一个事务内也只能加一次X锁。 |