我有下面这段代码。
REPORT zzz.
CLASS lcl_main DEFINITION FINAL CREATE PRIVATE.
PUBLIC SECTION.
CLASS-METHODS:
main.
ENDCLASS.
CLASS lcl_main IMPLEMENTATION.
METHOD main.
DATA:
lt_t100 TYPE t000_t,
ls_t000_template TYPE t000.
lt_t100 = VALUE #( BASE ( CORRESPONDING #( ls_t000_template ) ) cccategory = 'P' ).
lt_t100 = VALUE #( BASE lt_t100
( VALUE #( BASE ( CORRESPONDING #( ls_t000_template ) ) cccategory = 'E' ) )
).
ENDMETHOD.
ENDCLASS.在编辑器中,它看起来应该是可编译的,因为所有内容都以正确的方式突出显示。

即使这不能编译。我在这里的假设是我没有足够高的SAP Netweaver版本。

我至少需要哪个版本才能编译这段代码?
发布于 2021-03-10 23:16:56
CORRESPONDING构造函数运算符was introduced with Netweaver 7.40 SP05。
将BASE添加到表was introduced with NetWeaver 7.40 SP08的VALUE构造函数运算符。
因此,当您将SAP_BASIS组件修补到7.40Service Pack08时,您应该能够同时使用这两个关键字。
发布于 2021-03-11 00:42:12
多亏了Philipp的评论,我意识到我做的完全错了。
下面是正确的语法,它可以完美地编译。
REPORT zzz.
CLASS lcl_main DEFINITION FINAL CREATE PRIVATE.
PUBLIC SECTION.
CLASS-METHODS:
main.
ENDCLASS.
CLASS lcl_main IMPLEMENTATION.
METHOD main.
DATA:
lt_t100 TYPE t000_t,
ls_t000_template TYPE t000.
lt_t100 = VALUE #( ( VALUE #( BASE CORRESPONDING #( ls_t000_template ) cccategory = 'P' ) ) ).
lt_t100 = VALUE #( BASE lt_t100
( VALUE #( BASE CORRESPONDING #( ls_t000_template ) cccategory = 'E' ) )
( VALUE #( BASE CORRESPONDING #( ls_t000_template ) cccategory = 'C' ) )
( VALUE #( BASE CORRESPONDING #( ls_t000_template ) cccategory = 'D' ) )
( VALUE #( BASE CORRESPONDING #( ls_t000_template ) cccategory = 'S' ) )
).
ENDMETHOD.
ENDCLASS.https://stackoverflow.com/questions/66567161
复制相似问题