更改ABAP标准代码的最佳方式是什么

更改ABAP标准代码的最佳方式是什么,abap,Abap,我在SAP学习/工作了近4个月。我一直在做一些报告和改进,但最近我开始研究一个与移动数据输入或射频相关的需求,它基本上包括向dynpro 2502添加EAN和一些其他数据 我将程序SAPLLMOB中的dynpro 2502复制到SAPLXLRF 9502中,与用户出口MWMRF502相关,并对其基本功能进行了编程,但它没有像我预期的那样工作,因为该出口非常有限,它只允许我导入和导出一小部分数据,很难完全按照标准执行 我一直在互联网上搜索,很多人都有自己的实现,其他人只是简单地改变了标准。我不知道

我在SAP学习/工作了近4个月。我一直在做一些报告和改进,但最近我开始研究一个与移动数据输入或射频相关的需求,它基本上包括向dynpro 2502添加EAN和一些其他数据

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

我一直在互联网上搜索,很多人都有自己的实现,其他人只是简单地改变了标准。我不知道如何实现我自己的实现,因为我不了解其中的所有流程,改变标准代码的替代方案对于性能和开发时间都会更好,但正如我所引述的,我必须改变标准代码,只有在没有其他选择的情况下,我才会这样做

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


提前感谢。

始终确保没有其他方法来实现您所需的功能。如果您确信这一点,那么要么从头开始编写自己的实现,要么简单地更改SAP的代码。只要不要将SAP的程序复制到客户名称空间,因为我可以向您保证,这将成为维护的噩梦。您必须自己决定是否值得花时间构建自己的实现,还是更改SAP


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

您提出了正确的问题,而且您不只是在不考虑所做工作的后果的情况下继续前进,这是一件好事。继续研究

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

请尝试查找以下内容之一:

  • 要更改的区域中的SAP bADI(事务SE18)
  • 用户出口,允许您更改必要的屏幕(事务SMOD)
  • 功能中明确的增强点
  • 功能上的一个隐含增强点
sdn.sap.com上以及sap帮助中都有大量关于上述主题的文档

如果这些对象都不可用,您可能别无选择,只能修改(修复)SAP标准对象。为了能够更改SAP标准,您需要在SAP OSS上注册您必须更改的对象,并获得系统允许您进行更改所需的修复密钥。在进行更改时始终确保打开SAP Modification Assistant,这将使您在修补或升级系统时的生活更加轻松

如果可能的话,试着找一个有经验的ABAP程序员来帮助你

另请参见有关更改SAP标准代码的信息:


编辑:SDN上的Thomas Weiss在增强和切换框架方面提供了帮助。

我想修正一下,如果你谈论的是像报告这样简单的东西,克隆SAP程序是可以的。从维护的角度来看,克隆数据输入程序要危险得多。克隆从来都不是正确的方法。补丁、增强包和升级将不会应用于您的克隆对象,导致它们的行为开始与SAP标准不同,而无法使用SAP工具(如SPAU)查找已更改/应更改的内容。您好,感谢您的回复,SAP允许我为此创建隐式增强,然而,它需要一个键(我输入的),现在我还可以修改dynpro。如果我继续使用隐式增强和修改dynpro来更改所有需要的内容,这会被视为更改标准吗??是否会得到SAP的支持?根据与SAP签订的最新维护协议,他们实际上必须支持您的整个系统,即使您进行了更改。然而,最好是尽可能地隔离您的更改。更改屏幕仍将被视为更改标准,但只要使用“修改助手”,以后升级通常不会有问题。SAP支持隐式增强点,我相信他们有办法在需要时排除故障时将其关闭。尽管如此,还是要尽量少用。作为补充说明:你是需要按键来改变屏幕还是添加隐式增强点?隐式增强点应该已经存在,因此不需要修复密钥。当我尝试修改屏幕时,SAP要求我输入密钥。可能存在重复的