ABAP OO过时陈述:这些如何影响您现有的代码库?

时间:2009-03-10 20:49:33

标签: sap abap

自从从4.7升级到ECC6以来,ABAP编译器在OO上下文中使用某些语句变得更加严格。

例如,您不允许使用LIKE语句,而是必须使用TYPE,而内部表没有隐式标题行等。

更详细地解释了这些限制here

我的问题:此限制在多大程度上会影响您现有的代码库?

我们有自1998年以来在OO写的超过一千个“课程”,就当时可用。在大多数情况下,每个类在SE38中都有自己的包含,其中包括类定义和实现。

到目前为止,只要主程序在4.7 中预先存在,我们就可以成功更改并激活这些类。现在我们尝试在新的主程序中使用其中一个较旧的类进行回归测试,我们收到以下错误:

“在类和接口中,您只能使用”TYPE“来引用ABAP字典类型(不是”LIKE“或”STRUCTURE“)。”

此错误根据SAP语言的当前定义有效。

我想知道SAP解释器是否继续故意使用过时的语句运行旧代码,或者未来的补丁是否可以纠正这个“功能”并导致这些类停止编译。

2 个答案:

答案 0 :(得分:5)

每个开发对象都标记有与其开发的SAP版本对应的版本。您可以在版本管理或表VRSD中看到这一点。

据我所知,具体来说,在以后版本中使用非法语句的代码将在升级后继续存在并继续运行。

这就是为什么当你将4.5b中开发的包附加到NW700中开发的类时,它将无法编译。编译器知道这是新的dev,并相应地应用规则。

答案 1 :(得分:0)

ABAP社区已被告知很长一段时间(年),LIKE,工作区,RANGE等已经过时。

我认为SAP不会删除任何旧代码,但如果我负责,我不会指望它。

他们也可以让它停止编译:是的,他们会:可能不会。