[英]abap: create dynamic internal table from existing one
I have following internal table: 我有以下内部表:
VBELN POSNR ELEMENT VALUE
4711 10 E1 12
4711 10 E2 23
Is there any possibility in ABAP (Framework, Class, etc), so I can fast create a new internal table at runtime which would look like this: ABAP中是否有任何可能性(框架,类等),所以我可以在运行时快速创建一个新的内部表,如下所示:
VBELN POSNR E1 E2
4711 10 12 23
Would appreciate any kind of help. 将不胜感激。
Thanks and BR. 谢谢,BR。
Yes. 是。 What you want are the ABAP Runtime Type Services (RTTS), more precisely the ABAP Runtime Type Creation (RTTC) . 您需要的是ABAP运行时类型服务(RTTS),更准确地说是ABAP运行时类型创建(RTTC) 。
DATA(vbeln_descriptor) = CAST cl_abap_datadescr( cl_abap_typedescr=>describe_by_name( 'VBELN' ) ).
DATA(posnr_descriptor) = CAST cl_abap_datadescr( cl_abap_typedescr=>describe_by_name( 'POSNR' ) ).
DATA(components) = VALUE abap_component_tab( ( name = 'VBELN'
type = vbeln_descriptor )
( name = 'POSNR'
type = posnr_descriptor ) ).
DATA(value_descriptor) = cl_abap_typedescr=>describe_by_name( 'VALUE' ).
LOOP AT vbeln_rows INTO DATA(vbeln_row).
INSERT VALUE #(
name = vbeln_row-element
type = value_descriptor )
INTO TABLE components.
ENDLOOP.
DATA(row_descriptor) = cl_abap_structdescr=>get( components ).
DATA(table_descriptor) = cl_abap_tabledescr=>create( row_descriptor ).
DATA itab TYPE REF TO data.
CREATE DATA itab TYPE HANDLE table_descriptor.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.