在HANA STUDIO中创建CDS时可以直接使用@OData.publish,就能定义一个与CDS中视图同名的ODATA服务,然后在 事务码:/IWFND/MAINT_SERVICE 中添加服务并激活就能使用,
一、创建CDS
增加 @OData.publish: true,就可以了,完整代码如下,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
@AbapCatalog.sqlViewName: 'ZTEST21' @AbapCatalog.compiler.compareFilter: true @AbapCatalog.preserveKey: true @AccessControl.authorizationCheck: #CHECK @EndUserText.label: 'ZTEST 20' @OData.publish: true define view ZTEST20 as select from zthy_member as a { key a.zmena, a.uuid, a.zwxbs, a.ztel, a.zpswd, a.zseller } |
1.二、 激活添加此服务
事务码:/IWFND/MAINT_SERVICE 激活添加此服务,添加后服务如图

2.三、说明
1.测试时发现,已激活的CDS,再增加@OData.publish: true参数时,不会再自动生成服务,应该是此种情况时,需要在STUDIO中对CDS做一些初始化的操作,我的解决办法是,把CDS代码COPY出来,然后删除此CDS,重建立此CDS就能成功了,
在网上找到的说明如下,但满足如下条件时,还是不能生成自动生成ODATA.
CDS视图应满足成功生成OData服务的以下规则。
- DDL源代码中没有语法错误。
- 在CDS视图的SELECT列表中定义了至少一个关键元素。
- CDS视图的名称长度不能超过26个字符。
CDS视图应满足成功生成OData服务的以下规则。
DDL源代码中没有语法错误。
在CDS视图的SELECT列表中定义了至少一个关键元素。
CDS视图的名称长度不能超过26个字符。
2.正确自动创建了CDS的如下图,

图中有一个G图标说明,但鼠标移动到上面时,会出来生成的ODATA服务说明如图,点击图中的OData-Service,可打开连接测试,

3.激活后没有成功自动生成ODATA服务的,,如下图,原因不知,等待研究。
