如何以编程方式列出ABAP中的所有表?

时间:2016-10-31 17:36:11

标签: sap abap

所有表格都可以用t代码SE16和表格DD02L列出。但是如何以编程方式访问该列表呢?

3 个答案:

答案 0 :(得分:2)

直接访问数据库表几乎不是一个好主意,因为您必须处理您可能根本不知道的各种技术问题 - 例如,活动/非活动版本。您还将绕过所有可能与您个人无关的安全和授权检查,但通常是不受欢迎的。要获取表的列表,可以使用功能模块RPY_TABLE_SELECT。此功能模块将负责版本处理,并以您选择的语言提供说明。

答案 1 :(得分:1)

以某种方式改进了Alex代码并将其作为选项:

SELECT tabname
 FROM DD02L 
 INTO TABLE @DATA(itab)
WHERE TABCLASS = 'TRANSP'.

LOOP AT itab ASSIGNING FIELD-SYMBOL(<FS>).
 WRITE:/ <FS>.
ENDLOOP.

改进了几个方面:使用了倾斜声明,添加了字段符号,省略了SELECT *WHERE IN等等。
SAP中的表只有TRANSP类,INTTAB类属于结构。

注意:样本自ABAP 7.40,SP08起作用。

答案 2 :(得分:0)

正在进行的搜索产生了以下代码段:

DATA ITAB TYPE TABLE OF DD02L.

SELECT * FROM DD02L INTO TABLE ITAB WHERE TABCLASS IN ('TRANSP', 'INTTAB').

WRITE :SY-SUBRC .

DATA FS TYPE DD02L.

LOOP AT ITAB INTO FS.

  WRITE:/ FS-TABNAME.

ENDLOOP.

表格描述见表DD02T。