SAP 2019 TechEd Key Note解读:云时代下SAP从业人员如何做二次开发?
剛剛過去的在巴塞羅那舉行的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 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演進的路線圖:
比如圖中標注的,在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的原創文章,請關注公眾號"汪子熙":
總結
以上是生活随笔為你收集整理的SAP 2019 TechEd Key Note解读:云时代下SAP从业人员如何做二次开发?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 宝马“失火”殃及冰激凌品牌 官方紧急澄清
- 下一篇: 恒定F2.8大光圈!佳能发布旗舰远摄变焦