转摘如何基于 SAP CDS view 生成 object page

Ustinian阅读量 24

通过之前的文章[如何在 SAP BTP 上通过 CDS view 快速创建 Fiori Elements 应用](https://jerry.blog.csdn.net/article/details/118637531),我们已经创建了一个 CDS view,并基于该 CDS view,创建了一个 Fiori Elements 应用:

![图片]:(https://img-blog.csdnimg.cn/img_convert/40d976e01f52bb5725206bc28ae2143d.png)

如上图所示,我们期望,点击上图的">"符号时,能跳转到该行项目对应的 object page 页面去。本文介绍实现方法。

所谓 object page floorplan(对象页面布局图), 用于显示和分类一个对象的所有相关信息。可以使用锚定(anchor)或选项卡导航(tab navigation)快速访问分类内容,用户可以从显示模式切换到编辑模式以更改内容。

创建新对象时,用户可以切换到创建模式。

对象页面布局图具有灵活、响应性强的布局和动态页面标题,可用于显示简单和复杂的业务对象。这允许用户灵活的调整布局,以适应广泛的用例。

一个 object page 的典型例子如下:

![图片]:(https://img-blog.csdnimg.cn/5a26c174fb7442c58d412cb19e55b047.png)

这个 CDS view 主要的 annotation,都以通过 metadata extraction 的方法,抽取到了名为 Z_TRAVEL_METADATA_JERRY 的metadata Extension 中去。具体方法参考我的文章[如何在 SAP BTP 上通过 CDS view 快速创建 Fiori Elements 应用](https://jerry.blog.csdn.net/article/details/118637531)

![图片]:(https://img-blog.csdnimg.cn/img_convert/905dc726db1b9b3aea5b883459556bac.png)

在这个 extension 的头部,添加如下注解,声明一个 UI Object page:

![图片]:(https://img-blog.csdnimg.cn/img_convert/cd904b9f49551efbe8027a1dd4a82df5.png)

然后给两个字段 TravelID 和 AgencyID,分别加上 identification 的注解,这表明我们期望把这两个字段,配置在 Object Page 上:

![图片]:(https://img-blog.csdnimg.cn/img_convert/318ce7d770f13b818d4647c38cd8a3de.png)

这个 metadata extension 完整的源代码:

prism language-sql 复制代码
@Metadata.layer: #CORE

@UI: {
  headerInfo: {
    typeName: 'Travel',
    typeNamePlural: 'Travels',
    title: {
      type: #STANDARD,
      label: 'Travel',
      value: 'TravelID'
    }
  }
}

annotate view Z_C_TRAVEL_DATA_JERRY with
{
  @UI.facet: [ { id:              'Travel',
                purpose:         #STANDARD,
                type:            #IDENTIFICATION_REFERENCE,
                label:           'Travel',
                position:        10 } ]
                
  @UI           : {
      lineItem      : [{position: 10, importance: #HIGH}],
      selectionField: [{position: 10 }],
      identification:[ { position: 10, label: 'Travel' } ]
  }
  TravelID;
  @UI           : {
      lineItem      : [{position: 15, importance: #HIGH}],
      selectionField: [{position: 20 }],
      identification: [ { position: 20 } ]
  }
  @Consumption.valueHelpDefinition: [{  entity: {name: '/DMO/I_Agency', element: 'AgencyID'}  }]
  AgencyID;
  @UI           : {
      lineItem      : [{position: 60, importance: #HIGH}]
      }
  Memo;
}

最后从 Fiori Elements list report 表格控件点击">" 之后到达的 Object Page 页面:

![图片]:(https://img-blog.csdnimg.cn/img_convert/deb722166b06ef94992bb186a5462578.png)

复制代码
     ===========================
    【来源: CSDN】
    【作者: 汪子熙】
    【原文链接】 https://jerry.blog.csdn.net/article/details/118655973
    声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。
0/300
全部评论0
0/300