Добрый день. Никак не могу разобраться с проблемой, надеюсь на вашу помощь.
Суть в следующем: из Экселя получаю список полей в RFC функцию в таблицу FIELDS. Но при попытке создания динамической таблицы с каталогом полей из таблицы FIELDS вылетает в дамп. При этом, если убрать строчки(помечены "@"), структура создается. В чем косяк?
Code:
DATA:
tmp_str TYPE string,
tmp_table TYPE TABLE OF string,
tmp_value TYPE string,
lv_table TYPE REF TO DATA,
lv_line TYPE REF TO DATA,
ls_lvc_cat TYPE lvc_s_fcat,
lt_lvc_cat TYPE lvc_t_fcat,
tmp_field_name TYPE string.
FIELD-SYMBOLS:
<fs_table> TYPE TABLE,
<fs_line> TYPE ANY,
<fs_field> TYPE ANY.
data : it_details type abap_compdescr_tab,
wa_details type abap_compdescr.
data : ref_descr type ref to cl_abap_structdescr.
* Get the structure of the table.
ref_descr ?= cl_abap_typedescr=>describe_by_name('Z-ТАБЛИЦА').
it_details[] = ref_descr->components[].
** Создание каталога полей для входящей структуры
LOOP AT FIELDS INTO tmp_field_name. " @
LOOP AT it_details INTO wa_details.
IF wa_details-name = tmp_field_name. " @
CLEAR ls_lvc_cat.
ls_lvc_cat-fieldname = wa_details-name .
ls_lvc_cat-datatype = wa_details-type_kind.
ls_lvc_cat-inttype = wa_details-type_kind.
ls_lvc_cat-intlen = wa_details-length.
ls_lvc_cat-decimals = wa_details-decimals.
APPEND ls_lvc_cat to lt_lvc_cat .
ENDIF. " @
ENDLOOP.
ENDLOOP. " @
* Создание входящей структуры
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = lt_lvc_cat
IMPORTING
ep_table = lv_table
EXCEPTIONS
generate_subpool_dir_full = 1
OTHERS = 2.