還在用ABAP進行SAP產品的二次開發?來了解下這種全新的二次開發理念吧

Jerry從2018年末至今,已經寫了一系列關於SAP Kyma的文章,您能夠移步到本文末尾得到這些文章的列表。Kyma是SAP開源的一個基於Kubernetes的雲原生應用開發平臺,可以容許SAP的partners以簡捷而現代的方式,對SAP的雲解決方案和傳統On Premises產品進行鏈接,集成和擴展。所謂「現代」,即partners在進行二次開發時,能夠充分利用近些年來企業級開發領域不斷涌現出的新技術,好比Serverless計算,微服務架構等等。git

clipboard1,1

Kyma是徹底開源和免費的,任何人均可以試着在本身的本地電腦上進行安裝。固然,嘗試本身本地安裝有一些門檻,由於安裝過程當中須要從Google的網站上拖取一些Kubernetes相關鏡像,所以須要學會「科(fang)學(zhi)上(he)網(xie)」。github

而SAP Cloud Platform Extension Factory,是SAP在開源項目Kyma上進一步完善而推出的一個商業化解決方案,自己並不單獨賣,而是做爲SAP雲平臺的一個組成部分。編程

clipboard2,2

Kyma和SAP Cloud Platform Extension Factory的關係,就比如Open UI5和SAP Fiori目前使用的UI5框架之間的關係同樣。在Jerry這篇文章特殊的上下文裏,由於Jerry不想每次都敲出「SAP Cloud Platform Extension Factory這五個單詞」,因此下文仍是統一用Kyma這個詞。微信

Jerry以前的文章 WordPress,SAP Kyma和微信三者的集成,介紹瞭如何使用SAP Kyma中的Lambda Function,監聽WordPress中的post.created事件,從而完成對WordPress的加強。架構

今天這篇文章,讓咱們把經過SAP Kyma進行擴展的對象換成C/4HANA中的一朵雲,SAP Cloud for Customer(C4C)。Jerry但願每當C4C中有新的Opportunity建立時,C4C都會把這個事件通知給Kyma上的Lambda Function,後者做爲事件監聽函數,能夠進行對應的處理,具體作什麼邏輯,你們能夠試着開開本身的腦洞。框架

好比實現一個Account Address Enrichment的功能,就是用戶在C4C裏建立Account時,只須要維護基本的地址信息,而後點擊保存,C4C發送事件給Kyma,後者接到這個事件後,調用SAP API Hub上的Address微服務,把豐富事後的地址詳情經過C4C Account OData API調用的方式,寫回C4C。經過這個加強,減小了C4C用戶錄入數據的工做量,同時也展現了Kyma與被其擴展的C/4HANA產品的數據雙向讀寫功能。less

clipboard3,3

下面咱們就來看看這個擴展如何完成。ide

首先固然是要把C4C同Kyma創建起互相信任的鏈接了。對於SAP partners來講,好消息是這個鏈接的配置是一個黑盒子,經過下圖Kyma的Application Connector模塊完成,partners不須要了解其技術實現。函數

clipboard4,4

首先進入SAP Cloud for Customer的Administration的工做中心,打開General Settings視圖,進入Event Notification配置UI:微服務

clipboard5,5

新建一個C4C OData事件和API的消費者:

clipboard6,6

類型選擇SAP Cloud Platform Extension Factory,即Kyma:

clipboard7,7

這個Remote Environment URL從哪裏來呢?就是SAP Kyma應用裏的Application Connector對應的url:

clipboard8,8

到Kyma控制檯的應用裏,點擊Connect Application,就獲得了須要維護到C4C裏的url:

clipboard9,9

維護了回調用戶名和密碼以後,再添加Subscription,即您但願將Cloud for Customer系統裏的哪些BO事件,發佈給Kyma:

clipboard10,10

我選擇了Account和Opportunity這兩個BO的建立和更新事件,暴露給Kyma:

clipboard11,11

成功保存並激活配置:

clipboard12,12

回到Kyma的應用界面,在Provided Services & Events界面下,此時能看到Cloud for Customer發佈過來的API和事件了:

clipboard13,13

進入Kyma Service Management的Catalog界面下,找到從Cloud for Customer系統導入進來的服務,

clipboard14,14

進入服務明細,能觀察到Cloud for Customer系統發佈的BO事件的字段參數,

clipboard15,15

以及該C4C系統全部支持的OData API列表。若是咱們指望在Kyma的Lambda Function裏對C4C的數據進行寫回操做,就得使用這些OData API.

clipboard16,16

接下來,咱們就能夠基於這些API和事件進行Lambda Function的開發了。

首先基於C4C導入進來的服務,建立一個新的實例:

clipboard17,17

確保實例處於運行狀態:

clipboard18,18

而後基於該實例建立一個新的Lambda Function:

clipboard19,19

Lambda Function的觸發方式,選擇以前C4C暴露的BO建立和修改事件:

clipboard20,20

因爲文章篇幅緣由,這裏暫時不介紹在Kyma Lambda Function裏如何調用C4C的OData API,而只是簡單的打印出C4C傳遞過來的事件參數:

clipboard21,21

至此Kyma端的開發和配置就結束了,是否是以爲步驟很是簡單明瞭?

如今到C4C裏建立一個新的Opportunity,保存:

clipboard22,22

到C4C的Event Notification Monitoring界面去,觀察到Opportunity建立的事件已經成功被投遞到Kyma去了,對應的Kyma實例的url也能夠在投遞明細裏查看到。

clipboard23,23

再回到Kyma Lambda Function的日誌界面,這裏也看到了Lambda Function實現體裏打印出的來自C4C的事件明細:

clipboard24,24

爲何只打印了兩個guid呢?由於C4C暴露的BO事件,其參數規範裏就只包含了發生事件的當前節點和Root節點的guid. 至於如何在Kyma的Lambda Function裏調用C4C的OData, 我們未來再聊。

clipboard25,25

你們能夠試着比較一下,如何使用C4C傳統的二次開發方式,該如何監聽BO的建立和更新事件呢?那就是使用SAP Cloud Application Studio,在Solution裏建立BO加強,而後在BO節點上建立AfterModify並經過ABSL編程實現。 clipboard26,26

而SAP Kyma的橫空出世,確實像SAP的官方宣傳那樣,給SAP partners們提供了一種不一樣於過去在ABAP平臺上進行的全新的二次開發方式。經過SAP Kyma提供的事件監聽機制,進行SAP二次開發的從業人員再也不須要對被加強的SAP解決方案的技術細節有過多的瞭解,僅僅在Kyma Lambda Function定義好的接口上下文內,調用公開穩定的API,便可完成開發任務。

clipboard27,27

但願本文可以對廣大的SAP二次開發從業者們有所啓發,感謝閱讀。

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

相關文章
相關標籤/搜索