创建对象页面

学习目标

  • 配置对象页面的抬头区域,将部分添加到对象页面正文

向对象页面的抬头区域添加标题和描述。

在本练习中,您将向对象页面添加标题和描述。您还将向清单报表表添加标题。

前提条件

您已在同一单元(课程:创建清单报表)中完成练习为整体状态添加描述文本而不是代码

观看模拟并执行步骤

此练习包含指导您完成详细步骤的模拟。模拟后可以找到所有步骤。您可以遵循模拟并使用自己的试用账户执行步骤。

练习开始练习(SAP 官方交互式练习)

步骤

  1. 您已在浏览器中打开上一练习中的清单报表。

  2. 从列表中选择差旅。对象页面随即打开,但仅显示差旅的技术标识,因为对象页面仍为空。

  3. 打开 ADT 并在项目浏览器中展开元数据扩展文件夹。

  4. 将标题添加到列表报表表,并将标题和描述添加到对象页面。

  5. 双击元数据扩展 ZC_FE_TRAVEL_######.**差旅实体的元数据扩展随即打开。

  6. 在 文件的顶部添加 @UI.headerInfo 注释,如以下示例代码所示。

@UI.headerInfo: {
typeNamePlural: 'Travels',
typeName: 'Travel',
title: { type: #STANDARD, value: 'Description'},
description: { type: #STANDARD, value: 'TravelID'}
}
  1. typeNamePlural 属性定义列表报表的标题。此注释的值为字符串。

  2. 对象页面标题的 typeName 属性显示在对象页面的顶部中心位置。此注释的值为字符串。

  3. title 属性定义对象页面的左上角显示的内容。此属性的值是"差旅"实体的描述字段。

  4. description 注释的 @UI.headerInfo 属性定义对象页面左上角的标题下显示的内容。

  5. 单击菜单栏中的 激活 以保存并激活更改。

  6. 切换到浏览器中的应用预览。您可以看到已添加清单报表表的标题。

  7. 从表中选择 执行 。显示清单报表表。

  8. 像以前一样选择差旅。现在,将打开对象页面,其中包含包含差旅描述和差旅标识的标题。

结果

已成功添加清单报表表的标题。您已显示对象页面抬头的差旅 ID 和差旅描述。请注意,由于 ADT 应用预览的某些限制,您无法将 差旅 视为对象页面标题。在 SAP Business Application Studio 的以下练习之一中生成后,您将能够在实际应用中看到此情况。

使用特定差旅的价格和状态信息增强抬头。

在本练习中,您将将 总价总体状态 添加到对象页面的抬头。

前提条件

您已完成本课的"*向对象页面的抬头区域添加标题和描述"*练习。

观看模拟并执行步骤

此练习包含指导您完成详细步骤的模拟。模拟后可以找到所有步骤。您可以遵循模拟并使用自己的试用账户执行步骤。

练习开始练习(SAP 官方交互式练习)

步骤

  1. 您已在浏览器中打开上一练习中的清单报表。

  2. 选择差旅。随即打开差旅的对象页面。您要将 总价总体状态 作为数据点添加到对象页面抬头。

  3. 现在,您可以切换到 ADT。

  4. 使用 TotalPrice 进行注释 @UI.dataPoint

  5. 在项目浏览器的**元数据扩展文件夹中,双击 ZC_FE_TRAVEL_######

  6. @UI.dataPoint 添加 TotalPrice 注释,如以下示例代码所示:

@UI.dataPoint: { qualifier: 'PriceData', title: 'Total Price' }
  1. 添加 @UI.facet 注释并在其中引用 @UI.dataPointTotalPrice 注释。

  2. 在同一元数据扩展中,添加 @UI.facet 注释(如以下示例代码所示)以在对象页面上定义部分。请注意 @UI.facet 注释直接位于 annotate view ZC_FE_Travel_###### with { 之后

@UI.facet: [{
purpose: #HEADER,
position: 10,
type: #DATAPOINT_REFERENCE,
targetQualifier: 'PriceData'
}]
  1. 此注释的 purpose 将添加为 #HEADER,以便将部分置于对象页面标头中。

  2. position 设置为 10,以便它是对象页面抬头中的第一个部分。

  3. type 定义为 #DATAPOINT_REFERENCE,这意味着它引用了 @UI.dataPoint 注释。

  4. targetQualifier 标识引用的 @UI.dataPoint 注释。

  5. 单击菜单栏中的 激活 以保存并激活更改。

  6. 切换到浏览器中的应用预览以查看 UI 上的更改。您可以看到总价现在在对象页面抬头中可见。

  7. 切换到 ADT。

  8. @UI.dataPoint 注释添加到打开的元数据扩展中的 OverallStatus,如以下示例代码所示。

@UI.dataPoint: { qualifier: 'StatusData', title: 'Status', criticality: 'OverallStatusCriticality' }
  1. 添加 @UI.facet 注释并在其中引用 @UI.dataPointOverallStatus 注释。

  2. 添加另一个 @UI.facet 注释记录以在对象页面抬头中显示第二个部分,如以下示例代码所示。

,
{
purpose: #HEADER,
position: 20,
type: #DATAPOINT_REFERENCE,
targetQualifier: 'StatusData'
}
  1. 确保输入 #HEADER 作为 purpose

  2. position 设置为 20,使其位于对象页面抬头中的第二个位置。

  3. type 定义为 #DATAPOINT_REFERENCE,这意味着它会引用 @UI.dataPoint 注释。

  4. targetQualifier 标识引用的 @UI.dataPoint 注释。

  5. 单击菜单栏中的 激活 以保存并激活更改。

  6. 切换到浏览器中的应用预览以查看 UI 上的更改。您可以看到状态现在显示在总价旁的对象页面抬头中。

结果

您成功添加了两个字段总价整体状态,因为数据指向对象页面标题。

向对象页面正文添加标识部分

在本练习中,您将向对象页面正文添加部分和标识子部分。

前提条件

您已完成本课中的练习*"使用特定差旅的价格和状态信息增强抬头"*。

观看模拟并执行步骤

此练习包含指导您完成详细步骤的模拟。模拟后可以找到所有步骤。您可以遵循模拟并使用自己的试用账户执行步骤。

练习开始练习(SAP 官方交互式练习)

步骤

  1. 您已在浏览器中打开上一练习中的清单报表。

  2. 选择差旅。随即打开差旅对象页面。必须将第一个部分添加到对象页面正文,并向其添加标识子部分。

  3. 现在,您可以切换到 ADT 并从项目浏览器中打开 *ZC_FE_TRAVEL_######*元数据扩展

  4. 使用 @UI.identification 注释 AgencyID,如以下示例代码所示。

@UI.identification: [{position: 10}]
  1. 使用 @UI.identification 注释 CustomerID,如以下示例代码所示。

@UI.identification: [{position: 20}]
  1. 将新记录添加到 @UI.facet 注释,如以下示例代码所示,以在对象页面正文中创建部分。这是一个空容器,您可以在此处添加子部分。

,
{
label: 'General Information',
type: #COLLECTION,
id: 'GeneralInfo',
position: 10
}
  1. 将另一条记录添加到 @UI.facet 注释,如以下示例代码所示,用于标识子部分。

,
{
label: 'General',
type: #IDENTIFICATION_REFERENCE,
parentId: 'GeneralInfo'  /*The section id*/
}
  1. 通过将 parentId 维护为 GeneralInfo,引用之前创建的部分作为此子部分的父部分。现在,新部分成为常规信息部分的子部分。

  2. 单击菜单栏中的 激活 以保存并激活更改。

  3. 切换到浏览器中的应用预览以在 UI 中查看更改。您可以看到基本信息是新部分,标识子部分在新部分中显示为常规

结果

已在对象页面正文中成功创建部分和标识子部分。

将两个子部分添加到对象页面正文中的部分。

在本练习中,您将向对象页面的常规信息部分添加两个子部分。

前提条件

您已完成本课中的将标识部分添加到对象页面正文练习。

观看模拟并执行步骤

此练习包含指导您完成详细步骤的模拟。模拟后可以找到所有步骤。您可以遵循模拟并使用自己的试用账户执行步骤。

练习开始练习(SAP 官方交互式练习)

步骤

  1. 您已在浏览器中打开上一练习中的清单报表。

  2. 从列表中选择差旅。随即打开差旅的对象页面。您必须添加包含价格的子部分和包含日期信息的子部分。您必须将这些子部分放在常规子部分旁的基本信息部分中。

  3. 现在,您可以切换到 ADT 并从项目浏览器中打开 *ZC_FE_TRAVEL_######*元数据扩展

  4. 使用 @UI.fieldGroup 注释 TotalPrice,如以下示例代码所示。

@UI.fieldGroup: [{qualifier: 'PricesGroup', position: 10}]
  1. 使用 @UI.fieldGroup 注释 BookingFee,如以下示例代码所示。

@UI.fieldGroup: [{qualifier: 'PricesGroup', position: 20}]
  1. 将另一条记录添加到价格子部分的 #FIELDGROUP_REFERENCE 类型的 @UI.facet 注释,如以下示例代码中所示。

,
{
label: 'Prices',
purpose: #STANDARD,
position: 20,
type: #FIELDGROUP_REFERENCE,
parentId: 'GeneralInfo',
targetQualifier: 'PricesGroup'
}
  1. labelPrices

  2. 该小节的 parentIdGeneralInfo,因此该子部分显示在基本信息部分中。

  3. targetQualifierPricesGroup

  4. 使用 @UI.fieldGroup 注释 BeginDate,如以下示例代码所示。

@UI.fieldGroup: [{qualifier: 'DatesGroup', position: 10}]
  1. 使用 @UI.fieldGroup 注释 EndDate,如以下示例代码所示。

@UI.fieldGroup: [{qualifier: 'DatesGroup', position: 20}]
  1. @UI.facet 子部分将另一条记录添加到 #FIELDGROUP_REFERENCE 类型的 Dates 注释,如以下示例代码所示。

,
{
label: 'Dates',
purpose: #STANDARD,
position: 30,
type: #FIELDGROUP_REFERENCE,
parentId: 'GeneralInfo',
targetQualifier: 'DatesGroup'
}
  1. labelDates

  2. 该小节的 parentIdGeneralInfo,因此该子部分显示在基本信息部分中。

  3. 字段组的 qualifierDatesGroup

  4. 单击菜单栏中的 激活 以保存并激活更改。

  5. 切换到浏览器中的应用预览以在 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 官方交互式练习)

步骤

  1. 从 ADT 的项目浏览器中打开核心数据服务文件夹中的数据定义文件夹。

  2. 右键单击 ZC_FE_TRAVEL_######.

  3. 从后续菜单中选择打开方式

  4. 选择活动注释选项。

  5. 显示所选投影视图的所有活动注释。您可以看到 @UI.annotations 以及其他注释,例如 @AccessControl@ObjectModel

  6. 您可以查看在实体级别定义的 @UI.headerinfo 注释的定义。

  7. 向下滚动以查看其他 UI 相关注释,例如 @UI.facet 注释。

  8. 在项目浏览器**的业务服务文件夹中,双击 ZUI_FE_TRAVEL_######_O4

  9. 从 服务绑定 文档中,选择 服务**版本详细信息 中可用的 服务 URL 。服务 URL 将在浏览器中打开。

  10. 您可以查看服务的所有实体。每个实体代表相应的投影视图。由于该服务已启用草稿,因此 I_DraftAdministrativeData 由运行时自动添加到您的服务。

  11. 移除 ?sap-client=100 将其替换为 $metadata。随即显示服务元数据。

  12. 向下滚动至差旅实体的定义。它表示相应的投影视图。每个属性都是 ZC_FE_TRAVEL_###### 投影视图的一个字段。您还可以查看导航属性,例如 _BookingFee_CustomerID。您还可以查看某些技术属性,例如 HasDraftEntity,这些属性由运行时自动添加,因为服务已启用草稿。

  13. 向下滚动至 @UI.LineItem 注释的定义。您可以看到记录集合,其中每个记录代表一个表列。

结果

您已在 ADT 中成功显示活动的 ABAP CDS 注释。您还在服务的 $metadata 文档中观察到数据模型和注释到 OData 实体和注释的映射。