ABAP RESTful Application Programming Model(四)

本文介绍了如何通过修改ABAP的MetadataExtension文件中的注释(annotation)来调整OData接口生成的UI界面,包括列表字段位置、列宽以及详细页面布局,并展示了如何将某些字段设置为只读状态。
摘要由CSDN通过智能技术生成


Restful暴露的OData接口不仅仅能用来传输数据,还可以定义或者调整UI。

一、注释annotation

在生成ABAP Repository Object时,除了之前提到的文件,还有一个Metadata Extension文件。这个文件用来定义Odata生成的UI界面,通过修改此文件,可以按照需要调整UI界面。
在这里插入图片描述
该文件主要包含字段和大量的注释(annotation),此注释非彼注释,页面的调整就是通过修改annotation来实现的。
常用的annotation如下:

  • @UI.hidden: true被该注释标记的字段将被隐藏,false或者删除此注释,字段恢复显示。
  • @UI.lineItem标识字段在列表中显示的配置,包括列位置,宽度等
  • @UI.identification标识字段在详情页面的配置,
    注释对字段具体的配置可查看注释的定义,右键->Navigate To

二、调整字段位置

2.1.调整列表字段位置

列表字段默认位置如下
在这里插入图片描述
打开Metadata Extensions文件夹下的ZC_XXXX。默认UI配置如下,position表示字段的位置,这里只关注@UI.lineItem。对比页面,position从10 开始,第二列在第一列基础上加10

@UI.lineItem: [ {
  position: 10 , 
  importance: #MEDIUM
} ]
@UI.identification: [ {
  position: 10 
} ]
CarrierID;

@UI.lineItem: [ {
  position: 20 , 
  importance: #MEDIUM
} ]
@UI.identification: [ {
  position: 20 
} ]
ConnectionID;

CarrierIDConnectionIDposition值调换,列表中Flight NumberAirline ID的位置就调换了。

@UI.lineItem: [ {
  position: 20 , 
  importance: #MEDIUM
} ]
@UI.identification: [ {
  position: 10 
} ]
CarrierID;

@UI.lineItem: [ {
  position: 10 , 
  importance: #MEDIUM
} ]
@UI.identification: [ {
  position: 20 
} ]
ConnectionID;

在这里插入图片描述

2.2.调整列表列宽

在这里插入图片描述
Flight Number超过了默认长度,有一部分文字被省略了。通过调整注释,可以解决这个问题。给lineItem添加cssDefault属性,如下:
在这里插入图片描述
在这里插入图片描述

2.3.调整详细页面字段位置

在这里插入图片描述
如图,详情页面的字段按列分布,AirportCityCountry并不能明显分组,而且Country的label相同,用户可读性不好。通过调整@UI.identificationposition,使出发地和目的地按行分布,第一行为出发地,第二行为目的地。
对比页面和配置文件,字段位置匹配如下。
在这里插入图片描述
调整position的值如下。

@UI.lineItem: [ {
  position: 40 , 
  importance: #MEDIUM
} ]
@UI.identification: [ {
  position: 50 
} ]
CityFrom;

@UI.lineItem: [ {
  position: 50 , 
  importance: #MEDIUM
} ]
@UI.identification: [ {
  position: 70 
} ]
CountryFrom;

@UI.lineItem: [ {
  position: 60 , 
  importance: #MEDIUM
} ]
@UI.identification: [ {
  position: 40 
} ]
AirportToID;

@UI.lineItem: [ {
  position: 70 , 
  importance: #MEDIUM
} ]
@UI.identification: [ {
  position: 60 
} ]
CityTo;

在这里插入图片描述

三、字段只读

前文determination使citycountry可以自动填充,这时city和country就没有必要是可编辑字段。设置为只读字段,避免不必要的麻烦。
打开ZC_XXX,并添加一下代码。如此,将citycountry设置为只读字段。
在这里插入图片描述
刷新下预览页面,创建或者修改connection。
在这里插入图片描述

总结

打完收工。

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值