Open UI5 Fiori Elements annotation 解析出来的 entity container

举报
汪子熙 发表于 2023/08/06 10:25:01 2023/08/06
【摘要】 Open UI5 框架实现代码 AnnotationParser.js 解析出的 annotation:其中第一个就是 entity Container.这个 entity container 在 metadata.xml 文件里能够找到:EntityContainer 里包含了 EntitySet:metadata 里这个 Annotations 区域的内容:被 AnnotationPar...

Open UI5 框架实现代码 AnnotationParser.js 解析出的 annotation:

其中第一个就是 entity Container.

这个 entity container 在 metadata.xml 文件里能够找到:

EntityContainer 里包含了 EntitySet:

metadata 里这个 Annotations 区域的内容:

被 AnnotationParser.js 解析如下:

Open Fiori Elements是Open的一种框架,用于创建Open Fiori应用程序。该框架提供了一种结构化的方法来创建用户界面,并基于开放数据模型(OData)服务和Open注解来描述应用程序的行为。Open Fiori Elements应用程序是基于OpenUI5库和OData服务的,它们使用注解来定义和扩展行为。

在Open Fiori Elements应用程序中,注解是用于描述数据模型和业务逻辑的元数据。它们可以在服务定义(CDS视图或SEGW项目)或者元数据扩展(MDE)中定义。注解在运行时解析,并根据注解的值来渲染用户界面。

Entity Container是OData模型中的一部分,它是实体集(Entity Sets)和单一实体(Singletons)的容器。实体集是数据模型中的集合,例如客户、订单或产品。而Singletons是单一的数据对象,例如当前用户或系统设置。

在Open Fiori Elements应用程序中,Entity Container用于定义OData服务中可用的所有实体集和Singletons。例如,你可能有一个名为"SalesOrder"的实体集,这个实体集包含你的所有销售订单。

Entity Container的定义通常在OData服务的元数据文档中找到。它的定义如下:

<EntityContainer Name="MyServiceContainer" m:IsDefaultEntityContainer="true">
  <EntitySet Name="SalesOrder" EntityType="MyNamespace.SalesOrder" />
  <Singleton Name="CurrentUser" Type="MyNamespace.User" />
</EntityContainer>

在这个例子中,我们定义了一个名为"MyServiceContainer"的Entity Container,它包含一个名为"SalesOrder"的实体集和一个名为"CurrentUser"的Singleton。

在Open Fiori Elements应用程序中,我们可以使用注解来改变Entity Container中实体集和Singletons的行为。例如,我们可以使用@UI.headerInfo注解来定义实体集的头部信息,或者使用@Search.searchable注解来定义实体集是否可以被搜索。

注解可以在服务定义中直接定义,也可以在元数据扩展中定义。例如,以下是一个使用注解定义头部信息的例子:

@UI.headerInfo: { 
  typeName: 'Sales Order', 
  typeNamePlural: 'Sales Orders', 
  title: { value: 'orderNumber' } 
}
Entity SalesOrder {
  key orderNumber: String;
  customerName: String;
  totalAmount: Decimal;
}

在这个例子中,我们使用@UI.headerInfo注解来定义销售订单的头部信息。标题将使用订单号作为值。

通过使用Entity Container和注解,Open Fiori Elements提供了一种强大的方法来定义和扩展OData服务的行为。这使得开发者可以专注于业务逻辑,而不是用户界面的开发。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。