深い構造体にマクロを埋め込むタスクがあります。構造体の名前が似ていて、インデックス付きの単純なループで構築できます。 は例えば、構造体は、ルート・レベル1・レベル2-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-シート1-level2- levelsyインデックス-LEVEL4が
が見つからない場合は素晴らしく、しかし数値リテラル作品を示しています。
ここではどのような構文を使用する必要がありますか?
追加:ここは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.はい、私はマクロがundebuggable、危険であり、完全に使用すべきではないことを知っていますが、私はこの特定の問題に興味があり、ベストプラクティスアドバイスではありません。
PS: 'fill'マクロで5番目のパラメータ(level4)を使用していません... – Marius