自从从 4.7 升级到 ECC6 以来,ABAP 编译器在 OO 上下文中对某些语句的使用变得更加严格。
例如,您不允许使用 LIKE 语句,而是必须使用 TYPE 并且内部表没有隐式标题行等。
这些限制在此处进行了更详细的说明
我的问题:此限制在多大程度上影响您现有的代码库?
自 1998 年以来,我们在 OO 中编写了超过一千个“类”,只要它当时可用。大多数情况下,每个类在 SE38 中都是它自己的包含,类定义和实现一起包含在这个包含中。
到目前为止,只要主程序在 4.7 中预先存在,我们就可以成功更改和激活这些类。现在我们试图在一个新的主程序中使用这些旧类之一进行回归测试,我们得到以下错误:
“在类和接口中,您只能使用“TYPE”来引用 ABAP 字典类型(而不是“LIKE”或“STRUCTURE”)。”
根据 SAP 语言的当前定义,此错误有效。
我想知道 SAP 解释器是否继续故意运行带有过时语句的旧代码,或者未来的补丁是否可能更正此“功能”并导致这些类停止编译。