自古以来,SAP 一直以敏锐的市场洞察力著称,能够随时代之风而调整其产品的命名策略。这一策略的演变,正如当初从 SAP HANA Cloud Platform,逐步演变为 SAP Cloud Platform,直至现今的 SAP Business Technology Platform (简称 SAP BTP) 一般,顺应着市场的每一次微妙变化。而在 SAP 历史长河中,ABAP 无疑是最为光辉夺目的一颗明珠,其德文全称最初为 “Allgemeines Beleg Auswertungs Programm”,即 “处理评估文档的通用程序”。伴随着 SAP R/2 到 SAP R/3 的成长,它的名字也变为 “Allgemeiner Berichts Aufbereitungs Prozessor”,最终定格为我们今天熟知的“Advanced Business Application Program”,即 “高级业务应用程序编程”。
遥想当年,2007 年,我初涉 ABAP 开发领域之时,QQ 签名还是那句略带自嘲的 “Alawys Busy Always Problems”。
1972 年,在德国,几位怀揣远大理想的志士因一项伟大的构想走到了一起,意图为企业运营创造出一种革命性的软件解决方案。也许那时他们未曾预见到,这一构想将成就一家在全球企业管理软件领域独占鳌头的公司。SAP 的创立者们,五位 IBM 的前员工,1976 年已汇聚了约 30 名员工,支持着 SAP R/1 上大约 50 个客户。那时的 SAP R/1,被称为 SAP RFM,是 RF(财务会计)和 RM(库存管理/发票校验)模块的衍生工具。SAP R/1 的 R 代表 “Real Time”——实时处理。在当时的技术框架下,SAP R/1 中 1 的含义正是指系统的三层架构——展示层、应用层与数据库层——合而为一,运行于同一物理服务器之上。这在当时的技术环境中,尤为先进。
那时的 ABAP 仅仅是初出茅庐,正如诸葛孔明在未经历火烧博望坡和火烧新野之前,其潜力尚未完全显露。ABAP 在 SAP R/1 中,仅用来创建根据客户主数据和事务数据的报表,虽未成大器,但已展现其未来的巨大潜力。
1979 年,SAP 发布了第二代 ERP 系统——SAP R/2。ABAP 在其中初试锋芒,扮演了至关重要的角色。随着 ABAP 调试器和屏幕编辑器的出现,它逐渐发展为一个完备的集成开发环境。R/2 时代的 ABAP,为现代 ABAP 贡献了一笔珍贵的财富——交互式代码调试器。1979 年的同类编程语言中,这种功能并不常见。SAP R/2 的时代,ABAP 编写了大约一半的代码,剩余部分则由汇编语言完成。
进入 1980 年,SAP 的员工数已增长到 80 多名,搬迁至新的 Walldorf 办公室。SAP R/2 中的数字 2 代表两层结构,即表现层和应用层、数据库层分别部署在不同的服务器上,这标志着 SAP R/2 作为企业软件解决方案的成熟。
1992 年,SAP 发布了 SAP R/3,即 SAP ERP 系统的客户机/服务器版本,成为 SAP 历史上最受欢迎的产品之一。SAP R/3 的数字 3,代表展示层、应用层和数据库层分别部署。这一架构发展标志着 SAP 系列软件进入成熟期,并确立了 ERP 软件的行业标准。随着 Windows 操作系统的蓬勃发展,SAP 引入了 SAPGUI 作为 SAP R/3 的用户界面,这款经典的终端用户客户端,至今依然在开发者的工作中占据一席之地,彰显其不可替代的地位。
而提及 ABAP 的语法,则不得不谈到其受同时代 COBOL 语言的深刻影响。COBOL 以其 300 余个英语保留字,以及接近英语书面语言的形式,使得数据特性和处理过程更易理解。ABAP 语言的诸如 MOVE、ADD 等关键字,与 COBOL 中的对应关系清晰可见。然而,ABAP 并非固步自封,而是不断进化,吸收了诸如 C++/Java 等现代编程语言的长处。特别是 ABAP 对面向对象编程的支持,以及其使用 OPEN SQL 直接操作数据库的能力,都使得它在同类编程语言中脱颖而出,极大提高了开发效率。
如果说《三国演义》中司马徽那句 “卧龙凤雏,得一可安天下” 是三国十大谎言之首,那么提到 ABAP,就不能不提 ALV。ABAP List Viewer (后更名为 SAP List Viewer),几乎成为了 SAPGUI 报表需求中的标准工具。尽管时代变迁,新的 UI 技术层出不穷,ALV 仍然在开发者社区中保持着高热度。它帮助开发人员快速创建符合客户需求的报表,无论是 Webdynpro、Fiori 还是 CDS view,ALV 一直与时俱进,紧跟技术潮流。
在现代 ABAP 的创新中,尤其值得一提的是其与 SAP HANA 数据库的交互,以及为了支持 Fiori 和其他 Web 应用程序开发而推出的 ABAP 编程模型,如 ABAP Programming Model for SAP Fiori 和 Restful ABAP Programming (RAP)。这些模型充分利用了 HANA 平台的计算能力,支持云环境和 Fiori 用户体验。SAP RAP 作为 SAP 内部创建新 Fiori 应用程序的标准,更展示了 ABAP 在新时代下的强大生命力。
另一方面,ABAP 也成功跃入了云端。通过代号为 Steampunk (蒸汽朋克) 的项目,ABAP 支持云端编程环境,成为了 SAP Business Technology Platform 上的关键组成部分。作为 S/4HANA Cloud 的官方推荐开发环境,ABAP 在 SAP 的技术体系中仍然占据着重要位置。
网络上关于 ABAP 是否会消亡的讨论从未停止。然而,正如本文所述,从 ABAP 的诞生之日起,这门编程语言就不断进行自我改造,保持着旺盛的生命力。全球数以万计的客户依赖 ABAP 平台运行其关键业务,这一事实说明,ABAP 并未过时,反而在不断创新中焕发新的活力。
最后,借用《终结者》系列电影中的一句台词来表达我对 ABAP 的感情:“I am old, but not obsolete.” ABAP is old, but not obsolete. 这一点,从 ABAP 大师 Thomas Jung 的一句话中得到了最佳注解:“ABAP Is Not Dead, But Also Not the Only Answer.”