亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

基于SAP Kyma的訂單編排增強介紹

CoorChice / 2830人閱讀

摘要:當然,不同的產(chǎn)品,對訂單增強的實現(xiàn)方式也各不相同。在世界里,想對訂單處理流程做增強,同之前介紹的相比,相對來說受的限制要多一些。首單檢查返回的分數(shù)是,根據(jù)當前配置文件這個結(jié)果被認定為首單。

盡管有一萬個舍不得,2018年還是無可挽回地離我們遠去了。

唯有SAP成都研究院的同事和我去年在網(wǎng)絡(luò)上留下的這些痕跡,能證明2018年我們曾經(jīng)很認真地去度過每一天:

SAP成都研究院2018年總共87篇技術(shù)文章合集

一個SAP開發(fā)人員的2018年終總結(jié)

今天寫的這篇文章也是因為工作需要。本文會首先介紹SAP傳統(tǒng)產(chǎn)品里的訂單編排增強技術(shù),再來了解一下同樣的增強需求,SAP Kyma是如何完成的。

目錄

基于SAP傳統(tǒng)ABAP技術(shù)的訂單編排增強技術(shù)

基于SAP Kyma的訂單編排增強技術(shù)

SAP產(chǎn)品里的訂單處理流程,無論是On-Premises解決方案還是云產(chǎn)品,我認為歸根到底可以概括成四個字:訂單編排,包含兩個層次的內(nèi)容:

1. 單個訂單通過業(yè)務流程或者工作流驅(qū)動的狀態(tài)遷移,比如從初始的Created狀態(tài),經(jīng)過一系列操作,最后進入Closed狀態(tài);

2. 多種類型的訂單協(xié)同工作,完成一個完整的端到端業(yè)務流程。典型的例子有銷售自動化(Sales Force Automation)里的從Lead, Opportunity, Quotation到Contract,Order這些不同類型的訂單協(xié)同。

SAP系統(tǒng)里訂單狀態(tài)的遷移到底有多復雜?復雜度絕對遠超初學者的想象。

以SAP CRM為例,在我使用的SAP CRM 714系統(tǒng)里,訂單狀態(tài)總共有906種,這不得不讓人佩服SAP CRM當初的設(shè)計者考慮問題的周全。

即便已經(jīng)設(shè)計了這九百零幾種狀態(tài),SAP仍然考慮到了客戶可能的狀態(tài)擴展需求,因此采用了一種經(jīng)典的User Status(用戶自定義狀態(tài))和System Status(SAP標準狀態(tài))的兩層狀態(tài)設(shè)計,讓用戶能夠隨便定義的User Status通過扮演中間層角色的Business Transaction,映射到能夠被SAP標準程序所感知的System Status。

上圖左邊的Open, In process, Released和Completed就是用戶自定義訂單狀態(tài),SAP允許客戶給每個狀態(tài)分配一個Low和High的值,通過這兩個值巧妙地提供了一種用非圖形化方式進行狀態(tài)跳轉(zhuǎn)的功能。

比如In process狀態(tài)的Low為20,意味著In process狀態(tài)不可能重新回到Open狀態(tài),因為Open狀態(tài)的ID 10小于In process狀態(tài)的Low字段定義的20——一個狀態(tài)能跳轉(zhuǎn)到的目標狀態(tài)的ID,必須位于由該字段的Low和High定義的區(qū)間內(nèi)。

除了復雜的狀態(tài)處理和跳轉(zhuǎn)外,SAP訂單編排的復雜度主要體現(xiàn)在以下方面:

1. 很多SAP的客戶,除了購買SAP的On-Premises產(chǎn)品或者訂閱云服務外,還擁有其他業(yè)務系統(tǒng)。這類客戶的訂單編排,在SAP標準業(yè)務流程基礎(chǔ)上往往還存在和這些第三方業(yè)務系統(tǒng)的交互。

2. 即使是同一行業(yè)的客戶群,因為地域和國家,語言的差異,可能業(yè)務流程也存在一定的區(qū)別。SAP發(fā)布的標準功能有時無法100%支持這些在細節(jié)上存在千差萬別的業(yè)務流程。

因此SAP系統(tǒng)對訂單編排增強的支持就非常必要。

當然,不同的SAP產(chǎn)品,對訂單增強的實現(xiàn)方式也各不相同。

