创建对象页面
学习目标
配置对象页面的抬头区域,将部分添加到对象页面正文
向对象页面的抬头区域添加标题和描述。
在本练习中,您将向对象页面添加标题和描述。您还将向清单报表表添加标题。
前提条件
您已在同一单元(课程:创建清单报表)中完成练习为整体状态添加描述文本而不是代码。
观看模拟并执行步骤
此练习包含指导您完成详细步骤的模拟。模拟后可以找到所有步骤。您可以遵循模拟并使用自己的试用账户执行步骤。
练习:开始练习(SAP 官方交互式练习)
步骤
您已在浏览器中打开上一练习中的清单报表。
从列表中选择差旅。对象页面随即打开,但仅显示差旅的技术标识,因为对象页面仍为空。
打开 ADT 并在项目浏览器中展开元数据扩展文件夹。
将标题添加到列表报表表,并将标题和描述添加到对象页面。
双击元数据扩展 ZC_FE_TRAVEL_######.**差旅实体的元数据扩展随即打开。
在 文件的顶部添加
@UI.headerInfo注释,如以下示例代码所示。
@UI.headerInfo: {
typeNamePlural: 'Travels',
typeName: 'Travel',
title: { type: #STANDARD, value: 'Description'},
description: { type: #STANDARD, value: 'TravelID'}
}
typeNamePlural属性定义列表报表的标题。此注释的值为字符串。对象页面标题的
typeName属性显示在对象页面的顶部中心位置。此注释的值为字符串。title属性定义对象页面的左上角显示的内容。此属性的值是"差旅"实体的描述字段。description注释的@UI.headerInfo属性定义对象页面左上角的标题下显示的内容。单击菜单栏中的 激活 以保存并激活更改。
切换到浏览器中的应用预览。您可以看到已添加清单报表表的标题。
从表中选择 执行 。显示清单报表表。
像以前一样选择差旅。现在,将打开对象页面,其中包含包含差旅描述和差旅标识的标题。
结果
已成功添加清单报表表的标题。您已显示对象页面抬头的差旅 ID 和差旅描述。请注意,由于 ADT 应用预览的某些限制,您无法将 差旅 视为对象页面标题。在 SAP Business Application Studio 的以下练习之一中生成后,您将能够在实际应用中看到此情况。
使用特定差旅的价格和状态信息增强抬头。
在本练习中,您将将 总价 和 总体状态 添加到对象页面的抬头。
前提条件
您已完成本课的"*向对象页面的抬头区域添加标题和描述"*练习。
观看模拟并执行步骤
此练习包含指导您完成详细步骤的模拟。模拟后可以找到所有步骤。您可以遵循模拟并使用自己的试用账户执行步骤。
练习:开始练习(SAP 官方交互式练习)
步骤
您已在浏览器中打开上一练习中的清单报表。
选择差旅。随即打开差旅的对象页面。您要将 总价 和 总体状态 作为数据点添加到对象页面抬头。
现在,您可以切换到 ADT。
使用
TotalPrice进行注释@UI.dataPoint。在项目浏览器的**元数据扩展文件夹中,双击 ZC_FE_TRAVEL_######。
为
@UI.dataPoint添加TotalPrice注释,如以下示例代码所示:
@UI.dataPoint: { qualifier: 'PriceData', title: 'Total Price' }
添加
@UI.facet注释并在其中引用@UI.dataPoint的TotalPrice注释。在同一元数据扩展中,添加
@UI.facet注释(如以下示例代码所示)以在对象页面上定义部分。请注意@UI.facet注释直接位于annotate view ZC_FE_Travel_###### with {之后
@UI.facet: [{
purpose: #HEADER,
position: 10,
type: #DATAPOINT_REFERENCE,
targetQualifier: 'PriceData'
}]
此注释的
purpose将添加为#HEADER,以便将部分置于对象页面标头中。将
position设置为10,以便它是对象页面抬头中的第一个部分。将
type定义为#DATAPOINT_REFERENCE,这意味着它引用了@UI.dataPoint注释。targetQualifier标识引用的@UI.dataPoint注释。单击菜单栏中的 激活 以保存并激活更改。
切换到浏览器中的应用预览以查看 UI 上的更改。您可以看到总价现在在对象页面抬头中可见。
切换到 ADT。
将
@UI.dataPoint注释添加到打开的元数据扩展中的OverallStatus,如以下示例代码所示。
@UI.dataPoint: { qualifier: 'StatusData', title: 'Status', criticality: 'OverallStatusCriticality' }
添加
@UI.facet注释并在其中引用@UI.dataPoint的OverallStatus注释。添加另一个
@UI.facet注释记录以在对象页面抬头中显示第二个部分,如以下示例代码所示。
,
{
purpose: #HEADER,
position: 20,
type: #DATAPOINT_REFERENCE,
targetQualifier: 'StatusData'
}
确保输入
#HEADER作为purpose。将
position设置为20,使其位于对象页面抬头中的第二个位置。将
type定义为#DATAPOINT_REFERENCE,这意味着它会引用@UI.dataPoint注释。targetQualifier标识引用的@UI.dataPoint注释。单击菜单栏中的 激活 以保存并激活更改。
切换到浏览器中的应用预览以查看 UI 上的更改。您可以看到状态现在显示在总价旁的对象页面抬头中。
结果
您成功添加了两个字段总价和整体状态,因为数据指向对象页面标题。
向对象页面正文添加标识部分
在本练习中,您将向对象页面正文添加部分和标识子部分。
前提条件
您已完成本课中的练习*"使用特定差旅的价格和状态信息增强抬头"*。
观看模拟并执行步骤
此练习包含指导您完成详细步骤的模拟。模拟后可以找到所有步骤。您可以遵循模拟并使用自己的试用账户执行步骤。
练习:开始练习(SAP 官方交互式练习)
步骤
您已在浏览器中打开上一练习中的清单报表。
选择差旅。随即打开差旅对象页面。必须将第一个部分添加到对象页面正文,并向其添加标识子部分。
现在,您可以切换到 ADT 并从项目浏览器中打开 *ZC_FE_TRAVEL_######*元数据扩展。
使用
@UI.identification注释AgencyID,如以下示例代码所示。
@UI.identification: [{position: 10}]
使用
@UI.identification注释CustomerID,如以下示例代码所示。
@UI.identification: [{position: 20}]
将新记录添加到
@UI.facet注释,如以下示例代码所示,以在对象页面正文中创建部分。这是一个空容器,您可以在此处添加子部分。
,
{
label: 'General Information',
type: #COLLECTION,
id: 'GeneralInfo',
position: 10
}
将另一条记录添加到
@UI.facet注释,如以下示例代码所示,用于标识子部分。
,
{
label: 'General',
type: #IDENTIFICATION_REFERENCE,
parentId: 'GeneralInfo' /*The section id*/
}
通过将
parentId维护为GeneralInfo,引用之前创建的部分作为此子部分的父部分。现在,新部分成为常规信息部分的子部分。单击菜单栏中的 激活 以保存并激活更改。
切换到浏览器中的应用预览以在 UI 中查看更改。您可以看到基本信息是新部分,标识子部分在新部分中显示为常规。
结果
已在对象页面正文中成功创建部分和标识子部分。
将两个子部分添加到对象页面正文中的部分。
在本练习中,您将向对象页面的常规信息部分添加两个子部分。
前提条件
您已完成本课中的将标识部分添加到对象页面正文练习。
观看模拟并执行步骤
此练习包含指导您完成详细步骤的模拟。模拟后可以找到所有步骤。您可以遵循模拟并使用自己的试用账户执行步骤。
练习:开始练习(SAP 官方交互式练习)
步骤
您已在浏览器中打开上一练习中的清单报表。
从列表中选择差旅。随即打开差旅的对象页面。您必须添加包含价格的子部分和包含日期信息的子部分。您必须将这些子部分放在常规子部分旁的基本信息部分中。
现在,您可以切换到 ADT 并从项目浏览器中打开 *ZC_FE_TRAVEL_######*元数据扩展。
使用
@UI.fieldGroup注释TotalPrice,如以下示例代码所示。
@UI.fieldGroup: [{qualifier: 'PricesGroup', position: 10}]
使用
@UI.fieldGroup注释BookingFee,如以下示例代码所示。
@UI.fieldGroup: [{qualifier: 'PricesGroup', position: 20}]
将另一条记录添加到价格子部分的
#FIELDGROUP_REFERENCE类型的@UI.facet注释,如以下示例代码中所示。
,
{
label: 'Prices',
purpose: #STANDARD,
position: 20,
type: #FIELDGROUP_REFERENCE,
parentId: 'GeneralInfo',
targetQualifier: 'PricesGroup'
}
label为Prices。该小节的
parentId为GeneralInfo,因此该子部分显示在基本信息部分中。targetQualifier为PricesGroup。使用
@UI.fieldGroup注释BeginDate,如以下示例代码所示。
@UI.fieldGroup: [{qualifier: 'DatesGroup', position: 10}]
使用
@UI.fieldGroup注释EndDate,如以下示例代码所示。
@UI.fieldGroup: [{qualifier: 'DatesGroup', position: 20}]
为
@UI.facet子部分将另一条记录添加到#FIELDGROUP_REFERENCE类型的Dates注释,如以下示例代码所示。
,
{
label: 'Dates',
purpose: #STANDARD,
position: 30,
type: #FIELDGROUP_REFERENCE,
parentId: 'GeneralInfo',
targetQualifier: 'DatesGroup'
}
label为Dates。该小节的
parentId为GeneralInfo,因此该子部分显示在基本信息部分中。字段组的
qualifier为DatesGroup。单击菜单栏中的 激活 以保存并激活更改。
切换到浏览器中的应用预览以在 UI 中查看更改。您可以看到价格和**日期作为已添加到常规信息部分的子部分。
结果
您已成功将两个子部分 价格 和 日期 添加到对象页面的现有 常规信息 部分。
将 ABAP CDS 注释映射到 XML 格式
到目前为止,您已将 ABAP CDS 注释添加到 ADT 中映射视图的相应元数据扩展。在 ADT 中发布服务后,运行时将生成 OData 服务。从此时起,服务 URL 可用,并可用于生成 SAP Fiori 元素应用等。服务的数据模型的所有元描述(包括公开的实体、属性和关联)在服务的机器可读的 $metadata 文档中提供。所有 ABAP CDS 注释通过运行时自动转换为 XML 格式,并且也会添加到同一 $metadata 文档。要在浏览器中查看 $metadata 文档,您可以获取 OData 服务的根 URL 并在末尾附加 $metadata。请注意,对于 OData V2 服务,注释将添加到单独的注释文件中。
发布服务后,您仍可以将 UI 注释添加到元数据扩展。在 ADT 中激活更改后,它们将自动添加到 $metadata 文档。
检查 CDS 视图和服务中相应 OData 注释的活动注释
在本练习中,您将了解如何查找投影视图的活动 ABAP CDS 注释。您将看到服务 URL 并观察服务的数据模型在 $metadata 文档中的表示方式。然后,您将继续检查运行时已从相应 ABAP CDS 注释转换的相应 OData 注释。
前提条件
在本课中,您已完成将两个子部分添加到对象页面上的部分练习。
观看模拟并执行步骤
此练习包含指导您完成详细步骤的模拟。模拟后可以找到所有步骤。您可以遵循模拟并使用自己的试用账户执行步骤。
练习:开始练习(SAP 官方交互式练习)
步骤
从 ADT 的项目浏览器中打开核心数据服务文件夹中的数据定义文件夹。
右键单击 ZC_FE_TRAVEL_######.
从后续菜单中选择打开方式。
选择活动注释选项。
显示所选投影视图的所有活动注释。您可以看到
@UI.annotations以及其他注释,例如@AccessControl和@ObjectModel。您可以查看在实体级别定义的
@UI.headerinfo注释的定义。向下滚动以查看其他 UI 相关注释,例如
@UI.facet注释。在项目浏览器**的业务服务文件夹中,双击 ZUI_FE_TRAVEL_######_O4。
从 服务绑定 文档中,选择 服务**版本详细信息 中可用的 服务 URL 。服务 URL 将在浏览器中打开。
您可以查看服务的所有实体。每个实体代表相应的投影视图。由于该服务已启用草稿,因此
I_DraftAdministrativeData由运行时自动添加到您的服务。移除 ?sap-client=100 将其替换为 $metadata。随即显示服务元数据。
向下滚动至差旅实体的定义。它表示相应的投影视图。每个属性都是 ZC_FE_TRAVEL_###### 投影视图的一个字段。您还可以查看导航属性,例如
_BookingFee、_CustomerID。您还可以查看某些技术属性,例如HasDraftEntity,这些属性由运行时自动添加,因为服务已启用草稿。向下滚动至
@UI.LineItem注释的定义。您可以看到记录集合,其中每个记录代表一个表列。
结果
您已在 ADT 中成功显示活动的 ABAP CDS 注释。您还在服务的 $metadata 文档中观察到数据模型和注释到 OData 实体和注释的映射。