正如本教程的開篇介紹文章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 服務的幕後技術實作細節和使用場合,均有着深入的研究。

使用 Restful ABAP Programming 程式設計模型(簡稱 RAP) 開發 OData 服務
- 正在寫作中,敬請期待
使用 SAP Cloud Application Programming 程式設計模型開發 OData 服務
- 正在寫作中,敬請期待
本教程的前九篇文章,我們已經先後介紹了 SAP ABAP OData 服務,如何支援讀取和過濾這兩種不會引起系統出現 Side Effect(即系統狀态被影響)的操作,以及建立(Create)和删除(Delete) 這兩種會引起系統出現 Side Effect 的操作。
本文繼續介紹 SAP ABAP OData 服務如何實作修改(Update)操作。
我們使用事物碼 SEGW 打開之前建立的 OData 模型,發現 Book 模型上隻有
stock_number
即庫存數量可以支援修改,即 Updatable 屬性被選中。
這個設定符合現狀,因為圖書一旦出版之後,圖書編号,圖書名稱,作者編号和作者名稱顯然不能再更改了。
下面介紹如何在 Postman 裡通過發送 HTTP PATCH 請求的方式,來修改指定圖書的庫存數量。
Postman 裡發送如下請求,指定更新名為 CPI 的圖書的庫存為 1:
成功執行後,SE16 事物碼裡檢視名叫 CPI 這本圖書對應的記錄,發現庫存資料 STOCK_NUMBER 已經更新成最新的值了:
OData 伺服器的詳細實作步驟如下。
相信有不少朋友注意到了,在 SAP ABAP Gateway Client 裡,除了本文使用的 PATCH 類型的請求之外,還存在另外兩個語義類似的 HTTP 操作:MERGE 和 PUT. 如何讓自己的 SAP ABAP OData 服務也支援通過這兩種類型的 HTTP 請求來消費呢?我們在本教程下一步驟介紹。