Я хочу создать функциональный модуль, который будет выполнять такой же запрос, например:
Выберите column_id из table_name, где column_name = name_value.
Я хочу передать table_name, имя столбца и name_value, поэтому независимо от того, какая таблица, я могу получить идентификатор предоставленного имени. Не могли бы вы рассказать, как это сделать в abap с помощью функциональных модулей?
0
Sterling Diaz
2 Июл 2013 в 23:14
1 ответ
Лучший ответ
Допустим, вы взяли на вход следующие параметры.
DATA: table_name TYPE string VALUE 'MARA',
column_id TYPE string VALUE 'MATNR',
column_name TYPE string VALUE 'MTART',
name_value TYPE string VALUE 'HALB'.
Во-первых, динамически создайте таблицу того типа, который вы выберете.
DATA: results TYPE REF TO data,
tablety TYPE string.
FIELD-SYMBOLS <results> TYPE STANDARD TABLE.
tablety = table_name && '-' && column_id.
CREATE DATA results TYPE TABLE OF (tablety).
ASSIGN results->* TO <results>.
Затем используйте динамический запрос для заполнения таблицы.
DATA: condition TYPE string.
condition = column_name && ` = name_value`.
SELECT (column_id) FROM (table_name)
INTO TABLE results
WHERE (condition).
Передайте обратно типизированную ссылку вызывающей программе.
2
Eric
3 Июл 2013 в 00:03
Похожие вопросы
Новые вопросы
dynamic
Динамические относятся к программам, которые действуют во время выполнения, а не во время компиляции.
RFC_READ_TABLE
?