从 CDS 注解到千人千面的 Fiori 界面,理解元数据驱动 UI 的真正运行方式

发布时间:2026/7/29 11:30:11
从 CDS 注解到千人千面的 Fiori 界面,理解元数据驱动 UI 的真正运行方式 采购订单列表上线时,经常会出现一个很有代表性的画面。采购专员关心供应商、物料、交货日期和订单状态,部门经理更关注净金额、币种、审批状态和超预算风险,审计人员则需要创建人、创建时间、修改记录与组织归属。三类人员打开的是同一个 SAP Fiori 应用,背后使用的也是同一套业务对象,可是他们真正需要停留在屏幕上的信息并不相同。如果我们仍然沿用传统前端思路,很容易把这些差异理解成三套页面,甚至为每种角色分别维护 XML View、Controller 和表格列。页面数量一多,字段顺序、响应式行为、权限控制、升级兼容和自动化测试都会变得沉重。SAP Fiori elements 采用了另一条路,界面的基础结构不再完全由手写控件代码决定,而是由 OData 服务暴露出来的元数据描述业务语义,再由运行时按照 SAP Fiori floorplan 解释并渲染。在这一套机制中,ABAP CDS 注解承担的不是简单的字段备注工作。它们描述字段应当出现在列表、筛选区、对象页还是表单分组中,也描述标签、重要程度、文本关联、金额与币种关系、日期语义、导航关系以及部分操作能力。SAP 官方把 SAP Fiori elements 明确定位为模板驱动与元数据驱动的开发方式,应用可以依据 OData 服务和注解生成标准化界面,而不必为常规场景逐个编写 JavaScript UI 控件。CDS 注解给出的是默认界面,不是不可更改的终稿理解元数据驱动 UI 时,最容易混淆的一点,是把 CDS 注解当成设计阶段写死的页面配置。实际上,注解提供的是一套可以被客户端读取、解释和复用的默认表达。元数据保存在后端开发对象与服务模型中,客户端需要时可以取得相关描述,再据此建立列表、对象页、筛选栏、表