哪个功能模块用于根据特定条件从表中检索数据



在ABAP中,哪个功能模块用于根据某些条件从表中检索数据?

好吧,如果你正在编写ABAP,你只需直接在代码中编写你的OpenSQL语句。OpenSQL是ABAP语言的一流部分。

但是如果你问如何使用函数模块读取表…

你可以使用RFC_READ_TABLE函数模块进行任意的表读取。令人高兴的是,它支持rfc。它允许你直接传入'where'子句。

唯一需要注意的是,数据在一个只有512个字符宽的表结构中返回。如果从大于这个宽度的表中读取,数据将被截断。此外,它是一个平面字段,因此需要手动解析每个表列/字段。

所以,不是特别友好,但在没有其他选择时很有用。

在4.6C之前的所有版本中都可以使用

通常,您使用ABAP的OPEN SQL语句编写它。这与普通的SQL语句非常相似。编写函数模块要比使用函数模块简单得多,除非你想在远程系统上调用函数模块(远程函数调用,可以从SAP或非SAP系统调用)。

是这样的:

TYPES:
  BEGIN OF ty_material,
    matnr TYPE mara-matnr,
    attyp TYPE mara-attyp,
  END OF ty_material.
DATA:
  gt_material TYPE STANDARD TABLE OF ty_material,
  gs_material LIKE LINE OF gt_material.
*--This is an OPENSQL statement--*
SELECT matnr
       attyp
  INTO TABLE gt_material
  FROM mara
 WHERE attyp BETWEEN ('01' AND '03').
LOOP AT gt_material
  INTO gs_material.
  WRITE: / gs_material-matnr, gs_material-attyp.
  CLEAR gs_material.
ENDLOOP.

您可以使用以下fm:

RS_VARIANT_CONTENTS - Values of a variant returned in a table 
RS_VARIANT_EXISTS - Checks whether a variant exists for a report 
RS_VARIANT_TEXT - Returns short description of variant 
RS_VARIANT_VALUES_TECH_DATA - Reads variant parameters of a report 

你也可以试试这个

SD_COND_T685_SELECT - to fetch the access sequence for the given condition type.
SD_T682I_SINGLE_READ - to fetch the condition tables. 

相关内容

  • 没有找到相关文章

最新更新