在SAP CRM里,雖然SAP沒有明確提出Business Object這個概念,但訂單應用基于的模型實際上仍然是由不同的節(jié)點組成:

每個節(jié)點對應一些更底層的模型節(jié)點,其上可以注冊各種事件處理函數(shù)。下圖是Service Request這個BO的抬頭節(jié)點的事件處理函數(shù):

每種事件觸發(fā)時,注冊的函數(shù)會自動執(zhí)行。

每個節(jié)點可以分配一個或多個執(zhí)行函數(shù)。當然,嚴謹?shù)牡聡嗽谧詈唵蔚挠^察-發(fā)布者模式上又添加了幾個維度的設(shè)置。

下圖第一列紅色的Execution Time,表示這些分配的函數(shù)到底是事件觸發(fā)后立即執(zhí)行,還是延遲到訂單抬頭或者行項目的通用例程執(zhí)行完后再執(zhí)行(往往用于實現(xiàn)批量操作,或者待執(zhí)行函數(shù)同通用例程存在依賴關(guān)系,或者出于性能考慮)。

第二列的Priority,即函數(shù)執(zhí)行優(yōu)先級,如果若干函數(shù)除了優(yōu)先級外其他維度維護的屬性完全一致,則按優(yōu)先級從高到低依次執(zhí)行。

第三列Event,就是觀察者-發(fā)布者模式里的事件了,下面是SAP CRM訂單框架一些標準的事件:

最后一列就是事件監(jiān)聽函數(shù)。

Jerry傾向于把CRM訂單處理系統(tǒng)的運作方式理解成類似下圖這種復雜的水管傳輸系統(tǒng),訂單業(yè)務流程依次通過注冊在不同事件上的監(jiān)聽函數(shù)去執(zhí)行,就像水從這一根根大小粗細長短各異的水管流過一樣。

如果客戶對其中某個業(yè)務步驟需要做增強(需要替換某根水管), 只需要用一個自己實現(xiàn)的函數(shù)去替換SAP標準函數(shù)(自己另外找一根水管替換掉現(xiàn)在正在工作的水管),能替換的前提是自己實現(xiàn)的函數(shù)的接口同被替換函數(shù)完全一致(自己另外找的水管和以前的水管兩端接口的規(guī)格完全一致)。

而SAP Cloud for Customer里的訂單模型,其Business Object在目前最新的1811版本里仍然是由ESF2框架實現(xiàn),只是后臺對Partners不可見,但大家可以類比SAP On-Premises世界里的BOPF框架,兩個框架的實現(xiàn)原理類似。

在Cloud世界里,想對訂單處理流程做增強,同之前介紹的SAP CRM相比,相對來說受的限制要多一些。

在Partner做增強開發(fā)的Cloud Application Studio里,所有能做增強的點以Hook的方式顯示如下:

Partners可以在這些Hook里進行業(yè)務功能增強開發(fā)。有些Hook可能存在某些讀寫限制,比如AfterLoading這個Hook,會在SAP BO的標準加載邏輯執(zhí)行完畢后被調(diào)用,在這個Hook的實現(xiàn)里,SAP不允許任何對BO節(jié)點標準字段的寫操作,以避免Partners的增強對SAP標準流程可能帶來的影響。有的顧問朋友可能會說,這些Hook不就是SAP Netweaver里傳統(tǒng)的Business AddIn(BAdI)么?沒錯,概念上可以這么理解,需要提醒的就是,這些Hook創(chuàng)建之后,在ABAP后臺并不是以BAdI Implementation的方式存儲,而是以ESF2 Determination的方式存儲,類似下圖這種BOPF里的Determination:

我們再來了解一下用SAP Kyma如何完成類似的需求。在使用Kyma之前,大家得對Kyma是什么,SAP為什么要開發(fā)出Kyma這兩個問題比較清楚才行。我之前的文章?站在巨人肩膀上的牛頓:Kubernetes和SAP Kyma?已經(jīng)介紹了這兩個問題的答案,所以本文不再重復,直接上實例了。

我們假設(shè)需要對SAP Hybris Commerce的下單流程做增強,在標準的Fraud(欺詐)檢查里加入我們在Kyma里實現(xiàn)的自定義檢查流程。

如下圖所示,其中淺藍色的矩形框代表我們用Kyma實現(xiàn)的自定義Fraud檢查邏輯。

