日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SAP API开发方法大全

發(fā)布時間:2023/12/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SAP API开发方法大全 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Jerry之前的文章:**從SAP Leonardo到SAP Data Intelligence?**曾經(jīng)提到,SAP Leonardo Machine Learning Foundation的機器學習API已經(jīng)被標注為deprecated狀態(tài),將由SAP新的AI產品,SAP Data Intelligence所替代。

在學習SAP Data Intelligence的過程中,Jerry算是了解到了一種新的API開發(fā)方式。本文首先簡單回顧一下我從事SAP開發(fā)工作13年以來,接觸過的各種SAP API的開發(fā)方式,然后再介紹SAP Data Intelligence里遵循Low Code Development(低代碼開發(fā))理念的API開發(fā)方式。

目錄

(1) ABAP function module + SOAMANAGER
(2) 基于事務碼SEGW的SAP CRM OData服務手動實現(xiàn)
(3) 基于CDS view的OData服務自動生成
(4) SAP Cloud for Customer里基于Business Object的自定義OData API創(chuàng)建
(5) 基于Java SpringBoot,Node Express等Web應用框架的API開發(fā)
(6) Serverless 架構
(7) SAP Data Intelligence Graph

本文提到的API,指的是通過HTTP協(xié)議暴露出來,能直接通過瀏覽器,Postman,curl等各種工具,以及各種編程語言消費的API. 在SAP生態(tài)圈內,最常遇到的是基于SOAP的Web Service和串聯(lián)SAP S/4HANA前后臺的OData服務。

(1) ABAP function module + SOAMANAGER

最古老的技術,把ABAP系統(tǒng)里的函數(shù)通過SOAMANAGER發(fā)布成Web Service. 雖然古老,但至今S/4HANA里的Service模塊的新功能開發(fā)還在使用。

https://blogs.sap.com/2014/05/20/step-by-step-to-create-consume-and-trace-web-service-in-abap-system/

我2014年的時候也寫過一篇介紹SOAMANAGER使用步驟的文章,雖然到現(xiàn)在為止,這個工具已經(jīng)更新?lián)Q代多次了。

(2) 基于事務碼SEGW的SAP CRM OData服務手動實現(xiàn)

這是我最熟悉的SAP OData服務實現(xiàn)方式,因為我就是SAP CRM OData服務的開發(fā)者之一。SAP成都研究院CRM開發(fā)團隊在2014和2015年開發(fā)這些OData服務時,SAP Fiori Elements的前身,當時的名稱是Smart Template,還處于發(fā)展初期,所以那時候我們沒有選擇這項基于元數(shù)據(jù)驅動的開發(fā)方式。

Jerry在2018年寫過一篇文章 SAP OData編程指南, 里面詳細介紹了這種方法。

(3) 基于CDS view的OData服務自動生成

再后來,隨著CDS view和Fiori Elements的成熟,我們可以基于加上了@OData.publish注解的CDS view,直接生成OData服務了,具體工作原理在我的這篇文章里有介紹:

揭開SAP Fiori編程模型規(guī)范里注解的神秘面紗 - @OData.publish工作原理解析

在S/4HANA里,除了在ABAP Development Tool里手動給CDS view加上@OData.publish注解之外,還可以采取另一種方式,純粹在瀏覽器里完成操作。

使用S/4HANA里的Custom CDS Views這個應用,

可以選擇S/4HANA里多個標準的CDS view來創(chuàng)建新的復合視圖,

并能根據(jù)自己的需求,來挑選哪些標準視圖的字段需要包含到新的復合視圖里:

最后也是一鍵實現(xiàn)復合視圖的OData服務發(fā)布。

到了SAP云平臺ABAP環(huán)境上,基于CDS view創(chuàng)建的Service Definition和Service Binding,把OData服務和Fiori UI界面的創(chuàng)建全部包辦了。

更多關于這種基于Restful ABAP Programming模型的開發(fā)方式,請參考我的文章?30分鐘用Restful ABAP Programming模型開發(fā)一個支持增刪改查的Fiori應用。

(4) SAP Cloud for Customer里基于Business Object的自定義OData API創(chuàng)建

前面在SAP S/4HANA Fiori Launchpad里看到的Custom CDS View這個應用,即使不太懂技術的Key User,也能在瀏覽器里完成字段的搭配和OData服務的發(fā)布。

SAP Cloud for Customer也有類似的設計,只不過供Key User選擇的不是CDS view,而是C4C里標準的Business Object.


Key User在瀏覽器的Custom OData Service應用里能選擇將Business Object節(jié)點里的哪些字段發(fā)布到OData服務里,此操作同SAP S/4HANA里選擇標準CDS view字段的思路是一樣的。

在C4C的Cloud Application Studio里,還能基于標準Business Object創(chuàng)建Web Service.

總結:基于ABAP技術棧的SAP產品,運行于其上的OData或者Web Service這些API,本質都是通過ABAP Netweaver的ICF(Internet Communication Framework)被外界消費的。我們觀察其調用Url路徑,就能找到SICF事務碼里的對應的處理節(jié)點。

以SAP CRM OData服務Url末尾的CRM_OPPORTUNITY為例:

在SICF事務碼里能找到對應的同名節(jié)點。我們只需要在SICF里給這個節(jié)點綁定一個ABAP類,該節(jié)點對應的Url通過瀏覽器或者Postman,或者其他編程語言訪問時,ABAP ICF框架就會自動調用綁定的ABAP類。

