Как заменить строки добавления в ABAP 7.5? - PullRequest
1 голос
/ 09 мая 2019

У меня есть следующий фрагмент кода, который я хотел бы написать в функциональном стиле:

 data(lt_es) = me->prepare_process_part_ztoa1( ).
 APPEND LINES OF me->prepare_process_part_protocol( ) to lt_es.

Как переписать код выше в новом ABAP 7.5?

Ответы [ 2 ]

4 голосов
/ 09 мая 2019

Используйте конструкцию LINES OF (доступно с ABAP 7.40 SP 8 ).

Например, это может быть что-то вроде этого:

lt_es = VALUE #( BASE me->prepare_process_part_ztoa1( )
                 ( LINES OF me->prepare_process_part_protocol( ) ) ).

Будь лучше / проще оригинала, это другой вопрос:)

2 голосов
/ 09 мая 2019

Это также можно сделать без BASE. Однако необходимо явно указать тип (использование # заканчивается синтаксической ошибкой).

REPORT ZZZ.

DATA: lt_t1 TYPE string_table,
      lt_t2 TYPE string_table.

DATA(lt_t3) = VALUE string_table( ( LINES OF lt_t1 ) ( LINES OF lt_t2 ) ).

Было бы интересно узнать, может ли это быть более производительным, чем использование BASE, если используется, например, в цикле.

...