SAP UI5 OData2
在 SAPUI5 OData V2 的 $metadata 中,EntityType.Property 通常用来描述实体属性的元信息。除了常见的 MaxLength 和 sap:label 外,还有许多标准和 SAP 扩展(以 sap: 前缀)注解可用,用于控制数据建模、UI 呈现、行为逻辑等方面。
下面列出一些 常见的标准和 SAP 扩展注解:
🌐 标准 OData 注解(无 sap: 前缀)
| 属性/注解 | 说明 |
|---|---|
Name | 属性名称 |
Type | 属性类型,例如 Edm.String, Edm.Int32 等 |
Nullable | 是否允许为 null,默认是 true |
Precision | 精度(用于 decimal 类型) |
Scale | 小数位数(用于 decimal 类型) |
MaxLength | 最大长度(用于字符串或二进制类型) |
DefaultValue | 默认值 |
Unicode | 是否支持 Unicode 字符(一般用于字符串) |
🔧 SAP 扩展注解(sap: 前缀)
| 注解 | 说明 |
|---|---|
sap:label | UI 标签,用于字段显示名称 |
sap:quickinfo | 鼠标悬停提示信息(tooltip) |
sap:creatable | 是否可被创建(POST) |
sap:updatable | 是否可更新(PUT/PATCH) |
sap:sortable | 是否支持排序 |
sap:filterable | 是否可用于过滤条件 |
sap:required-in-filter | 表示在 filter bar 中是必填 |
sap:display-format | 如 NonNegative, UpperCase, Date, Text 等 |
sap:unit | 指定单位字段,比如货币金额的单位字段名 |
sap:text | 用作属性的文本描述字段(text arrangement) |
sap:aggregation-role | 比如 dimension, measure(用于 Analytical Queries) |
sap:semantics | 比如 currency-code, unit-of-measure, email, tel 等 |
sap:visible | 控制字段是否默认可见 |
sap:field-control | 控制字段是否 editable/mandatory/read-only |
sap:value-list | 指定字段是否有值帮助(ValueHelp) |
📌 示例
Markup 全选
<Property Name="Material"
Type="Edm.String"
Nullable="false"
MaxLength="40"
sap:label="Material Number"
sap:quickinfo="Material unique identifier"
sap:creatable="true"
sap:updatable="true"
sap:filterable="true"
sap:sortable="true"
sap:display-format="UpperCase"
sap:text="MaterialDescription"/>✅ 小结
标准注解负责数据结构(类型、长度、精度、可空等)
sap:注解赋予字段 UI 表现、操作能力、交互语义与层级控制等丰富功能
👉 后续建议
若你主要与 SAPUI5 控件、SmartField/Table 打交道,推荐重点关注:
sap:label、sap:quickinfo、sap:creatable/updatable、sap:field-control、sap:semantics、sap:unit、sap:text、aggregation-role若你涉及树状结构展示,则需使用所有与
hierarchy-...相关的扩展注解
参考:https://sap.github.io/odata-vocabularies/docs/v2-annotations.html#element-edmproperty
版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
JAVA 张国生


