
做 SAP Fiori Elements 项目时,经常会碰到一种很有意思的现象。一个字段明明只在 CDS View 里写了一次配置,可它到了 List Report、Object Page、Identification 区域甚至其他由 Metadata 驱动生成的界面里,表现却始终保持一致。密码字段一直被遮罩,长文本字段总是倾向于使用多行控件,技术字段无论在哪个业务区域出现都看不到。这种行为并不是 SAP Fiori Elements 在每个页面上分别写了一套判断逻辑,而是来自 SAP Fiori Metadata 设计中一个很重要的思想,字段自身可以携带独立于具体 UI 场景的展示语义。SAP 官方把这一类能力归到Field Manipulation。这里的关键并不是简单地控制某个表格列,也不是给某个 Object Page 区域加一点 UI 配置,而是在字段层面声明,这个字段在 SAP Fiori UI 中应该如何被消费。典型的注解包括@UI.multiLineText、@UI.masked和@UI.hidden。SAP 官方特别强调,这些用于字段操作的注解属于 self-contained annotations,也就是自包含注解。字段一旦被赋予这样的语义,无论字段后来被@UI.lineItem、@UI.identification或其他 UI 注解引用,这个语义都会继续存在。这和很多刚接触 Fiori Elements 时形成的直觉并不一样。平时配置一个 List Rep