OData是基于REST的数据协议,用于通过SAP Gateway集线器系统在ABAP后端系统和客户端应用程序之间传输业务数据以及元数据。在SAP S / 4HANA中,OData服务的客户端应用程序通常是在最终用户设备(如台式PC或平板电脑)的本地浏览器中运行的SAP Fiori应用程序。OData与SAP网关一起,使用HTTP作为其数据传输协议,以易于理解和定义明确的方式提供对SAP后端业务数据的访问。
OData服务以实体的形式组织数据,这些实体具有通过关联互连的一组属性。这些元素类似于CDS数据模型的元素,因此CDS数据模型是作为OData服务公开的理想候选对象。
可以通过三种不同的方式将CDS数据模型公开为OData服务:
- Reference Data Source (RDS)
- Mapped Data Source (MDS)
- Auto-Exposure
在本系列中,我们将重点介绍用于创建OData的Auto-Exposure方法。因为这是将CDS数据模型公开为OData服务的最简单,最有效的方法。
创建OData服务的注释
使用以下注释创建OData服务
@ OData.publish:正确
该注释必须写在define View…语句上方的CDS视图的标题部分。
代码语言:javascript复制<code>@AbapCatalog.sqlViewName: 'Z_C_AIRLINE'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Airline - Consumption View'
@OData.publish: true
define view ZAPF_C_AIRLINE
as select from ZAPF_I_AIRLINE
{
.........
.........
}</code>
让我们在CDS视图中实现此注释。请注意,必须在整个CDS数据模型的一个位置上实现此OData批注。因为我们已经将ZAPF_C_AIRLINE消耗视图作为整个数据模型的主要层次结构点。因此,此注释将放置在主消费视图中。
将OData批注应用到CDS视图后,将在激活视图时创建OData服务。现在,以上Airline CDS视图已激活,并创建了其OData服务。但是该服务将无法使用。为了使服务可用于外部系统或Fiori应用程序,必须激活相应的服务。