还在用ABAP进行SAP产品的二次开发?来了解下这种全新的二次开发理念吧
Jerry從2018年底至今,已經(jīng)寫了一系列關(guān)于SAP Kyma的文章,您可以移步到本文末尾獲得這些文章的列表。Kyma是SAP開源的一個基于Kubernetes的云原生應(yīng)用開發(fā)平臺,能夠允許SAP的partners以簡捷而現(xiàn)代的方式,對SAP的云解決方案和傳統(tǒng)On Premises產(chǎn)品進行連接,集成和擴展。所謂“現(xiàn)代”,即partners在進行二次開發(fā)時,可以充分利用近些年來企業(yè)級開發(fā)領(lǐng)域不斷涌現(xiàn)出的新技術(shù),比如Serverless計算,微服務(wù)架構(gòu)等等。
Kyma是完全開源和免費的,任何人都可以試著在自己的本地電腦上進行安裝。當然,嘗試自己本地安裝有一些門檻,因為安裝過程中需要從Google的網(wǎng)站上拖取一些Kubernetes相關(guān)鏡像,因此需要學(xué)會“科(fang)學(xué)(zhi)上(he)網(wǎng)(xie)”。
而SAP Cloud Platform Extension Factory,是SAP在開源項目Kyma上進一步完善而推出的一個商業(yè)化解決方案,本身并不單獨賣,而是作為SAP云平臺的一個組成部分。
Kyma和SAP Cloud Platform Extension Factory的關(guān)系,就好比Open UI5和SAP Fiori目前使用的UI5框架之間的關(guān)系一樣。在Jerry這篇文章特殊的上下文里,因為Jerry不想每次都敲出“SAP Cloud Platform Extension Factory這五個單詞”,所以下文還是統(tǒng)一用Kyma這個詞。
Jerry之前的文章 WordPress,SAP Kyma和微信三者的集成,介紹了如何使用SAP Kyma中的Lambda Function,監(jiān)聽WordPress中的post.created事件,從而完成對WordPress的增強。
今天這篇文章,讓我們把通過SAP Kyma進行擴展的對象換成C/4HANA中的一朵云,SAP Cloud for Customer(C4C)。Jerry希望每當C4C中有新的Opportunity創(chuàng)建時,C4C都會把這個事件通知給Kyma上的Lambda Function,后者作為事件監(jiān)聽函數(shù),可以進行對應(yīng)的處理,具體做什么邏輯,大家可以試著開開自己的腦洞。
比如實現(xiàn)一個Account Address Enrichment的功能,就是用戶在C4C里創(chuàng)建Account時,只需要維護基本的地址信息,然后點擊保存,C4C發(fā)送事件給Kyma,后者接到這個事件后,調(diào)用SAP API Hub上的Address微服務(wù),把豐富過后的地址詳情通過C4C Account OData API調(diào)用的方式,寫回C4C。通過這個增強,減少了C4C用戶錄入數(shù)據(jù)的工作量,同時也展示了Kyma與被其擴展的C/4HANA產(chǎn)品的數(shù)據(jù)雙向讀寫功能。
下面我們就來看看這個擴展如何完成。
首先當然是要把C4C同Kyma建立起互相信任的連接了。對于SAP partners來說,好消息是這個連接的配置是一個黑盒子,通過下圖Kyma的Application Connector模塊完成,partners不需要了解其技術(shù)實現(xiàn)。
首先進入SAP Cloud for Customer的Administration的工作中心,打開General Settings視圖,進入Event Notification配置UI:
新建一個C4C OData事件和API的消費者:
類型選擇SAP Cloud Platform Extension Factory,即Kyma:
這個Remote Environment URL從哪里來呢?就是SAP Kyma應(yīng)用里的Application Connector對應(yīng)的url:
到Kyma控制臺的應(yīng)用里,點擊Connect Application,就得到了需要維護到C4C里的url:
維護了回調(diào)用戶名和密碼之后,再添加Subscription,即您希望將Cloud for Customer系統(tǒng)里的哪些BO事件,發(fā)布給Kyma:
我選擇了Account和Opportunity這兩個BO的創(chuàng)建和更新事件,暴露給Kyma:
成功保存并激活配置:
回到Kyma的應(yīng)用界面,在Provided Services & Events界面下,此時能看到Cloud for Customer發(fā)布過來的API和事件了:
進入Kyma Service Management的Catalog界面下,找到從Cloud for Customer系統(tǒng)導(dǎo)入進來的服務(wù),
進入服務(wù)明細,能觀察到Cloud for Customer系統(tǒng)發(fā)布的BO事件的字段參數(shù),
以及該C4C系統(tǒng)所有支持的OData API列表。如果我們期望在Kyma的Lambda Function里對C4C的數(shù)據(jù)進行寫回操作,就得使用這些OData API.
接下來,我們就可以基于這些API和事件進行Lambda Function的開發(fā)了。
首先基于C4C導(dǎo)入進來的服務(wù),創(chuàng)建一個新的實例:
確保實例處于運行狀態(tài):
然后基于該實例創(chuàng)建一個新的Lambda Function:
Lambda Function的觸發(fā)方式,選擇之前C4C暴露的BO創(chuàng)建和修改事件:
由于文章篇幅原因,這里暫時不介紹在Kyma Lambda Function里如何調(diào)用C4C的OData API,而只是簡單的打印出C4C傳遞過來的事件參數(shù):
至此Kyma端的開發(fā)和配置就結(jié)束了,是不是覺得步驟非常簡單明了?
現(xiàn)在到C4C里創(chuàng)建一個新的Opportunity,保存:
到C4C的Event Notification Monitoring界面去,觀察到Opportunity創(chuàng)建的事件已經(jīng)成功被投遞到Kyma去了,對應(yīng)的Kyma實例的url也可以在投遞明細里查看到。
再回到Kyma Lambda Function的日志界面,這里也看到了Lambda Function實現(xiàn)體里打印出的來自C4C的事件明細:
為什么只打印了兩個guid呢?因為C4C暴露的BO事件,其參數(shù)規(guī)范里就只包含了發(fā)生事件的當前節(jié)點和Root節(jié)點的guid. 至于如何在Kyma的Lambda Function里調(diào)用C4C的OData, 咱們將來再聊。
大家可以試著比較一下,如何使用C4C傳統(tǒng)的二次開發(fā)方式,該如何監(jiān)聽BO的創(chuàng)建和更新事件呢?那就是使用SAP Cloud Application Studio,在Solution里創(chuàng)建BO增強,然后在BO節(jié)點上創(chuàng)建AfterModify并通過ABSL編程實現(xiàn)。
而SAP Kyma的橫空出世,確實像SAP的官方宣傳那樣,給SAP partners們提供了一種不同于過去在ABAP平臺上進行的全新的二次開發(fā)方式。通過SAP Kyma提供的事件監(jiān)聽機制,進行SAP二次開發(fā)的從業(yè)人員不再需要對被增強的SAP解決方案的技術(shù)細節(jié)有過多的了解,僅僅在Kyma Lambda Function定義好的接口上下文內(nèi),調(diào)用公開穩(wěn)定的API,即可完成開發(fā)任務(wù)。
希望本文能夠?qū)V大的SAP二次開發(fā)從業(yè)者們有所啟發(fā),感謝閱讀。
要獲取更多Jerry的原創(chuàng)文章,請關(guān)注公眾號"汪子熙":
總結(jié)
以上是生活随笔為你收集整理的还在用ABAP进行SAP产品的二次开发?来了解下这种全新的二次开发理念吧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: engagement center ti
- 下一篇: 3DSMAX怎么制作超钳子和螺丝刀 3D