简体   繁体   English

abap:从现有的内部表创建动态内部表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM