在运行时访问Super类的受保护属性

2020-08-27 08:37发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好,ALl 标准FM之一具...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,ALl

标准FM之一具有返回错误消息的类。 此类中的属性为Protected。 因此,我将此FM复制到自定义FM。 由于保护了类属性,因此我创建了一个Sub类,并将此标准类指定为Super类,并选择了继承。 在运行时,我能够将错误消息放入Super类,但无法将其移入子类。 你能帮忙吗?

标准班级:

lo_mapping-> exec_mapping_in()。

lo_mapping-> mo_message-> mt_message。 " Mt_message是我要使用的受保护属性。

我创建了自定义类:

数据:lo_sub类型参考ycl_replace_inherit。

如何将超类数据移至自定义类并使用受保护的属性?

7条回答
灬番茄
2020-08-27 09:00

请不要复制标准对象,这几乎总是一种不好的做法,因为您将与软件升级不同步。

相反,使用"增强框架"通常是更好的做法。

使用增强框架,您可以添加公共方法来访问私有或受保护的成员。 如果要避免将来升级时出现编译错误,请避免在自定义成员ZZ之前使用新的标准方法来产生冲突名称,并避免由于删除或更改了标准成员而导致的错误,请执行以下操作:

 将(ASTRIBUTENAME)指定为FIELD-SYMBOL()。
 如果sy-subrc = 0。
   结果= <属性>。
 万一。

 尝试。
 通话方式('METHODNAME')...
 捕获cx_root。
 ...
 ENDTRY。

一周热门 更多>