具體增強了哪些檢查邏輯呢?從下的訂單里拿到下訂單的客戶ID,然后在Kyma里調(diào)用SAP Marketing Cloud和SAP云平臺上提供的服務對這個客戶做校驗,Kyma拿到校驗結(jié)果后,再傳回Commerce。

下面是具體步驟。

1. 首先登錄Commerce的back office頁面,定義一個新的action,ID為EXTERNAL_KYMA_FRAUD_CHECK。做過ABAP開發(fā)的朋友們不難理解這個action,可以類比成ABAP里的action profile,用于存儲和維護Partner的增強。

2. 進到Kyma的console頁面:

選擇一個stage進去,點擊Lambdas進入編輯頁面:

新建一個Lambda function,取名fraudcheck2。我們所有的增強邏輯就寫在這個函數(shù)里。

這個函數(shù)自動創(chuàng)建的標簽(Labels),Kubernetes老司機們一定覺得很親切。這些標簽其實和大家現(xiàn)實工作中使用云筆記里的標簽,以及圖片管理軟件里的標簽作用相同,就是一種鍵值對(Key Value Pair), 可以允許用戶將Kubernetes對象進行靈活分組,并提供高效的檢索。

這個標簽的概念不是Kyma發(fā)明的,而是Kubernetes的標準功能。

Function Trigger里可以指定這些Lambda函數(shù)在哪些事件觸發(fā)后執(zhí)行,思路和前文介紹的SAP CRM函數(shù)注冊一致。選擇第一步定義了新的action后對應的event:

關(guān)于Lambda函數(shù)具體的實現(xiàn),做過nodejs開發(fā)的朋友們一定不會覺得陌生。

首先第18行,19行從event這個輸入?yún)?shù)對象里取得發(fā)生事件的訂單Code,然后第26行消費OCC(Omni Commerce Channel)Restul API獲得訂單明細,從明細里獲得訂單的客戶ID,再調(diào)用第30行的代碼根據(jù)客戶ID拿到客戶明細,然后使用第37行和第40行的代碼分別檢查該客戶的郵箱地址是否有效,以及該客戶是否第一次下單。

注意第43行和46行的代碼我暫時注釋掉,稍后才會啟用。

現(xiàn)在我們來測試一下。在Commerce里下一個單,記下訂單ID 2139。

回到Commerce back office頁面,查看剛才下的訂單的Business Process,輸入2139進行查詢:

這里根據(jù)ID EXTERNAL_KYMA_FRAUD_CHECK進行搜索,找到了剛才第一步新建的基于Kyma action對應的流程日志記錄:

我們再去查看這個訂單的Fraud檢查記錄:

點這個Fraud Reports查看檢查結(jié)果。這個標簽從左到右依次排開的風格很像Fiori和ABAP Webdynpro。

可以看見前文介紹的Email有效性檢查和是否是首單的檢查結(jié)果。

Email檢查結(jié)果:客戶的郵箱地址有效。

首單檢查返回的分數(shù)是100,根據(jù)當前Commerce配置文件這個結(jié)果被認定為首單。具體配置文件的位置和本文主題無關(guān),這里不詳述。

現(xiàn)在再回到Kyma的Lambda函數(shù)編輯器里,將之前注釋掉的從Marketing Cloud獲取聯(lián)系人地址的函數(shù)以及調(diào)用SAP云平臺的Business Partner服務的函數(shù)重新啟用:

啟用之后,保存,然后進入Service Catalog。這個組件也是Kubernetes提供的標準組件,Kyma基于它做了增強,能夠?qū)⒌谌降姆諏脒M來給Kyma的Lambda函數(shù)消費。

這里能看到已經(jīng)導入了很多第三方服務。我們其實可以把這個界面類比成SAP云平臺的Service Market Place。

選擇SAP云平臺的Business Partner Service:

接下來的步驟和我們在SAP云平臺上消費一個服務類似,首先創(chuàng)建一個服務實例:

然后再基于這個服務實例創(chuàng)建一個綁定,

綁定類型設(shè)置成Function Binding,綁定的目標設(shè)置成之前編輯好的Lambda函數(shù)。

現(xiàn)在再下一個單試試,下單客戶選擇同第一個訂單相同的客戶:

這一次,這個第二次下的訂單的Fraud檢查報告,同第一個訂單相比就多了兩條記錄:

首先看第二條首單檢查的記錄,得分為0,和我們期望的結(jié)果一致,因為這已經(jīng)不是該客戶第一次下單了:

