在不少 S/4HANA 项目里,业务总会冒出一些「看起来很小、但牵一发动全身」的字段诉求:销售想在物料主数据里加一个风险等级,采购要在供应商里加一个合规标签,财务希望在报表里多一个分摊维度。过去这类需求常常意味着改表、改结构、改接口、改 UI,走一套开发运维流程,节奏慢、成本高、还容易和标准对象升级冲突。
S/4HANA 推出的 In-App Extensibility(也经常被称为 Key User Extensibility)正是为了解决这个矛盾:让业务关键用户在不理解底层技术细节的前提下,把自定义字段「安全地」挂到标准的数据源、UI、报表甚至 API 上,并且尽量不触碰 SAP 交付的标准对象。很多同学会觉得它像魔法:点几下Enable Usage,字段就能在 CDS View 里读出来,ABAP 代码SELECT *也能拿到它。
这篇文章就把这套链路掰开揉碎讲清楚:你点下Enable Usage和Publish的那一刻,系统背后到底生成了什么对象、对象之间怎么串起来、遇到问题又该从哪里下手排查。
一个非常典型的场景:业务加了字段,开发一行代码就读到
假设你在 Key User 工具里创建了一个扩展字段,比如给产品加了一个JDK Minimum version(字段技术名可能长得像ZZ1_JDKMinimumversion_PRD这种),并把它启用到某个标准可扩展 CDS View(例如I_PRODUCTWD)上。只要启用并发布成功,开发侧几乎不用做任何