我想制作一个功能模块来进行相同的查询,例如:
从table_name中选择column_id,其中column_name=name_value。
我想传递table_name、列名和name_value,因此,无论表是什么,我都可以获得所提供名称的id。你能告诉我如何在abap中使用功能模块来做到这一点吗?
假设您将以下参数作为输入。
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).
将泛型类型的引用传递回调用程序。