首页 > SAP > FIORI > 使用CDS生成ODATA服务
2019
11-27

使用CDS生成ODATA服务

在此使用简单HANA STUDIO 中创建的简单CDS来生成ODATA服务的过程,具体的HANA STUDIO 中创建CDS过程请参考:HANA STUDIO如何创建ABAP CDS

1.一、先在创建好CDS

创建CDS操作步骤参看: HANA STUDIO如何创建ABAP CDS

2.二、事务码SEGW创建ODATA 服务,

登陆SAP GUI 后,使用事务码SEGW,创建一个SAP Gateway Service Builder,在此定义为了ZTEST.

使用CDS生成ODATA服务 - 第1张  | 优通SAP

创建成功后,就生成了一个ODATA工程对像ZTEST,此工程中可引入多个表,或者多个定义的CDS,下面以引入前文创建的CDS为例。

使用CDS生成ODATA服务 - 第2张  | 优通SAP

3.三、引入CDS到ODATA中

1.在ZTEST工程下,“Odata Model”上点击右键,选择Reference->Data source,

使用CDS生成ODATA服务 - 第3张  | 优通SAP

2.在其中输入前文中创建的DDL Source名字:ZTEST01(与CDS同名)。

使用CDS生成ODATA服务 - 第4张  | 优通SAP

3.点击完成后,生成如图的CDS-Entity exposures

使用CDS生成ODATA服务 - 第5张  | 优通SAP

4.激活ODATA项目工程,点击“Generate Runtime Objects”,此步骤,一定要先选择工程项目(ZTEST),否则激活时会报错的。成功后如图。

使用CDS生成ODATA服务 - 第6张  | 优通SAP

4.四、把ODATA工作生成ODATA服务

1.运行事务码:/IWFND/MAINT_SERVICE 打开激活服务功能,如运行此事务码报错:“用户不能再登陆”,如图。可以在此事务码前面加/n,也就是:/N/IWFND/MAINT_SERVICE 来打开,或者直接在SE93中打开,或者把此事务码添加到收藏菜单中,就不会报错了。

使用CDS生成ODATA服务 - 第7张  | 优通SAP

2.打开后,点击添加服务

使用CDS生成ODATA服务 - 第8张  | 优通SAP

3.在此输入系统别名:LOCAL,技术服务名称,输入前面SEGW创建的工程名:ZTEST*,找到ZTEST_SRV服务,选择,并点击“添加所选服务”。

使用CDS生成ODATA服务 - 第9张  | 优通SAP

4.输入开发包,点击确认保存,

使用CDS生成ODATA服务 - 第10张  | 优通SAP

五、测试ODATA服务

1.前面操作后,服已生成,可进行测试,查看ODATA数据了,维护主界面中选择刚才生成的服务ZTEST_SRV,并点击“SAP Gateway 客户端”,

使用CDS生成ODATA服务 - 第11张  | 优通SAP

2.选择GET ,执行后,可看到如图的ODATA内容,

使用CDS生成ODATA服务 - 第12张  | 优通SAP

3.把地址修改成,/sap/opu/odata/sap/ZTEST_SRV/ZMEMBERSet?$format=json,可看到我们定义的视图中的数据了。

使用CDS生成ODATA服务 - 第13张  | 优通SAP

5.最后

后面可以

1.删除已创建的ODATA服务

2.HANA STUDIO 创建CDS后直接生成ODATA服务:@OData.publish: true。

最后编辑:
作者:yangsen
本站为个人博客网站,全由我个人维护,我从事SAP开发13年,其它ERP开发7年,基本都是零售行业。本站记录工作学习的过程, 有SAP相关询问专、兼职工作可随时联系我。 有网站相关的问题可直接在文章下方留言,或者联系我。 邮件:yan252@163.com给我。 QQ:415402519

使用CDS生成ODATA服务》有 6 条评论

  1. H说道:

    你好,参考你得例子,我这边在最后一步生成odata异常报错,

    For backend administrators: use ADT feed reader “SAP Gateway Error Log” or run transaction /IWFND/ERROR_LOG on SAP Gateway hub system and search for entries with the timestamp above for more details
    See SAP Note 1797736 for error analysis (https://service.sap.com/sap/support/notes/1797736)

    1. yangsen说道:

      你需要用事务码:/IWFND/ERROR_LOG 去查看更多的错误提示,然后再处理。

      1. 匿名说道:

        非常感谢,已经在/IWFND/ERROR_LOG找到问题,是未激活SAP Gateway服务。

      2. H说道:

        感谢,已经解决需要去激活SAP Gateway

  2. liu说道:

    添加服务完的时候,报错/IWFND/MED113,调用方法必填字段为初始值,后面就执行不了sapgateway,被灰掉了,LOG看不到错误,ST22也没有,能帮忙看下是怎么回事吗

    1. yangsen说道:

      没明白你意思,对这些东西,太新了,好多时候还是得自己研究,

yangsen的回复 取消回复

你的email不会被公开。