ABAP DICTIONAR的作用可以分为三类:type definition,DB objects和为ABAP程序提供服务。ABAP DICTIONARY可以为ABAP程序提供对象锁定,输入帮助和文本帮助等服务。在ABAP DICTIONARY中有三种TYPE:data elements,structure和table type。
ABAP DICTIONARY可以为ABAP PROGRAM提供的服务有:
l 通过search help为屏幕字段提供input help(f4)
l 通过为data element维护documentation来为屏幕字段提供field help(F1)
l 通过设置foreign key为屏幕字段提供input check
l 创建lock objec就可以在程序中设定和释放锁了
l 通过设置表的buffer来提高访问表或视图的性能
l 通过设置logging可以自动记录对表记录的修改
Domain用来描述技术属性比如type和length以及value range,而data element则是在domain的基础上为其加上了business context。
Transparent table在abap dictinary中的字段顺序和其在数据库中的字段顺序可以不同。ABAP PROGRAM可以通过两种方式使用transparent table。一种是通过open sql来访问数据库中的数据,另外一种是将其视为structure type来定义变量或本地类型。
在include链中只能有一个transparent table这就意味着不能在transparent table中include transparent table。
Transparent table的technical setting主要设置了一下内容:
l Data Class:决定了table在数据库中存储的物理区域(oracle的tablespace)
最重要的四种data class是:master data, transaction data, organizational data和system data
其中system data是系统本身需要的比如abap program source就存在system data中。另外还有customer data class如user,user1等用于客户定制开发
l Size Category:预计了表中将存入多少条记录
当表被创建时,initial extent就会被创建,任何表的initial extent都是一致的。如果表的空间不够用时就需要为表增加新的extent,这个extent的大小便由size category决定,合适的size category既避免了不停的扩展extent又减少了空间的浪费。
l Buffering:表中的记录是否被缓存,以及缓存的方式
l Logging:对表记录的更改是否记录日志
为了激活对表的loging除了激活表的log flag外还需要设置系统的参数rec/client,可以通过事务代码SCU3来查看表的change history。不过一旦激活了表logging就会影响系统的性能。