我想动态获取动态表的结构。获取表格没问题,但我坚持获取表格的结构。
DATA: lo_dynamic_table TYPE REF TO data.
FIELD-SYMBOLS: <lt_table_structure> TYPE table,
<ls_table_structure> TYPE any.
CREATE DATA lo_dynamic_table TYPE TABLE OF (lv_my_string_of_table).
ASSIGN lo_dynamic_table->* TO <lt_table_structure>.
// some code assigning the structure
现在我要执行这个命令:
SELECT SINGLE * FROM (lv_my_string_of_table) INTO <ls_table_structure> WHERE (lv_dynamid_where_field).
如果有任何其他解决方案,我会同意的。
最佳答案
使用 RTTS。
运行时类型服务
使用这个框架,您可以在运行时获得所需的类型。
http://wiki.scn.sap.com/wiki/pages/viewpage.action?pageId=42965
所需的类应该是 CL_ABAP_TABLEDESCR 甚至 CL_ABAP_DATADESCR。
他们会为您完成工作。
看起来,您正在获取一个 ddic 表名,并希望从该表名中动态选择数据到通用内部表中。
因此,如果您已经获得了一个不错的 ddic 名称,那么 rtts 的使用就更加简单了。 因为你有 ddic 名称。
通常还有很多功能模块(大多在 namespace 前缀“RPY_*”中)。 在那里你肯定能找到一个,它决定了一个表的结构,是否包含includes等等。 但是,首先尝试类型描述符,我会从 cl_abap_tabledescr=>get_table_line_type 开始。
关于abap - 动态获取动态表的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19319345/