一、爲後續demo搭建簡單的基礎信息:一個Odata服務ZDEMO_PO,三個數據庫表及模型ZPOHEADER、ZPOITEM、ZVENDOR,相應的Association,後續文章基本使用ZDEMO_PO項目
創建項目
創建相應的entity
創建entity的屬性,我這裏手工創建,實際可以通過導入數據庫表的方式來創建
同理創建POTIEM和VENDOR
創建擡頭和明細的association
生產運行對象:
參考上篇文章ODATA:基於搜索幫助創建一個ODATA服務生成相應的服務
自此還不能獲取相關數據,需要實現相關方法,否則報如下錯誤
二、實現POHEADER的GetEntitySet方法
會發現會跳轉到類ZCL_ZDEMO_PO_DPC_EXT
編寫代碼:
重新執行查看結果
發現lifnr沒有取過來debug發現實現類中返回的結果內表不是lifnr,所以更改下abap field name即可(注意重新generate代碼會被還原覆蓋)
修改後重新編寫代碼:
三、實現GetEntity方法
查詢指定key值的單條記錄可以用uri:/sap/opu/odata/sap/ZDEMO_PO_SRV/ZPOHEADERSet('4500000001')來查詢,我們發現提示狀態501,未實現。要實現單條記錄需要實現GetEntity方法。
實現GetEntity方法
重新測試,成功取到相應的記錄