剛剛過去的在巴塞羅那舉行的2019 SAP TechEd,SAP照例向全球廣大的SAP生态圈從業者們傳達了一些重要的資訊,其中一條為:Building Extensions for the Intelligent Enterprise on SAP Cloud Platform,中文即“在SAP雲平台上為智慧企業建立擴充應用”。
本文是Jerry對SAP社群這篇部落格
Making development of extensions easier – SAP Cloud Platform Extension Factory 的一些個人解讀,并非逐字逐詞的簡單翻譯。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 Workflow
Connect securely & quickly
SAP Cloud Platform Extension Factory是SAP推薦的"智慧企業的專屬雲原生擴充架構",在開源項目Kyma的基礎上,借助SAP雲平台提供的Cloud Connector和Connectivity Service,保證了企業級應用所需的标準化和安全性。
Build efficiently & effectively
一旦SAP解決方案同SAP雲平台建立綁定關系後,其對應執行個體就會被配置設定給雲平台上的subaccount,而該産品支援的API和事件會釋出到SAP雲平台上。開發者們能夠直接在雲平台上浏覽和消費這些API及事件。
以為SAP S/4HANA Cloud建立擴充為例,首先基于Open Service Broker API建立一個S/4HANA Cloud Extensibility Service的執行個體,然後在該subaccount space下的開發人員,即可将該執行個體綁定到自己建立的擴充應用去,并消費該執行個體暴露的服務。
開始搬磚之前,開發人員可以在SAP推薦的兩種程式設計模型裡進行選擇,到底是用SAP Cloud Application Programming Model (CAP) ,還是ABAP RESTful Application Programming Model (RAP).
先看看這兩種程式設計模型各自的特色。
基于CAP模型的擴充應用特色
(1) 天生支援多租戶(native multi-tenant enablement)
(2) 同一個SAP Cloud Platform賬号建立的基于CAP模型的應用能共享API和事件
(3) 終端使用者能夠很容易的使用key user tool等工具對此類應用進行字段級别的擴充 - Field Extensibility
如果SAP解決方案的标準功能支援事件釋出,則可以通過SAP Cloud Platform上一個叫做Enterprise Messaging的元件,将這些事件釋出到SAP Cloud Platform Extension Factory上,這樣SAP二次開發人員可以訂閱這些事件,編寫對應的事件響應函數。
一些具體的例子:
- Simplified extensions for the Intelligent Enterprise with SAP Cloud Platform Extension Factory and Enterprise Messaging
- New service plan and UI for SAP Cloud Platform Enterprise Messaging
下圖是對應的編碼實作訂閱S/4HANA Cloud系統服務訂單建立事件并作出響應的例子:通過eventBus執行個體注冊ServiceOrder.Created事件,在其觸發後,調用技師配置設定函數進行響應。
在配置設定S/4HANA Cloud系統裡的技師資源時,我們需要消費對應的API,通過SAP Cloud SDK可以輕易實作,不用從更底層的HTTP級别的函數調用開始編寫。
SAP Cloud SDK對底層API進行了封裝,寫起來如同自然語言一樣,可讀性極佳:
基于Restful ABAP Programming(RAP)模型的擴充應用特色
采用這種模型開發的擴充應用能享受到SAP在雲端ABAP領域提供的最新技術和特性,擴充本身同被擴充的解決方案核心代碼徹底解除了耦合,是以又被稱為Side-by-side擴充。這種模式的擴充能很好的實作所謂digital core code clean的目标。
由于RAP模型本身的語言還是ABAP,是以RAP在工作于ABAP技術棧的SAP産品擴充需求時顯得更加如魚得水。
基于Restful ABAP Programming模型的開發套路,Jerry之前的文章已經介紹過了:
(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 Connectivity (includes Cloud Connector for on-premise connectivity)
SAP官網上給出的SAP Cloud Platform Extension Factory演進的
路線圖:
比如圖中标注的,在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傳達給我們的這一精神吧,感謝閱讀。
本文來自雲栖社群合作夥伴“汪子熙”,了解相關資訊可以關注微信公衆号"汪子熙"。