SAP訂單編排和流程增強概述
SAP產品裡的訂單處理,無論是On-Premises解決方案還是雲產品,我認為歸根到底可以概括成四個字:訂單編排,包含兩個層次的內容:
1. 單個訂單透過業務流程或者工作流驅動的狀態遷移;
2. 多種訂單型別協同工作,完成一個完整的端到端的業務員流程。
比如SAP CRM裡經典的User Status(使用者自定義狀態)和System Status(SAP標準狀態)的設計,透過引入Business Transaction將兩者關聯起來,完美地實現了使用者自定義訂單狀態被SAP標準程式的感知。
下圖左邊的Open, In process, Released和Completed就是使用者自定義訂單狀態,SAP允許客戶給每個狀態分配一個Low和High的值,透過這種方式巧妙地提供了一種用非圖形化方式進行狀態跳轉的定義。
比如In process狀態的Low為20,意味著In process狀態不可能重新回到Open狀態,因為Open狀態的ID 10小於In process狀態的Low欄位定義的20——一個狀態能跳轉到的目標狀態的ID,必須在由該欄位的Low和High定義的區間內。
使用者狀態透過Business Transaction對映到的SAP標準狀態,在我截圖的系統上一共有906個,這不得不讓人佩服SAP CRM當初的設計者考慮問題的周全。
除了複雜的狀態處理和跳轉外,SAP訂單編排的複雜度主要體現在以下方面:
1. 很多SAP的客戶,除了購買SAP的On-Premises產品或者訂閱雲服務外,還擁有其他業務系統。這類客戶的訂單編排,在SAP標準業務流程基礎上往往還存在和這些第三方業務系統的互動。
2. 即使是同一行業的客戶群,因為地域和國家,語言的差異,可能業務流程也存在一定的差異。SAP釋出的標準功能有時無法100%支援這些千差萬別的業務流程。
因此SAP系統對訂單編排增強的支援就非常必要。
當然,不同的SAP產品,對訂單增強的實現方式也各不相同。
在SAP CRM裡,雖然SAP沒有明確提出Business Object這個名詞,但訂單應用基於的模型實際上仍然是由不同的節點組成:
每個節點對應一些更底層的模型節點,上面可以註冊各種事件處理函式。下圖是Service Request這個BO的抬頭節點的事件處理函式:
每個節點可以分配一個分配一個執行函式,當然,嚴謹的德國人在最簡單的觀察-釋出者模式上又新增了幾個維度的設定。
下圖第一列紅色的Execution Time,表示這些分配的函式到底是事件觸發後立即執行,還是延遲到訂單抬頭或者行專案的通用例程執行完後再執行(往往用於實現批次操作,或者待執行函式同通用例程存在依賴關係,或者出於效能考慮)。
第二列的Priority,即函式執行優先順序,如果若干函式除了優先順序外其他維度維護的屬性完全一致,則按優先順序從高到低依次執行。
第三列Event,就是觀察者-釋出者模式裡的事件了,下面是SAP CRM訂單框架一些標準的事件:
最後一列就是事件監聽函式。
Jerry傾向於把CRM訂單處理系統的運作方式理解成類似下圖這種複雜的水管傳輸系統,訂單業務流程依次被註冊在不同事件上的監聽函式執行,就像這一根根大小粗細長短各異的水管一樣。
如果客戶對其中某個業務步驟需要做增強(需要替換某根水管), 只需要用一個自己實現的函式去替換SAP標準函式(自己另外找一根水管替換掉現在正在工作的水管),能替換的前提是自己實現的函式的介面同被替換函式完全一致(自己另外找的水管和以前的水管兩端介面的規格完全一致)。
而SAP Cloud for Customer裡的訂單模型,其Business Object在目前最新的1811版本里仍然是由ESF2框架實現,只是後臺對Partners不可見,但大家可以類比SAP On-Premises世界裡的BOPF框架,兩個框架的實現原理類似。
在Cloud的世界裡,想對訂單處理流程做增強,同之前介紹的SAP CRM相比,相對來說受的限制要多一些。
在Partner做增強的Cloud Application Studio裡,所有能做增強的點以Hook的方式顯示如下:
Partners可以在這些Hook裡進行業務功能增強。有些Hook可能存在某些讀寫限制,比如AfterLoading這個Hook,會在SAP BO的標準載入邏輯執行完畢後被呼叫,在這個Hook的實現裡,SAP不允許任何對BO節點標準欄位的寫操作,以避免Partners的增強對SAP標準流程可能帶來的影響。有的顧問朋友可能會說,這些Hook不就是SAP Netweaver裡傳統的Business AddIn(BAdI)麼?沒錯,概念上可以這麼理解,需要提醒的就是,這些Hook建立之後,在ABAP後臺並不是以BAdI Implementation的方式儲存,而是以ESF2 Determination的方式儲存,類似下圖這種BOPF裡的Determination:
SAP C/4HANA裡的五朵雲之一,Commerce Cloud,則可以透過SAP Kyma來做擴充套件,我們下次介紹。
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2285125/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAP 訂單模型的編排方式概述模型
- SAP建立採購訂單流程
- 流程編排、如此簡單-通用流程編排元件JDEasyFlow介紹元件
- SAP S/4HANA生產訂單的BAdI增強點之Initialize方法
- 資源編排支援雲助手,增強例項運維能力運維
- SAP螢幕增強示例
- SAP PP 中關於計劃訂單和生產訂單的日期計算
- 製造業訂單流程
- 業務流程的新實現:微服務和事件編排微服務事件
- [原創]SAP方丈-SAP增強應用例項
- SAP Commerce(原Hybris)的訂單處理框架和SAP CRM One Order框架框架
- SAP產品增強技術回顧
- SAP生產訂單歸類總結
- 自定義 SAP 採購訂單螢幕
- SAP SD基礎知識之SD常見流程概述
- SAPS/4HANA生產訂單的BAdI增強點之Initialize方法
- 退貨採購訂單多級審批用增強的解決辦法
- SAP 產品一脈相承的 UI 增強思路,在 SAP電商雲 UI 增強實現中的體現UI
- 編排的藝術|K8S中的容器編排和應用編排K8S
- 使用SAP CRM External Interface進行訂單同步
- 「SAP技術」SAP SD微觀研究之根據銷售訂單查詢到該訂單發貨的批次
- 如何增強你的電子採購流程?
- DoorDash如何使用ML和最佳化解決訂單派送的排程問題
- 如何使用程式碼建立和讀取 SAP CRM 訂單的 Text 資料
- 滬江基於容器編排的Dev/Ops流程dev
- SAP R3 資料抽取增強步驟
- C# 編寫一個簡單易用的 Windows 截圖增強工具C#Windows
- SAP SD基礎知識之免費訂單
- sap開發-採購訂單更改歷史table
- 別再用硬編碼寫業務流程了,試試這款輕量級流程編排框架框架
- 電商產品之訂單拆分規則與流程
- API服務平臺,RestCloud視覺化流程編排APIRESTCloud視覺化
- 原創圖書流程介紹:編排校階段
- S/4HANA生產訂單增強WORKORDER_UPDATE方法BEFORE_UPDATE引數分析
- 平臺化三部曲之三流程編排-平臺化是舞臺,流程編排就是導演一場戲
- SAP-PP-CO 生產訂單狀態詳解
- sap 獲取計劃訂單bapi_PP 常用bapiAPI
- SAP上線時未清採購訂單處理