使用SELECT数据源〜*语法的工作示例

时间:2016-01-18 13:42:28

标签: abap

我仍然感到困惑的是,SAP关键字文档中给出的示例在相应ABAP版本的系统中不被接受。

我试图在ABAP 7.40系统上运行SELECT datasource~* ...的{​​{3}},但收到错误

  

""这里不允许,因为它包含无效字符或者是关键字[...]

删除,时,错误为

  

没有名称为" *"的组件。 " *"

example中的示例是

TYPES BEGIN OF structure.
TYPES carrname TYPE scarr-carrname.
INCLUDE TYPE spfli AS spfli.
TYPES url TYPE scarr-url.
TYPES END OF structure.

DATA itab TYPE STANDARD TABLE OF structure WITH EMPTY KEY.

SELECT scarr~carrname, spfli~*, scarr~url
       FROM scarr INNER JOIN spfli ON scarr~carrid = spfli~carrid
       INTO TABLE @itab.

cl_demo_output=>display( itab ). 

什么是正确的例子?和/或:我的系统应该接受哪个ABAP版本(以及如何检查)?

2 个答案:

答案 0 :(得分:2)

您已提及的关键字文档指出

  

当使用data_source~ *时,语法检查在strict mode中执行,它比常规语句更严格地处理语句   语法检查。

严格模式的文档页面标题为

  

版本7.40,SP08中的严格模式

所以我认为你至少需要SAP_BASIS 740 SP08。

答案 1 :(得分:1)

我刚刚复制了该示例代码,它就像我的7.40 SP11系统上的魅力一样。您应该检查Netweaver具有的SP级别。它可以通过以下方式完成:

  1. 转到系统 - >主菜单中的状态
  2. SAP系统数据中的组件按钮,查看系统的组件版本。
  3. 你应该看到这样的事情:

    enter image description here

    SAP_ABA组件是您的ABAP服务器,SP-Level列代表您的AS的补丁级别。

    必须在文档的ABAP Release-Specific changes部分中看到必要的补丁级别,在这里我们可以看到此语法可用since 7.40, SP08。 没有可搜索的特定于发布的更改索引,因此您应手动搜索它。