微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

BASE CORRESPONDING 需要哪个 Netweaver 版本?

如何解决BASE CORRESPONDING 需要哪个 Netweaver 版本?

我有以下一段代码

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.

在编辑器中,它看起来应该是可编译的,因为所有内容都以正确的方式突出显示

Coding in the editor

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

Compilation errors

我至少需要哪个版本才能编译这段代码

解决方法

CORRESPONDING 构造函数运算符 was introduced with Netweaver 7.40 SP05

BASE 添加到表 was introduced with NetWeaver 7.40 SP08VALUE 构造函数运算符。

因此,当您将 SAP_BASIS 组件修补到 7.40 Service Pack 08 时,您应该能够同时使用这两个关键字。

,

多亏了 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.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。