vvk написал(а):
Только осторожнее с данными конструкциями
TYPE-POOLS: mrm.
DATA dref TYPE REF TO data.
FIELD-SYMBOLS: <rbkpv> TYPE mrm_rbkpv.
CREATE DATA dref TYPE mrm_rbkpv.
ASSIGN dref->* TO <rbkpv>.
ASSIGN ('(SAPLMR1M)rbkpv') TO <rbkpv>.
...
UNASSIGN <rbkpv>.
Для 4.7 - это, имхо, самый правильный вариант.
Только забыл про WA.
Филд-символс таблицы - это таблица без хидерлайна.
Надо вот так (проверено неоднократно - работает; рекомендую занести в FAQ).
Вариант 1: использовать констркцию ASSIGN LOCAL COPY OF... TO...
Так сделано в REUSE ALV.
Вариант 2:
=========================
FUNCTION-POOL /A111/DB_TOOLS. "MESSAGE-ID ..
DATA:
g_t_tabdata type ref to data,
g_wa_tabdata type ref to data .
field-symbols: <g_t_tabdata> type table,
<g_wa_tabdata> .
=========================
Где-нибудь потом:
========================
create: data g_t_tabdata type table of (P_NAME OF_TYPE_TABLE),
data g_wa_tabdata type (P_NAME OF_TYPE_TABLE) .
assign: g_t_tabdata->* to <g_t_tabdata>,
g_wa_tabdata->* to <g_wa_tabdata>.
.................
.................
loop at <g_t_tabdata> into <g_wa_tabdata>.
.....
endloop.