用 CDS 注解塑造 SAP Fiori 表格,让一份数据模型拥有多套界面布局
📅 2026/7/30 10:22:21
👁️ 阅读次数
📝 编程学习
最近,在不少 SAP S/4HANA 和 ABAP Cloud 项目里,开发团队都会碰到一个看似简单、实际很容易设计失控的问题。后端已经有了一份完整的销售订单 CDS 视图,里面包含订单号、客户名称、币种、含税金额、创建日期、销售组织等字段。列表报表需要展示较完整的信息,可是在值帮助弹窗里,界面只需要订单号和客户名称。
如果直接按照数据库字段来生成界面,值帮助表格里会塞进大量无关信息。如果为了值帮助再复制一份 CDS 视图,数据模型又会迅速膨胀。相同字段、相同关联和相同权限逻辑被维护在多个对象里,几个月后便很容易出现一处已经更新,另一处仍停留在旧版本的情况。
SAP Fiori 的元数据驱动开发正是为了解决这类问题。数据模型负责描述业务数据,UI 注解负责表达这些数据在界面上应当怎样出现,SAP Fiori elements 再依据 OData 元数据生成表格、字段、筛选区和对象页。开发团队不必为每一个表格列反复编写 XML 控件,也不需要在 Controller 里手工拼接列定义。SAP 官方将UI.LineItem描述为一个有顺序的DataField集合,用于在表格或列表中表示多个数据实例。换成开发视角来看,@UI.lineItem描述的就是某种表格布局下有哪些列,以及这些列按什么次序出现。
这里有一个很容易被名称带偏的地方。LineItem并不是表格标题文字,也不是对象页页眉,而是行项目的显示定义。一个实体返回很多条销售订单记录,每条记录是一行,LineItem中的每一个数据字段通常对应这一行中的一个列单元格。所以,@UI.lineItem主要决
编程学习
技术分享
实战经验