2012-01-18 96 views
2

我在SAP中学习/工作了近4个月。我一直在做这方面的一些报告和增强功能,但最近我开始处理与移动数据输入或RF有关的需求,它基本上包括将EAN和一些其他数据添加到dynpro 2502中。更改ABAP标准代码

我将程序SAPLLMOB中的dynpro 2502复制到SAPLXLRF 9502中,与用户出口MWMRF502相关,并编写了它的基本功能,但它没有像我期望的那样工作,因为此退出非常有限,它只允许我导入和导出一小部分数据难以完全按标准执行。

我一直在搜索整个互联网和很多人做自己的实现和其他只是简单地改变标准。我不知道如何制作自己的执行程序,因为我不了解所有程序,更改标准代码的替代方法会更有利于性能和开发时间,但正如我所引用的,我必须更改标准代码,这是我想要做的事情,只有当没有其他选择。

但问题是可以改变标准吗? ¿SAP实施中标准代码的更改频率如何? ¿什么是更好的选择?

在此先感谢。

回答

3

你在问正确的问题,而且你不仅没有考虑到你正在做什么的后果,而是在前进,继续研究!

就改变SAP标准而言,你通常不想复制一个对象来改变它。对于屏幕来说,SAP通常会创建一个用户出口,并带有可由客户修改的子屏幕。对于Web-Dynpro,您可以使用增强点和/或bADI来扩展功能。

尝试寻找下列之一:

  • 一个SAP巴迪在你想改变(事务SE18)的区域,
  • 用户退出让你改变了必要的屏幕( S)(SMOD交易),该功能内
  • 明确的增强点,
  • 在功能上隐含的增强点的一个

关于sdn.sap.com以及SAP帮助中有很多关于上述主题的文档。

如果没有可用的选项,您可能别无选择,只能修改(修复)SAP标准对象。为了能够更改SAP标准,您需要注册您必须在SAP OSS上进行更改的对象,并获取系统所需的修复密钥以允许您进行更改。始终确保SAP修改助理在进行更改时处于打开状态,这会在您修补或升级系统时让您的生活更轻松。

如果可能的话尝试找一位有经验的ABAP程序员来帮助你。

另见this question关于改变SAP标准代码:

编辑:于SDN托马斯·韦斯对增强和开关架构一个有用的blog series

+0

嗨,感谢您的回复,SAP允许我为此创建隐式增强,但它需要一个键(我输入了该键),现在我也可以修改dynpro。如果我继续改变我需要的所有内容并修改dynpro,这是否会被视为改变标准? ¿是否会得到SAP的支持? –

+0

根据最近与SAP的维护协议,即使您已经做出更改,实际上也必须支持您的整个系统。但最好始终保持您的更改尽可能孤立。更改屏幕仍将被视为改变标准,但只要您使用修改助手,稍后升级通常不会有问题。 SAP支持隐式增强点,我相信如果需要进行故障排除,他们可以将其关闭。尽管如此,尽可能谨慎地使用它。 – Esti

+0

作为附加说明:您是否需要密钥才能更改屏幕或添加隐式增强点?隐含的增值点应该已经存在,因此不需要修复密钥。 – Esti

3

务必确保绝对没有其他方法来实现您需要的功能。如果您确信这一点,那么可以从零开始编写自己的实施,或者更改SAP的代码。只需就不要复制将SAP的程序复制到客户名称空间,因为我可以向你保证这将变成维护的噩梦。您必须决定自己的实施是否值得进行更改,或者更改SAP的时间。

如果您决定更改SAP的代码,请记住系统升级时将会弹出所有更改以供审核,这需要花时间来评估和调整为新的SAP代码。

+0

我会对此进行修改 - 如果您正在讨论像报告一样简单的事情,克隆SAP程序就可以了。从维护角度来看,克隆数据录入程序是非常危险的。 –

+3

克隆永远都不是正确的方法。修补程序,增强包和升级不会应用于您的克隆对象,导致它们开始表现出与SAP标准不同的地方,而没有使用像SPAU这样的SAP工具来找到已经/应该更改的好处。 – Esti