abap: создать динамическую внутреннюю таблицу из существующей - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть следующая внутренняя таблица:

VBELN   POSNR   ELEMENT VALUE

4711    10      E1      12      
4711    10      E2      23

Есть ли возможность в ABAP (Framework, Class и т. Д.), Поэтому я могу быстро создать новую внутреннюю таблицу во время выполнения, которая будет выглядеть следующим образом:

VBELN   POSNR   E1  E2

4711    10      12  23

Буду признателен за любую помощь.

Спасибо и БР.

1 Ответ

0 голосов
/ 06 ноября 2018

Да. Вам нужны службы времени выполнения 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.
...