SAP 帮助文档里很多主题,都针对 Brown Field 和 Green Field 两种场景,分别做了介绍。
比如 SAP S/4HANA Cloud Communication Setup:
又比如这篇 SAP 社区博客:Evolution of the ABAP Programming Model
https://community.sap.com/t5/technology-blogs-by-sap/evolution-of-the-abap-programming-model/ba-p/13398328
文章在介绍 ABAP 编程模型的演进史时,专门提到:ABAP for SAP Fiori 的编程模型,不支持 Brown Field 场景。
因此有了 Restful ABAP Programming Model 的进一步演化:RAP 同时支持 Brown Field 和 Green Field 两种场景。
老顾问们对于这两个概念应该非常熟悉了。对于新手来说,通过这些文档的上下文,也能大概猜测出这两个场景的差异。
实际上这两个概念并非 SAP 生态圈特有或独创。
Brown Field 和 Green Field 这两个术语来源于建筑与开发领域,原本用来描述土地开发的现状。
Green Field 指未开发的绿色土地,象征着全新的开始。 Brown Field 则指已开发或被污染的土地,需要进行改造或再开发。
在 ERP 软件实施领域中,二者也承载了类似的概念,分别用于描述是否需要在已有系统基础上进行改造,或者全新地建设系统。
Green Field 实施是一种“白纸上作画”的策略,即从零开始设计和部署新的 ERP 系统。
在这种情况下,企业没有旧的系统或流程负担,因此可以自由地构建适合当前业务需求的全新 ERP 系统。
这就像在一块尚未开发的空地上建设新建筑,建设者可以完全按照理想中的蓝图来规划和执行,减少了在改造和整合现有基础设施上投入的时间和资源。
Brown Field 实施的概念与此相对,它类似于在已有建筑基础上进行改造和扩建。
这种实施策略主要面向那些已有 IT 基础设施的企业,比如企业已经部署了一套 ERP 系统或者一系列相关系统,但需要对其进行升级、优化或整合。
Brown Field 实施的目标是最大化地利用现有的资源和系统,以降低成本和减少实施对现有业务的影响。
为什么说 ABAP for Fiori 的编程模型,不支持 Brown Field 场景?因为在此场景中,ABAP 开发人员通常需要处理基于旧有 ABAP 范式的现有事务逻辑。
这些遗留代码大多采用粗粒度的操作方式(如批量创建、更新和删除),这与 ABAP Programming Model for SAP Fiori所倡导的细粒度、面向服务的方式存在本质上的不兼容性。此外,现有系统的架构往往无法支持该编程模型所提供的现代特性和优化,例如:
CDS:ABAP编程模型通过 CDS 进行数据建模,但遗留代码结构通常无法与 CDS 兼容,这限制了其在现有系统中的应用。
BOPF:BOPF 框架支持复杂的业务逻辑和状态管理,但这些功能在遗留系统中通常并未实现或无法无缝集成。
本文参考:
[1] https://community.sap.com/t5/technology-blogs-by-sap/evolution-of-the-abap-programming-model/ba-p/13398328
[2] https://btp.udina.de/development/model/overview.html
[3] https://learning.sap.com/learning-journeys/practicing-clean-core-extensibility-for-sap-s-4hana-cloud/describing-the-different-aspects-of-the-abap-cloud-development-model_f1e03a57-f23a-493a-b36c-4838221678ad
[4] https://community.sap.com/t5/technology-blogs-by-sap/modernization-with-the-abap-restful-application-programming-model-rap/ba-p/13504225