如何公开全局 class 方法的 return 类型?

How to expose the return type of a global class method?

我写了一个 ABAP 方法,return让我在自定义 table 中进行了一些分析。 现在我想从 RFC 模块调用这个方法。

目前一切顺利 - 该方法运行良好,但我很好奇如何 return 这个 table? 我是否必须在 SE11 中创建一个 table / 结构......才能使其工作,否则我无法引用此 table 类型,或者是否有更简单的方法? 我对 ABAP 很陌生,所以我不知道最佳做法。

m_analyses = new zcl_manalyses(  ).
data(lt_m_analyses) = m_analyses->analyse_m_data(
    budat_from  = budat_from
    budat_to    = budat_to
).

您首先必须在 ABAP Dictionary (SE11) 中创建一个结构,然后在 SE11 中创建一个 table 类型。

然后在 table 类型的行类型中引用该结构。

尝试使用新的全局 table 类型,应该可以。 (输入“TYPE”)

TYPES 语句不仅可以出现在方法体内,也可以 inside the class definition,在这种情况下可以从其他地方使用 class_name=>type_name 访问它(如果它是 public):

CLASS cl_user_registry DEFINITION PUBLIC.
  PUBLIC SECTION.
   TYPES:
     BEGIN OF user,
       firstname TYPE string,
       lastname  TYPE string,
     END OF user,
     users TYPE STANDARD TABLE OF user.

   METHODS:
     get_current_users
       RETURNING users.
ENDCLASS.

DATA current_users TYPE cl_user_registry=>users.
current_users = cl_user_registry=>get_current_users( ).