如何在 SAP Fiori Elements 应用的 manifest.json 里定义注解

简介: 如何在 SAP Fiori Elements 应用的 manifest.json 里定义注解

SAP Fiori Elements 应用中,manifest.json 文件是应用的主要配置文件,其中定义了应用的元数据、模型、服务等信息。其中,dataSources 区域负责描述应用使用的数据源,比如 OData 服务或者其他类型的后端服务。在 dataSources 区域的 settings 字段中,我们可以定义 annotations,它们是一种描述 OData 服务元数据的方式,可以增强服务的语义,并且可以驱动 UI 自动生成。


Annotations 是 SAP Fiori Elements 中的一个重要概念。它们提供了一种声明式的方式来定义 UI 的各种特性,包括但不限于字段的显示方式、排序、过滤等。

具体来说,annotations 可以定义:

  • 实体类型的一些属性,如标签、文本、提示等。
  • 实体类型的行为,如可创建、可更新、可删除等。
  • 实体类型的 UI 表现形式,如表格、表单、列表等。
  • 实体类型的关系,如导航属性、关联等。


在 dataSources 的 settings 中定义 annotations 的方式大概如下:

"dataSources": {
    "mainService": {
        "uri": "/sap/opu/odata/sap/ZDEMO_C_SALESORDERITEM_CDS/",
        "type": "OData",
        "settings": {
            "annotations": ["annotations1", "annotations2"]
        }
    },
    "annotations1": {
        "uri": "/sap/opu/odata/IWFND/CATALOGSERVICE;v=2;mo/Annotations(TechnicalName='ZDEMO_ANNO_MDL',Version='0001')/$value",
        "type": "ODataAnnotation"
    },
    "annotations2": {
        "uri": "/sap/opu/odata/IWFND/CATALOGSERVICE;v=2;mo/Annotations(TechnicalName='ZDEMO_ANNO_UI',Version='0001')/$value",
        "type": "ODataAnnotation"
    }
}


在上述示例中,我们定义了两个 annotations,分别叫做 “annotations1” 和 “annotations2”,它们分别对应着两个 ODataAnnotation 类型的数据源这两个数据源指向的是两个不同的 annotation 文件。这些 annotation 文件被用来描述 “mainService” 数据源(即 OData 服务)的元数据。


例如,我们可以在 annotation 文件中定义一个实体类型的标签,如下所示:

<Annotations Target="ZDEMO_C_SALESORDERITEM_CDS.SalesOrderItem">
    <Annotation Term="com.sap.vocabularies.Common.v1.Label" String="Sales Order Item"/>
</Annotations>


这段代码定义了 SalesOrderItem 实体类型的标签为 “Sales Order Item”。在 Fiori Elements 应用的 UI 中,这个标签将被用作实体类型的显示名称。


通过这种方式,我们可以通过 annotations 定义出复杂的业务逻辑和用户界面,而无需编写大量的前端代码。这大大提高了开发效率,降低了开发难度,使得开发者可以将更多的精力放在业务逻辑的实现上,而不是 UI 的编写上。


相关文章
|
2月前
|
数据库 API
启用SAP Fiori之前的一些注意事项
启用SAP Fiori之前的一些注意事项
|
2月前
|
存储 JSON NoSQL
解锁JSON的奇妙世界:从基础到高级应用,一文搞懂JSON的妙用(下)
解锁JSON的奇妙世界:从基础到高级应用,一文搞懂JSON的妙用(下)
|
2月前
|
JSON JavaScript 前端开发
解锁JSON的奇妙世界:从基础到高级应用,一文搞懂JSON的妙用(中)
解锁JSON的奇妙世界:从基础到高级应用,一文搞懂JSON的妙用(中)
|
4天前
|
存储 JSON 关系型数据库
MySQL JSON 类型:功能与应用
MySQL JSON 类型:功能与应用
|
2月前
|
XML JSON API
转Android上基于JSON的数据交互应用
转Android上基于JSON的数据交互应用
20 1
|
2月前
|
JavaScript 前端开发
试读版:如何找出 SAP 标准 Fiori 应用某个按钮点击后执行的 JavaScript 源代码
试读版:如何找出 SAP 标准 Fiori 应用某个按钮点击后执行的 JavaScript 源代码
|
2月前
|
JSON 编译器 Go
Golang深入浅出之-结构体标签(Tags):JSON序列化与反射应用
【4月更文挑战第22天】Go语言结构体标签用于添加元信息,常用于JSON序列化和ORM框架。本文聚焦JSON序列化和反射应用,讨论了如何使用`json`标签处理敏感字段、实现`omitempty`、自定义字段名和嵌套结构体。同时,通过反射访问标签信息,但应注意反射可能带来的性能问题。正确使用结构体标签能提升代码质量和安全性。
61 0
|
2月前
|
XML JSON JavaScript
Java中XML和JSON的比较与应用指南
本文对比了Java中XML和JSON的使用,XML以自我描述性和可扩展性著称,适合结构复杂、需验证的场景,但语法冗长。JSON结构简洁,适用于轻量级数据交换,但不支持命名空间。在Java中,处理XML可使用DOM、SAX解析器或XPath,而JSON可借助GSON、Jackson库。根据需求选择合适格式,注意安全、性能和可读性。
45 0
|
12天前
|
存储 JSON JavaScript
【chat-gpt问答记录】python将数据存为json格式和yaml格式
【chat-gpt问答记录】python将数据存为json格式和yaml格式
26 1
|
17天前
|
存储 JSON JavaScript
使用Python处理JSON格式数据
使用Python处理JSON格式数据