
在 SAP S/4HANA Cloud 和 ABAP Cloud 的扩展体系里,同一个 BAdI,经常会出现两种实现入口。一边是业务配置人员更熟悉的 Custom Logic Fiori app,另一边是 ABAP 开发人员更熟悉的 ABAP Development Tools for Eclipse,也就是 ADT。表面看,二者都在做 BAdI implementation,都在标准流程的某个 extension point 上补充自定义逻辑。可一旦放到 Clean Core、升级稳定性、代码治理、软件组件和 filter 分派规则里看,它们其实是两套边界完全不同的扩展方式。SAP 官方文档对 Cloud BAdI 的定位很直接,Cloud BAdI 可以被释放给 key user extensibility,也可以被释放给 developer extensibility,或者同时释放给两者。用于 key user extensibility 时,入口是 Custom Logic app。用于 developer extensibility 时,入口是 ADT。也就是说,差异不在于 BAdI 这个概念本身,而在于 SAP 把同一个扩展点交给了两类不同的人、不同工具、不同 ABAP language version、不同生命周期来管理。(