数据表为什么又叫透明表?(ABAP)
家如果经常进行 SAP 的报表开发,对透明表就一定不会陌生,对透明表可以进行各种标准的数据表操作,获得可一个报表开发需求时,只要找到相关的透明表,也就可以着手开发报表了。但是肯定有很多朋友对透明表这个称呼感觉到很奇怪——明明是个存储实际数据的物理表,为什么是“透明”的呢?
这就要从解释“透明”这个词开始。透明,指光线能够通过的,比如玻璃、清水等等。到了近代科学中,为了解释比较抽象的科技概念,将这个词做了一些引申,指从使用者角度来看可以忽略的事物,这些事务多数是一些逻辑概念上的通讯协议。比如,TCP/IP 协议在我们访问一个网站时就可以看成是透明的,GSM/CDMA 协议在我们使用手机时可以看成时透明的,有线电视协议在我们看电视时可以看成是透明的……这样,我们就比较容易理解透明表了。
透明表,在 ABAP 字典里指那些结构定义与在数据库中的结构完全相同的表,也就是说,对于 ABAP 中的透明表,必定在后台数据库中存在一个同名的数据库表,并且这两个表中的字段数量和名字也完全相同。由于这个特性,所有对 ABAP 字典中的透明表的数据操作都相当于直接对数据库表进行操作,这就是“透明”的含义。
不过需要注意的是,从 R/3 4.0 版以后,ABAP 字典中透明表的字段顺序可能与数据库的字段顺序不一致,但是这个不一致并不会影响用户使用 SELECT * 这种语法从数据库表读取数据,这时读出的字段顺序都会由 ABAP 运行时环境自动根据 ABAP 字典中的定义重新排列。