gpt4 book ai didi

abap - 作为 FM 参数的函数方法调用的语法?

转载 作者:行者123 更新时间:2023-12-04 20:35:08 25 4
gpt4 key购买 nike

我有以下一段代码。

REPORT ZZY.

CLASS lcl_main DEFINITION FINAL CREATE PRIVATE.
PUBLIC SECTION.
CLASS-METHODS:
convert_to_xstring
IMPORTING
i_param1 TYPE i
i_param2 TYPE i
RETURNING
VALUE(rv_result) TYPE xstring,
main.
ENDCLASS.

CLASS lcl_main IMPLEMENTATION.
METHOD convert_to_xstring.
ENDMETHOD.

METHOD main.
DATA: lt_binary_tab TYPE STANDARD TABLE OF x.

DATA(lv_result) = convert_to_xstring( i_param1 = 1 i_param2 = 2 ).

CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = lcl_main=>convert_to_xstring(
EXPORTING
i_param1 = 1
i_param2 = 2
)
TABLES
binary_tab = lt_binary_tab.

ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.
lcl_main=>main( ).

不属于功能模块调用的功能方法调用可以这样编写。
DATA(lv_result) = convert_to_xstring( i_param1 = 1 i_param2 = 2 ).

但是,当我想完全按照上面写的那样使用它时
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = lcl_main=>convert_to_xstring( i_param1 = 1 i_param2 = 2 )
TABLES
binary_tab = lt_binary_tab.

我收到以下语法错误。

Field "CONVERT_TO_XSTRING(" is unknown. It is neither in one of the specified tables nor defined by a "DATA" statement. "DATA" statement.



在这种情况下,编译器似乎需要一些指导来区分属性和方法。为什么编译器在不写 EXPORTING 的情况下允许这样的情况是模棱两可的?
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = lcl_main=>convert_to_xstring( EXPORTING i_param1 = 1 i_param2 = 2 )
TABLES
binary_tab = lt_binary_tab.

最佳答案

abap的设计相当糟糕。有类似功能方法调用的东西,但你不能将它与所有命令结合使用。例如 WRITE command 不能与函数式方法调用结合使用。这似乎是某种与函数方法调用的“部分兼容”。
我不知道为什么(也许 sap 开发人员喝醉了),但这只是我们必须忍受的事实。

关于abap - 作为 FM 参数的函数方法调用的语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37396695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com