我试图通过在事务Z_MY_LOCAL_CLASS
中单击“本地定义/实现”在全局类(Z_MY_GLOBAL_CLASS
)中创建本地类(se24
)。
然后,将另一个类的源代码从其基于源代码的视图复制到单击“本地定义”按钮后显示的文本区域。
*"* use this source file for the definition and implementation of
*"* local helper classes, interface definitions and type
*"* declarations
class Z_MY_LOCAL_CLASS definition
public
final
create public .
public section.
class-methods SOME_STATIC_METHOD
importing
!IS_IS type Z_SOME_TYPE
returning
value(RS_RETURN) type Z_SOME_TYPE .
protected section.
private section.
ENDCLASS.
CLASS Z_MY_LOCAL_CLASS IMPLEMENTATION.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Static Public Method Z_MY_LOCAL_CLASS=>SOME_STATIC_METHOD
* +-------------------------------------------------------------------------------------------------+
* | [--->] IS_IN TYPE Z_SOME_TYPE
* | [<-()] RS_RETURN TYPE Z_SOME_TYPE
* +--------------------------------------------------------------------------------------</SIGNATURE>
method SOME_STATIC_METHOD.
"" some coding
endmethod.
ENDCLASS.
尝试激活编码时,我收到以下消息:
当前CLASS POOL中PUBLIC类的名称必须为“ Z_MY_GLOBAL_CLASS”,而不是“ Z_MY_LOCAL_CLASS”。
或德语:
名称在PUBLIC-Klasse im aktuellen CLASS-POOL中被命名为“ Z_MY_GLOBAL_CLASS”,在“ Z_MY_LOCAL_CLASS”中处于正常状态。
这是什么意思?
答案 0 :(得分:5)
在SAP / ABAP中,错误消息通常不会描述实际错误。在您本地类的定义中,更改以下行
class Z_MY_LOCAL_CLASS definition
public
final
create public .
对此
class Z_MY_LOCAL_CLASS definition final create public.
它应该编译。因此,问题在于仅允许全局类包含public
。将源代码从现有全局类复制/迁移到本地类时,您必须删除这些行。