点击此处---> 群内免费提供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。
如何将超类数据移至自定义类并使用受保护的属性?
请不要复制标准对象,这几乎总是一种不好的做法,因为您将与软件升级不同步。
相反,使用"增强框架"通常是更好的做法。
使用增强框架,您可以添加公共方法来访问私有或受保护的成员。 如果要避免将来升级时出现编译错误,请避免在自定义成员ZZ之前使用新的标准方法来产生冲突名称,并避免由于删除或更改了标准成员而导致的错误,请执行以下操作:
确定。 您建议使用新方法来增强标准类并使用它。
没有确切的代码会有点困难。
但是您可以尝试使用此方法( 您想在Abap单元中测试受保护的方法)
将your_class定义类延迟。
将the_super_class定义类本地朋友your_class
...
Phanindra Annaparthi
只需替换/scwm/cl_mapin_id_replace 带有子类的代码将不起作用,因为 mo_message 隐藏了属性。 lo_mapping-> mo_message 的解释是什么? 它不具有某种获取消息的getter方法吗?
您是否使用其他方法来解决此问题? 复制标准代码确实应该是最后的选择...
此外,使用COMMENT函数对其他人的响应做出反应,而ANSWER仅用于发布解决方案。
让我说出完整的逻辑。
感谢大家的快速响应。 除了复制FM becoz之外,我没有其他选择,这些消息最后已清除。 我也无法创建隐式增强。
此l o_mapping-> mo_message没有正确的方法来获取此数据。 此数据仅在属性中。
一周热门 更多>