一、为后续demo搭建简单的基础信息:一个Odata服务ZDEMO_PO,三个数据库表及模型ZPOHEADER、ZPOITEM、ZVENDOR,相应的Association,后续文章基本使用ZDEMO_PO项目
创建项目
创建相应的entity
创建entity的属性,我这里手工创建,实际可以通过导入数据库表的方式来创建
同理创建POTIEM和VENDOR
创建抬头和明细的association
生产运行对象:
参考上篇文章ODATA:基于搜索帮助创建一个ODATA服务生成相应的服务
自此还不能获取相关数据,需要实现相关方法,否则报如下错误
二、实现POHEADER的GetEntitySet方法
会发现会跳转到类ZCL_ZDEMO_PO_DPC_EXT ,redifine
编写代码:
重新执行查看结果
发现lifnr没有取过来debug发现实现类中返回的结果内表不是lifnr,所以更改下abap field name即可(注意重新generate代码会被还原覆盖)
修改后重新编写代码:
三、实现GetEntity方法
查询指定key值的单条记录可以用uri:/sap/opu/odata/sap/ZDEMO_PO_SRV/ZPOHEADERSet('4500000001')来查询,我们发现提示状态501,未实现。要实现单条记录需要实现GetEntity方法。
实现GetEntity方法
重新测试,成功取到相应的记录