天天看點

如何修改 SAP ABAP OData 模型,使其支援 $expand 操作試讀版

正如本教程的開篇介紹文章SAP OData 開發教程 - 從入門到提高(包含 SEGW, RAP 和 CDP)所提到的,SAP OData 服務開發,從實作技術上來說,可以分為三大類。是以本教程也分為三大部分,分别進行介紹。本文是本教程的文章目錄。

作者簡介

Jerry Wang,2007 年從電子科技大學計算機專業碩士畢業後加入 SAP 成都研究院工作至今。Jerry 是 SAP 社群導師,SAP 中國技術大使。在長達 15 年的 SAP 标準産品開發生涯裡,Jerry 曾經先後參與 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(電商雲)等标準産品的研發工作。

Jerry 對 SAP OData 服務的開發,測試,釋出,部署,測試,及基于各種不同 SAP 技術實作的 OData 服務的幕後技術實作細節和使用場合,均有着深入的研究。

基于 SEGW - Gateway Service Builder 的開發教程

  • 1. 在 SAP ABAP 事物碼 SEGW 裡建立 SAP OData 項目
  • 2. 在 SAP ABAP 系統對事物碼 SEGW 建立的 OData 服務進行配置并測試
  • 3. SAP ABAP OData 服務診斷工具 /IWFND/ERROR_LOG 的使用方法
  • 4. SAP ABAP OData 服務 Data Provider Class 的 GET_ENTITYSET 方法實作指南
  • 5. SAP ABAP OData 服務如何支援 $filter (過濾)操作
  • 6. 使用 Postman 工具高效管理和測試 SAP ABAP OData 服務
  • 7. SAP ABAP OData 服務如何支援 $orderby (排序)操作
  • 8. SAP ABAP OData 服務如何支援建立(Create)操作
  • 9. SAP ABAP OData 服務如何支援删除(Delete)操作
  • 10. SAP ABAP OData 服務如何支援修改(Update)操作
  • 11. 使用 HTTP PUT, PATCH 以及 MERGE 請求消費 SAP ABAP OData 服務修改操作的實作及其差別
  • 12. SAP ABAP OData 服務如何支援 $select 有選擇性地僅讀取部分模型字段值
  • 13. SAP ABAP OData 服務的分頁加載資料集的實作(Paging)
  • 14. 幾種 SAP ABAP OData 服務的性能評估和測試工具介紹
  • 15. SAP ABAP OData 服務裡 EntityType 和 EntitySet 的差別
  • 16. 如何修改 SAP ABAP OData 模型,使其支援 $expand 操作
  • 更多文章正在寫作中,敬請期待

使用 Restful ABAP Programming 程式設計模型(簡稱 RAP) 開發 OData 服務

  • 正在寫作中,敬請期待

使用 SAP Cloud Application Programming 程式設計模型開發 OData 服務

  • 正在寫作中,敬請期待

@

目錄

  • ​​作者簡介​​
  • ​​基于 SEGW - Gateway Service Builder 的開發教程​​
  • ​​使用 Restful ABAP Programming 程式設計模型(簡稱 RAP) 開發 OData 服務​​
  • ​​使用 SAP Cloud Application Programming 程式設計模型開發 OData 服務​​
  • ​​OData 服務裡 $expand 操作的應用場景​​

OData 服務裡 $expand 操作的應用場景

本步驟到目前為止我們完成的 OData 模型建立,隻有一個節點即 Book. 在實際的項目中,OData 模型比我們教程裡出于教學目的而設計的模型複雜得多。

比如下圖是 SAP CRM My Opportunities Fiori 應用的 OData 模型,可以看到模型根節點 Opportunity 能夠導航到其他子節點,比如通過我們馬上要在本步驟學習的 ​

​Navigation Properties(導航屬性)​

​,從根節點 Opportunity 出發,可以導航到其他子節點。比如下圖黃色的 Products 是導航屬性之一,通過這個字段,可以導航到該 Opportunity 包含的所有 Products 資料。

如何修改 SAP ABAP OData 模型,使其支援 $expand 操作試讀版

這種 Opportunity 與 Products 的導航從屬關系,也展現在 Fiori 應用的 UI 上。My Opportunity 這個 Fiori 應用,Opportunity 的明細頁面有若幹個 Tab 标簽頁,從第二個标簽頁開始,每個标簽頁對應着 Opportunity OData 模型的一個子節點。以下圖 Products 标簽頁為例,其包含的資料,技術上就是通過 Opportunity 根節點,借助 Products 這個 Navigation Property,導航到 OData 模型子節點 Products 所擷取的。

如何修改 SAP ABAP OData 模型,使其支援 $expand 操作試讀版

我們打開 Chrome 開發者工具 network 标簽頁,發現一個 HTTP 請求的 url:

​GET Opportunities(guid'FA163EE5-6C3A-1ED6-9DC1-C10749724C39')?$expand=Competitors,Products,OpportunityLogSet HTTP/1.1​

如何修改 SAP ABAP OData 模型,使其支援 $expand 操作試讀版