SAP 2019 TechEd Key Note解讀:雲時代下SAP從業人員如何作二次開發?

剛剛過去的在巴塞羅那舉行的2019 SAP TechEd,SAP照例向全球廣大的SAP生態圈從業者們傳達了一些重要的信息,其中一條爲:Building Extensions for the Intelligent Enterprise on SAP Cloud Platform,中文即「在SAP雲平臺上爲智慧企業建立擴展應用」。git

本文是Jerry對SAP社區這篇博客Making development of extensions easier – SAP Cloud Platform Extension Factory的一些我的解讀,並不是逐字逐詞的簡單翻譯。編程

clipboard1,1

SAP的一個宏偉目標:未來SAP全部產品(不論是On-Premises仍是雲解決方案)的二次開發平臺,統一爲SAP雲平臺。而現狀是,SAP S/4HANA Cloud和SAP C/4HANA已經能夠經過SAP雲平臺擴展了,而上圖左邊的一些其餘產品,例如同爲雲解決方案的SAP Concur,以及本地部署的S/4HANA On-Premises和SAP ECC,如何用SAP雲平臺對這些產品作擴展,是SAP未來努力的方向。安全

目前SAP雲平臺上已經有了下列這些組件,SAP Cloud Platform的做用就是將它們組合起來(Orchestration),像Kubernetes編排pod那樣,讓其發揮出1+1>2的做用:框架

SAP Cloud Platform Extension Factory
SAP Cloud Application Programming Model (CAP)
ABAP RESTful Programming Model (RAP)
SAP Cloud Platform Enterprise Messaging
SAP Cloud SDK
SAP Web IDE
SAP Cloud Platform API Management
SAP API Business Hub
SAP Cloud Platform Workflowide

Connect securely & quickly

SAP Cloud Platform Extension Factory是SAP推薦的"智慧企業的專屬雲原生擴展框架",在開源項目Kyma的基礎上,藉助SAP雲平臺提供的Cloud Connector和Connectivity Service,保證了企業級應用所需的標準化和安全性。函數

clipboard2,2

Build efficiently & effectively

一旦SAP解決方案同SAP雲平臺創建綁定關係後,其對應實例就會被分配給雲平臺上的subaccount,而該產品支持的API和事件會發布到SAP雲平臺上。開發者們可以直接在雲平臺上瀏覽和消費這些API及事件。工具

覺得SAP S/4HANA Cloud建立擴展爲例,首先基於Open Service Broker API建立一個S/4HANA Cloud Extensibility Service的實例,而後在該subaccount space下的開發人員,便可將該實例綁定到本身建立的擴展應用去,並消費該實例暴露的服務。ui

clipboard3,3

開始搬磚以前,開發人員能夠在SAP推薦的兩種編程模型裏進行選擇,究竟是用SAP Cloud Application Programming Model (CAP) ,仍是ABAP RESTful Application Programming Model (RAP).編碼

先看看這兩種編程模型各自的特點。spa

基於CAP模型的擴展應用特點

(1) 天生支持多租戶(native multi-tenant enablement)
(2) 同一個SAP Cloud Platform帳號建立的基於CAP模型的應用能共享API和事件
(3) 終端用戶可以很容易的使用key user tool等工具對此類應用進行字段級別的擴展 - Field Extensibility

clipboard4
clipboard5

若是SAP解決方案的標準功能支持事件發佈,則能夠經過SAP Cloud Platform上一個叫作Enterprise Messaging的組件,將這些事件發佈到SAP Cloud Platform Extension Factory上,這樣SAP二次開發人員能夠訂閱這些事件,編寫對應的事件響應函數。

clipboard6,6

一些具體的例子:

clipboard7,7

下圖是對應的編碼實現訂閱S/4HANA Cloud系統服務訂單建立事件並做出響應的例子:經過eventBus實例註冊ServiceOrder.Created事件,在其觸發後,調用技師分配函數進行響應。

clipboard8,8

在分配S/4HANA Cloud系統裏的技師資源時,咱們須要消費對應的API,經過SAP Cloud SDK能夠輕易實現,不用從更底層的HTTP級別的函數調用開始編寫。

SAP Cloud SDK對底層API進行了封裝,寫起來如同天然語言同樣,可讀性極佳:

clipboard9
clipboard10

基於Restful ABAP Programming(RAP)模型的擴展應用特點

採用這種模型開發的擴展應用能享受到SAP在雲端ABAP領域提供的最新技術和特性,擴展自己同被擴展的解決方案核心代碼完全解除了耦合,所以又被稱爲Side-by-side擴展。這種模式的擴展能很好的實現所謂digital core code clean的目標。

因爲RAP模型自己的語言仍是ABAP,所以RAP在工做於ABAP技術棧的SAP產品擴展需求時顯得更加如魚得水。

clipboard11

基於Restful ABAP Programming模型的開發套路,Jerry以前的文章已經介紹過了:

clipboard12,12

(1) 根據實際業務建立基於CDS view的模型。

(2) 給模型添加transactional behavior,在validation,determination和actions裏編寫業務邏輯。

(3) 建立business service,將前面建立並實現的模型經過OData暴露出來。

(4) 建立Fiori Elements應用,消費第三步建立的business service,將業務數據經過Fiori UI展現出來。

總結一下,雲時代SAP從業人員進行二次開發的工具集:

SAP Cloud Platform, Application runtime
SAP Cloud Platform, ABAP environment
SAP Cloud Platform Enterprise Messaging
SAP Web IDE
SAP Cloud Platform Connectivity (includes Cloud Connector for on-premise connectivity)
SAP Cloud SDK
SAP Cloud Platform API Management
SAP API Business Hub

SAP官網上給出的SAP Cloud Platform Extension Factory演進的路線圖
clipboard13,13

好比圖中標註的,在2019年第四季度,SAP Cloud Platform Extension Factory會添加對SAP S/4HANA On-Premises的支持。固然,路線圖中標註了一條:

"This is the current state of planning and may be changed by SAP at any time without notice".

讓咱們在之後的平常工做中,好好消化SAP經過TechEd傳達給咱們的這一精神吧,感謝閱讀。

要獲取更多Jerry的原創文章,請關注公衆號"汪子熙":
公衆號截圖

相關文章
相關標籤/搜索