從Marketing Cloud的服務返回的檢查結(jié)果:

從SAP云平臺的Business Partner服務返回的結(jié)果可以看出,下單的這個客戶不存在一個對應的Business Partner。

本文這個例子,在Commerce下單流程中通過Kyma去訪問Marketing Cloud和SAP云平臺上的服務進行額外的Fraud檢查,業(yè)務上來說可能意義不大,更多的是從技術(shù)的角度出發(fā),介紹了這種基于微服務架構(gòu)的訂單編排增強方式。

祝大家新年快樂!?

相關(guān)閱讀

站在巨人肩膀上的牛頓:Kubernetes和SAP Kyma

在Kubernetes上運行SAP UI5應用(上)

在Kubernetes上運行SAP UI5應用(下)

要獲取更多Jerry的原創(chuàng)文章,請關(guān)注公眾號"汪子熙":

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/33125.html

相關(guān)文章

  • 基于SAP Kyma訂單編排增強介紹

    摘要:當然,不同的產(chǎn)品,對訂單增強的實現(xiàn)方式也各不相同。在世界里,想對訂單處理流程做增強,同之前介紹的相比,相對來說受的限制要多一些。首單檢查返回的分數(shù)是,根據(jù)當前配置文件這個結(jié)果被認定為首單。 盡管有一萬個舍不得,2018年還是無可挽回地離我們遠去了。 唯有SAP成都研究院的同事和我去年在網(wǎng)絡(luò)上留下的這些痕跡,能證明2018年我們曾經(jīng)很認真地去度過每一天: SAP成都研究院2018年總共...

    RyanQ 評論0 收藏0
  • 基于SAP Kyma訂單編排增強介紹

    摘要:當然,不同的產(chǎn)品,對訂單增強的實現(xiàn)方式也各不相同。在世界里,想對訂單處理流程做增強,同之前介紹的相比,相對來說受的限制要多一些。首單檢查返回的分數(shù)是,根據(jù)當前配置文件這個結(jié)果被認定為首單。 盡管有一萬個舍不得,2018年還是無可挽回地離我們遠去了。 唯有SAP成都研究院的同事和我去年在網(wǎng)絡(luò)上留下的這些痕跡,能證明2018年我們曾經(jīng)很認真地去度過每一天: SAP成都研究院2018年總共...

    kun_jian 評論0 收藏0
  • 容器,Docker, Kubernetes和Kyma,以及KymaSAP意義

    摘要:該標準主要分為運行時標準和容器鏡像標準。事件注冊好之后,使用微服務架構(gòu)實現(xiàn)事件的監(jiān)聽者消費者。 大家好,今天非常高興能給大家做一個關(guān)于Kyma的技術(shù)分享。這個session的audience主要是針對使用咱們成都研究院使用Java和nodejs等技術(shù)棧做微服務開發(fā)的同事們。對于在ABAP netweaver上做SAP傳統(tǒng)開發(fā)的同事們來說,這個session可以讓大家開闊一下眼界。 這是...

    xiaokai 評論0 收藏0
  • 容器,Docker, Kubernetes和Kyma,以及KymaSAP意義

    摘要:該標準主要分為運行時標準和容器鏡像標準。事件注冊好之后,使用微服務架構(gòu)實現(xiàn)事件的監(jiān)聽者消費者。 大家好,今天非常高興能給大家做一個關(guān)于Kyma的技術(shù)分享。這個session的audience主要是針對使用咱們成都研究院使用Java和nodejs等技術(shù)棧做微服務開發(fā)的同事們。對于在ABAP netweaver上做SAP傳統(tǒng)開發(fā)的同事們來說,這個session可以讓大家開闊一下眼界。 這是...

    jk_v1 評論0 收藏0
  • 容器,Docker, Kubernetes和Kyma,以及KymaSAP意義

    摘要:該標準主要分為運行時標準和容器鏡像標準。事件注冊好之后,使用微服務架構(gòu)實現(xiàn)事件的監(jiān)聽者消費者。 大家好,今天非常高興能給大家做一個關(guān)于Kyma的技術(shù)分享。這個session的audience主要是針對使用咱們成都研究院使用Java和nodejs等技術(shù)棧做微服務開發(fā)的同事們。對于在ABAP netweaver上做SAP傳統(tǒng)開發(fā)的同事們來說,這個session可以讓大家開闊一下眼界。 這是...

    wangym 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<