似乎我们的大多数 SAP 程序员都在使用旧版本的 ABAP,这是面向对象之前的版本。我还注意到,OO 的语言更加简洁和现代(他们显然借此机会摆脱了已弃用的东西)。
由于该系统尚未推出,因此进行任何重新设计的时间都是现在而不是以后。
是否值得要求将新代码编写为 OO ABAP 程序?怎么把它卖给管理层?与非 OO 程序的接口是否运行良好?
(更新以注意我正在专门谈论新代码,特别是计划在明年)
如果它在生产中工作,请不要重写您的代码。不值得花时间或金钱,而且没有管理层(在一家大到可以运行 SAP 的公司)同意它。
除非您迁移到一个新的领域环境,否则您永远不会在 OO 中重新编写所有内容。SAP 的核心 ECC 模块甚至还没有做到这一点。期望能够使用您的自定义内容来做到这一点是不现实的。
我只是阅读 OO ABAP 并开始用它编写新程序。
OO ABAP 和程序 ABAP 可以很好地协同工作。您可以从过程程序中调用类和方法,并且(更有限,但)反之亦然。
我们为客户开发了许多新的、新鲜的 ABAP 代码,ABAP OO 的使用正在缓慢增长,但仍在增长。
说服新开发人员使用 ABAP OO 更容易,因为要学习的东西要少得多。此外,使用 OO ABAP 编写代码可以正确使用设计模式、高效的单元测试、UI 抽象(例如 SAPgui 和 WebDynpro 或 SAP 控制台),并大量减少文档。
此外,正如一些人之前所说,SAP 不会将他们的代码库重写为 ABAP OO。但他们肯定尝试过从 ME51 重写 ME51N,从 ME21 重写 ME21N,从 SO01 重写 SBWP。
此外,SAP 的所有新 API,如 ABAP 单元、ABAP 代理、新的 ALV、ABAP 的 WebDynpro 以及全新的增强和切换框架都是很好的例子(我认为),说明为什么应该关注它。
这取决于要编写的程序的大小。如果是一个没有太多数据库交互的大型“系统”,可能会有一些好处。对于较小的程序,我看不到“客观化”代码的任何优势。
它还取决于开发人员的技能和偏好。如果他们想“OO”,可能会有更好的环境。如果他们停留在“旧程序”的思维方式中,那么除了切换到 OO 之外,可能还有其他方法可以改进代码。
我经常看到的一个例子是关于“数据库应该做什么”(例如连接、排序、分组)与“我应该在代码中做什么”的讨论。
我刚刚找到 SAP SDN 中提到的白皮书 Esti 的副本:尚未使用 ABAP 对象?每个 ABAP 开发人员都应该重新审视它的八个原因
本文简要介绍了使用 ABAP OO 的好处。
尝试查找白皮书的副本:
还没有使用 ABAP 对象?Horst Keller 和 Gerd Kluger为每个 ABAP 开发人员重新审视它 的八个理由。
SAP OO 的一些最大优势,特别是对于新的 SAP 开发人员来说,是它迫使您比程序性 ABAP 更加明确。它使编写的代码更易于维护,并且对于来自更主流背景的程序员来说可能会感觉更熟悉。
旧的、经典的报告通常包含冗余编码。使用大量“复制和粘贴”构建了不同的报告。尝试找出哪些东西是多余的,然后逐步将它们从这些报告中提取到新的全局、可重用、设计良好的类中,并通过将现有代码替换为中央定义的“调用方法”来使旧报告更加紧凑和经过良好测试的 OO 逻辑。