也就是說,應用開發(fā)人員只需要在ABAP類里實現(xiàn)業(yè)務邏輯,至于這個類運行時的實例如何被ICF調用,如何初始化和銷毀等生命周期管理,ABAP開發(fā)人員完全不用操心。

關于更多ABAP ICF的介紹,請參考我的文章:一個13年ABAP老兵的建議:了解這些基礎知識,對ABAP開發(fā)有百利而無一害

(5) 基于Java SpringBoot,Node Express等Web應用框架的API開發(fā)

采用此類開發(fā)方式的生態(tài)圈是全球最龐大最活躍的群體,技術成熟穩(wěn)定,相關文檔和教材非常豐富。更新更先進的開發(fā)框架也在不斷演化。開發(fā)人員通常在本地完成開發(fā),再將應用部署到服務器上運行。也可以將應用打包成容器鏡像,再以容器的方法運行在物理服務器或者SAP云平臺,AWS,Google Cloud Platform,Azure等各種云上。容器數(shù)量到達一定規(guī)模之后,可以采用Kubernetes進行編排管理。

Jerry這篇文章介紹了一個例子:在SAP云平臺上部署和運行Docker應用。

Jerry之前的項目里也消費過SAP Commerce的Web Service:如何使用API的方式消費SAP Commerce Cloud的訂單服務。

(6) Serverless 架構

云計算行業(yè)里的一個熱門詞匯,Serverless架構,并不意味著采用這個架構后就再也不需要服務器了,而是指應用開發(fā)人員不用關心開發(fā)好的應用如何部署到服務器,不需要考慮服務器的運行狀態(tài)等運營和維護問題。傳統(tǒng)Web應用的開發(fā)思路,如Jerry之前介紹的那樣,通常在本地完成開發(fā)和單元測試,然后需要考慮采用何種方式,部署到何種服務器或者云上。

而基于Serverless架構的API/服務開發(fā),根本就沒有API部署的這個步驟。以Jerry之前介紹過的SAP Kyma上的Lambda Function為例,API函數(shù)本身的代碼編寫就是在云上完成。一旦保存,只要API維護的觸發(fā)條件滿足(事件觸發(fā)或者Url觸發(fā)),該API立即被調用。

下圖是我在SAP Kyma里使用nodejs編寫的一個Lambda Function:

我設置其通過HTTPS的方式被調用:

在瀏覽器里訪問這個HTTPS-endpoint,Lambda Function立即執(zhí)行。

從這個角度講,Jerry覺得ABAP開發(fā)人員,在開發(fā)API的時候,一直就在享受著Serverless架構帶來的便利。因為ABAP領域的開發(fā),無論是通過SAPGUI,ABAP Development Tool,還是通過各種Key User工具,本質上都是連接到ABAP Netweaver這個集應用開發(fā)和運行為一體的服務器上進行的,因而根本沒有傳統(tǒng)Java/nodejs開發(fā)里的應用部署這一環(huán)節(jié)。

關于更多如何使用Lambda Function實現(xiàn)API的介紹,請參考Jerry的文章:

  • 從ABAP Netweaver的SICF到SAP Kyma的Lambda Function

  • 周伯通的空明拳,米諾斯的星塵傀儡線,SAP Kyma的Serverless

(7) SAP Data Intelligence Graph

這種方式嚴格來講也算基于Serverless,使用者通過瀏覽器登錄SAP Data Intelligence控制臺,進行Graph建模。完成后啟動,Graph就直接運行在SAP Cloud Platform的Kubernetes基礎設施上了。

之所以把這種方式單獨拿出來介紹,是因為其又具有Low Code Development(低代碼開發(fā))的特質。

看一個具體的例子。

假設我想實現(xiàn)一個支持CRUD的API,消費者通過HTTP GET, POST和DELETE請求,能夠在數(shù)據(jù)庫里分別讀取,插入和刪除一條記錄。

低代碼開發(fā)平臺,通常都提供了圖形化的用戶界面,給使用者提供了通過拖拽組件和模型驅動開發(fā)的方式, 結合少量的編碼來快速創(chuàng)建應用或者API.

訪問SAP Data Intelligence Launchpad,進入Modeler:

我們像小朋友搭積木一樣,從左邊的工具箱里,拖拽HTTP Server和若干個JavaScript Handler到編輯頁面里。


這些積木一樣的組件搭配在一起,如何就實現(xiàn)了支持增刪改查的API功能的呢?由于篇幅原因,Jerry后續(xù)的文章會介紹,敬請繼續(xù)關注。

更多閱讀

  • SAP OData編程指南

  • 30分鐘用Restful ABAP Programming模型開發(fā)一個支持增刪改查的Fiori應用

  • 一個13年ABAP老兵的建議:了解這些基礎知識,對ABAP開發(fā)有百利而無一害

  • 在SAP云平臺上部署和運行Docker應用

  • 如何使用API的方式消費SAP Commerce Cloud的訂單服務

  • 從ABAP Netweaver的SICF到SAP Kyma的Lambda Function

  • 周伯通的空明拳,米諾斯的星塵傀儡線,SAP Kyma的Serverless

  • 從SAP Leonardo到SAP Data Intelligence

要獲取更多Jerry的原創(chuàng)文章,請關注公眾號"汪子熙":

總結

以上是生活随笔為你收集整理的SAP API开发方法大全的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。