Создание таблицы через VALUE на основе самой таблицы
1 2 3 4 5 6 7 8 9 10 |
DATA: lt_comp TYPE string_table. lt_comp = VALUE #( ( `123` ) ). lt_comp = VALUE #( FOR <ls> IN lt_comp ( |{ <ls> }-123| ) ). cl_demo_output=>write( name = 'Присвоение с ошибкой' data = lt_comp ). lt_comp = VALUE #( ( `123` ) ). lt_comp = VALUE #( LET lt_tab = lt_comp IN FOR <ls> IN lt_tab ( |{ <ls> }-123| ) ). cl_demo_output=>display( name = 'Присвоение без ошибки' data = lt_comp ). |
При использовании оператора VALUE следует быть внимательным в случае если мы формируем таблицу на основе её же данных:
If the VALUE operator is used as the source of an assignment to an internal table, this table is first initialized after the evaluation of the LET expression (if available) or is assigned the content of itab.