Abap 在PAI模块中调用本地类

Abap 在PAI模块中调用本地类,abap,dynpro,local-class,Abap,Dynpro,Local Class,我有一个包含4个在内的程序。一个top include(全局数据),一个用于pai模块,一个用于pbo模块,一个用于本地助手类 我将本地类的定义和实现放在include“localhelper类”中。现在,我想在用户使用 lcl_class=>get_instance( ) 我使用了单例模式 但当我想激活PAI模块时,会出现一个错误,说“类型lcl_类未知”。即使我在top include中设置了一个变量,在我尝试激活程序后也会出现相同的错误 有人知道怎么解决这个问题吗 谢谢你,并致以最

我有一个包含4个在内的程序。一个top include(全局数据),一个用于pai模块,一个用于pbo模块,一个用于本地助手类

我将本地类的定义和实现放在include“localhelper类”中。现在,我想在用户使用

lcl_class=>get_instance( )
我使用了单例模式

但当我想激活PAI模块时,会出现一个错误,说“类型lcl_类未知”。即使我在top include中设置了一个变量,在我尝试激活程序后也会出现相同的错误

有人知道怎么解决这个问题吗

谢谢你,并致以最良好的问候

帖木儿

已解决

我解决了这个问题。必须将PAI包含放在本地类助手包含之后。所以现在它就像:

INCLUDE Z_TEST_TOP             .    " global Data
INCLUDE Z_TEST_PBO.                 " PBO
INCLUDE Z_TEST_HELPER.              " Local Helper Class
INCLUDE Z_TEST_PAI.                 " PAI

在此序列之前,本地助手的Include类是最后一个。

只需要在主程序中对Include进行适当排序。

谢谢!解决了问题并编辑了我的问题:-)很高兴能提供帮助,尽管我的答案不正确。但我仍然认为在一个函数中使用包含一个不在其中的变量是个坏主意。看起来很危险。是的,你完全正确!最重要的是,如果你想在你的程序中使用一个本地助手类,你应该把定义放在你的top include中,把你的实现放在你的本地助手类include中。所以PAI模块知道你的助手类,因为顶级包含首先出现。。。以防您感兴趣:)