Dynamic 从任何表中动态搜索
我想制作一个进行相同查询的功能模块,例如: 从表\u name中选择列\u id,其中列\u name=名称\u值 我想传递表名、列名和名称值,这样,无论是什么表,我都可以获得所提供名称的id。Dynamic 从任何表中动态搜索,dynamic,abap,opensql,Dynamic,Abap,Opensql,我想制作一个进行相同查询的功能模块,例如: 从表\u name中选择列\u id,其中列\u name=名称\u值 我想传递表名、列名和名称值,这样,无论是什么表,我都可以获得所提供名称的id。 您能告诉我如何使用功能模块在abap中实现这一点吗?假设您将以下参数作为输入 DATA: table_name TYPE string VALUE 'MARA', column_id TYPE string VALUE 'MATNR', column_name TYPE s
您能告诉我如何使用功能模块在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>.
将泛型引用传回调用程序。为什么要这样做?是否有任何理由不使用
RFC\u READ\u表
?
DATA: condition TYPE string.
condition = column_name && ` = name_value`.
SELECT (column_id) FROM (table_name)
INTO TABLE results
WHERE (condition).