如何在SAP雲平台ABAP編程環境里把CDS view暴露成OData服務
- 2019 年 10 月 6 日
- 筆記
Jerry 2016年在學習SAP CDS view時,曾經寫過一個CDS view的自學系列,其中有一篇提到了一個很方便的註解:
@OData.publish: true

加上這個註解的CDS view,一旦激活後就會在ABAP Netweaver自動生成一個OData服務,在事務碼/IWFND/MAINT_SERVICE里將其搜索出來並添加,就能夠以OData服務的方式,消費這個view暴露出來的數據了。

當然@OData.publish這個註解為什麼有這種神奇的魔力,在Jerry之前的部落格里有詳細介紹。
那麼到了SAP雲平台ABAP環境上,因為我們無法訪問SAP GUI,所以要實現同樣的效果,無法直接照搬上述步驟。幸運的是,在雲上進行CDS view暴露的步驟依然簡潔,整個過程5分鐘就能搞定。
用ABAP Development Tools像登錄On-Premises ABAP系統那樣登錄ABAP雲環境,新建一個Service definition:


在Service的實現體里,使用關鍵字expose將ABAP環境里的標準view,I_Currency以Service的方式暴露出來。

這個Service需要以Service Binding的方式暴露成OData服務:

把第一步創建的Service分配給這個Service Binding:

注意下圖右邊的Service Details標籤頁里,此時是空的。點擊Publish按鈕:

發布成功後,我們看到了之前在Service實現里把I_Currency暴露成的名為Currency的實體:

對這個Currency Entity點右鍵,選擇Open Fiori Elements App Preview,就能在預覽模式下通過一個標準通用的Fiori Elements應用把當前系統上I_Currency里的數據顯示出來:


點擊這個Service URL超鏈接,也能直接打開對應OData服務的元數據(metadata)鏈接:


至此我們就可以用各種消費端來使用這個通過I_Currency暴露成的OData服務了,當然也可以開發一個SAP Fiori來消費,Jerry後續會介紹。
感謝閱讀。
