Задача состоит в том, чтобы заполнить глубину структуры макросом, где имена структурных компонентов схожи и могут быть построены простым циклом с индексом. Например, структура корня level1-level2-level3-level4Передача параметров макросу с контуром
Я хочу заполнить его со следующими вложенными макросов
DEFINE iterate_menges.
do &4 times.
fill &1 &2 sy-index level4.
enddo.
END-OF-DEFINITION.
DEFINE fill.
cs_root-sheet&1-&2-level&3-&4 = 'some_value'.
END-OF-DEFINITION.
Но эта концепция не работает и sy-index
рассматривается как текст. Ошибка
компонент cs_root-sheet1-level2- levelsy-индекс-level4 не найден
показан, однако числовые литералы работают замечательно.
Какой синтаксис следует использовать здесь?
ADDITION: вот пример фрагмента, который я нашел на SCN, и он отлично работает. Почему так?
DEFINE ADD_MAPPING.
p_c = &1.
CONDENSE p_c.
CONCATENATE 'p_old' p_c INTO p_c.
ASSIGN (p_c) TO <fs>.
WRITE <fs>.
END-OF-DEFINITION.
DO 14 TIMES.
ADD_MAPPING sy-index.
ENDDO.
P.S. Да, я знаю, что макросы являются неразрешимыми, небезопасными и полностью не должны использоваться, но меня интересует эта конкретная проблема, а не рекомендации по лучшей практике.
PS: Я не вижу, что вы используете этот 5-й параметр (level4) в макросе 'fill' ... – Marius