如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务

时间:2023-05-09 14:35:08

Jerry 2016年在学习SAP CDS view时,曾经写过一个CDS view的自学系列,其中有一篇提到了一个很方便的注解:

@OData.publish: true

如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务

加上这个注解的CDS view,一旦激活后就会在ABAP Netweaver自动生成一个OData服务,在事务码/IWFND/MAINT_SERVICE里将其搜索出来并添加,就能够以OData服务的方式,消费这个view暴露出来的数据了。

如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务

当然@OData.publish这个注解为什么有这种神奇的魔力,在Jerry之前的博客里有详细介绍。

那么到了SAP云平台ABAP环境上,因为我们无法访问SAP GUI,所以要实现同样的效果,无法直接照搬上述步骤。幸运的是,在云上进行CDS view暴露的步骤依然简洁,整个过程5分钟就能搞定。

用ABAP Development Tools像登录On-Premises ABAP系统那样登录ABAP云环境,新建一个Service definition:

如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务
如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务

在Service的实现体里,使用关键字expose将ABAP环境里的标准view,I_Currency以Service的方式暴露出来。

如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务

这个Service需要以Service Binding的方式暴露成OData服务:

如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务

把第一步创建的Service分配给这个Service Binding:

如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务

注意下图右边的Service Details标签页里,此时是空的。点击Publish按钮:

如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务

发布成功后,我们看到了之前在Service实现里把I_Currency暴露成的名为Currency的实体:

如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务

对这个Currency Entity点右键,选择Open Fiori Elements App Preview,就能在预览模式下通过一个标准通用的Fiori Elements应用把当前系统上I_Currency里的数据显示出来:

如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务
如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务

点击这个Service URL超链接,也能直接打开对应OData服务的元数据(metadata)链接:

如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务
如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务

至此我们就可以用各种消费端来使用这个通过I_Currency暴露成的OData服务了,当然也可以开发一个SAP Fiori来消费,Jerry后续会介绍。

感谢阅读。

如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务

要获取更多Jerry的原创文章,请关注公众号"汪子熙":
如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务