Просто используйте хороший RTTS для этого. Вы можете создать ссылку и читать прямо в нее
FIELD-SYMBOLS: <itab> TYPE STANDARD TABLE.
DATA: ref_wa TYPE REF TO data,
ref_rowtype TYPE REF TO cl_abap_structdescr,
ref_tabletype TYPE REF TO cl_abap_tabledescr.
ref_rowtype ?= cl_abap_typedescr=>describe_by_name( tabname ).
CREATE DATA ref_wa TYPE HANDLE ref_rowtype.
READ TABLE <itab> REFERENCE INTO ref_wa INDEX 1.
или создайте символ поля на основе этой ссылки и используйте его в READ TABLE
ASSIGN ref_wa->* TO FIELD-SYMBOL(<fsym_wa>).
READ TABLE <itab> ASSIGNING <fsym_wa> INDEX 1.
Обратите внимание, я объявил <itab>
как STANDARD таблицу, чтобы избавиться от полученной операции с ошибкой индекса.
ОБНОВЛЕНИЕ : для создания структуры из <itab>
объекта используйте следующий синтаксис:
ref_tabletype ?= cl_abap_typedescr=>describe_by_data( <itab> ).
ref_rowtype ?= ref_tabletype->get_table_line_type( ).
Последние две строки будут идентичны.