如何公开全局 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( ).
我写了一个 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( ).