金庸和古龍,Netweaver和微服務,以及SAP Hybris Revenue Cloud
這周Jerry在長沙客戶現場待了幾天,感謝易總和彩亮的款待。終於有機會和關注這個公眾號的一些CRM顧問們進行線下互動,感覺很不錯。得知公眾號裡某些文章幫助顧問們解決了一些工作中的實際問題,我很高興。感謝大家的支援,只要時間允許,這個公眾號我會一直寫下去。
和CRM顧問們中午吃飯時聊到了SAP一些新的雲產品採用了微服務架構開發,因此我寫了這篇文章。
如果要找金庸小說裡幫助Jerry提高程式設計水平最有用的一句話,無疑是:重劍無鋒,大巧不工。
楊過被郭芙斬斷一臂後,以前掌握的程式語言,哦不,以前掌握的武功均無從施展。後來楊過無意發現一本程式設計祕籍,上書:重劍無鋒,大巧不工。
楊過喃喃念著“重劍無鋒,大巧不工”八字,心中似有所悟,但想世間劍術,不論哪一門哪一派的變化如何不同,總以輕靈迅疾為尚,這柄重劍不知怎生使法,想懷昔賢,不禁神馳久之。
春去秋來,歲月如流,楊過日日在海潮之中練劍,日夕如是,寒暑不間。木劍擊刺之聲越練越響,到後來竟有轟轟之聲,響了數月,劍聲卻漸漸輕了,終於寂然無聲。又練數月,劍聲復又漸響,自此從輕而響,從晌轉輕,反覆七次,終於欲輕則輕,欲響則響,練到這地步時,屈指算來在海邊已有六年了。
這時候楊過手仗木劍,在海潮中迎波擊刺,劍上所發勁風己可與撲面巨浪相拒,神鵰縱然力道驚人,也已擋不住他木劍的三招兩式,這時他方體會到劍魔獨孤求敗暮年的心境:“以此劍術,天下復有誰能與抗手?無怪獨孤前輩自傷寂寞,埋劍窮谷。”
楊過的重劍研習之路對Jerry程式設計有什麼啟發?
當今IT圈子裡,新技術新名詞,甚至新的程式語言層出不窮。一個程式猿,可以選擇不停地學習,追逐這些新事物,就像楊過先後學了蛤蟆功,天羅地網式,玉女劍法,全真劍法,打狗棒法,玉簫劍法,彈指神通等。也可以選擇靜下心來,好好打磨程式設計師需要掌握的最基本技能。
楊過花了六年的時間在海潮中提升自己的內功,再重出江湖後面對以前同一級別的對手都能做到秒殺。Jerry也幻想有一天能像楊過那樣,秒殺自己遇到的bug,而不是像現在這樣,一個bug苦苦debug幾小時。Jerry還在修煉的路上:Jerry的ABAP, Java和JavaScript亂燉。
金庸對玄鐵重劍的描寫:“那劍黑黝黝的毫無異狀,卻是沉重之極,三尺多長的一把劍,重量竟自不下七八十斤,比之戰陣上最沉重的金刀大就尤重數倍。兩邊劍鋒都是鈍口,劍尖更圓圓的似是個半球。楊過看劍下的石刻時,見兩行小字道:重劍無鋒,大巧不工。四十歲前恃之橫行天下。”
重劍無鋒,大巧不工 這八個字的字面含義:表面上看來越愚笨越平凡的東西,越可能蘊涵著精巧的極致。這難道不是在說SAP基於Netweaver開發的那些傳統產品?
拿S/4HANA為例,裡面包含數以萬計的資料庫表,任何一張單獨拿出來都貌似平平無奇。這一張張不起眼的表,就像一部德國戰車上一個個精巧的零件,將SAP三十多年企業管理領域深耕的功力體現到了極致。
並不是每個劍客都能運用楊過的玄鐵重劍。同樣的,基於Netweaver的應用開發也需要一些門檻。SAP傳統的產品本質上是一個monolithic系統,底層資料庫的內容通過API暴露出來後,並不能夠直接給UI消費。UI和API層之間往往還有其他的中間層存在,換言之,應用開發人員無法真正做到“專注於應用邏輯本身的編寫”,仍需花費精力掌握一些和業務不太相關的技術。
例如CRM應用開發人員需要熟悉如何將API返回的資料進行格式轉換並儲存到Genil容器中。S/4HANA開發人員在BOPF裡實現應用邏輯,得需要知道如何使用/BOBF/IF_FRW_READ和/BOBF/IF_FRW_MODIFY。SRM開發人員除了會ABAP Webdynpro之外,還得掌握FPM的用法。不過好訊息是,如果您的內功深厚,那麼只要掌握其中一門,再接觸其他的也能很快融會貫通。
另一位大師古龍,其武學設定和金庸截然不同。翻開任何一篇古龍的作品,使用關鍵字”內功”搜尋,幾乎都不會得到結果。在古龍的武俠世界裡,“快”就是王道。比如作品《小李飛刀》裡,對李尋歡的武功招式沒有任何正面描寫,而是用側面描寫的方式突出其飛刀之快:
伊哭瞪著李尋歡,獰笑道:“你還有什麼話說?”
李尋歡望著他青光閃閃的青魔手,緩緩道:“只有一句話。”
伊哭道:“什麼話?你說!”
李尋歡嘆了口氣,道:“你何必來送死?”
他的手忽然揮出!
刀光一閃,伊哭已凌空側翻了出去。
雪地上已多了串鮮血!
再看伊哭的身影已遠在數丈外,嘶聲道:“李尋歡,你記著,我……”
說到這裡,他聲音突然停頓。
寒風如刀,天地肅殺雪地上變得死一般靜寂。
SAP很多雲產品,例如SAP Hybris Revenue Cloud,基於微服務架構開發而成。同SAP傳統的基於Netweaver的產品相比,這些雲產品的應用邏輯開發一大特點就是:開發速度快。藉助SpringBoot和CloudFoundry的命令列工具CLI,開發人員可以真正專注於微服務應用邏輯的編寫,然後將微服務快速部署到雲平臺上。UI可以用輕量級的AJAX呼叫來消費這些微服務。
比如Revenue Cloud的客戶主資料列表,就是通過部署在revcloud.XXX.eu10.revenue.cloud.sap上的一個微服務返回的。該微服務在UI5的程式碼裡通過輕量級的AJAX呼叫進行消費。
基於Netweaver和基於微服務架構的兩種開發方式,很難評價哪種更好,就像無法評價金庸和古龍誰的作品更優秀一樣。Netweaver作為SAP傳統應用的開發和執行平臺,通過30多年歲月洗禮被證明是適合S/4HANA這種超大規模的複雜系統開發。而像SAP Hybris Revenue Cloud這種基於微服務架構的新一代雲產品,體現了SAP在雲時代緊跟行業發展步伐的決心。
下面邀請我的同事,SAP成都研究院Revenue Cloud開發團隊的陳文心(Chen Vicky)給大家簡單介紹Revenue Cloud目前已經發布的一些功能。
Vicky 2016年畢業後加入SAP成都研究院,90後青春靚麗程式媛一枚。我從她的朋友圈盜了一張圖:
SAP Hybris Revenue Cloud功能概述
大家好,我是陳文心,現在工作於SAP成都研究院Revenue Cloud開發團隊。大學實習時做的是SAP ERP ABAP開發,進入SAP後與Hybris Renenue Cloud 一起發展,走過了兩個春夏秋冬。目前工作使用的技術棧是Java,JavaScript和SAP UI5。作為一名程式設計師,追求質量是永恆不變的真理。從程式碼的正確性,可擴充套件性到交付流程的完整性,我還需要向SAP成都研究院其他資深開發人員學習。
生活中喜歡讀書,聽歌和彈古箏。 最愛的一本書是羅曼羅蘭的《約翰克里斯多夫》,聽著歌寫程式碼,靈感更能迸發。十年磨一劍,彈琴如此,寫程式碼依然如此,有追求和付出才會有更好的結果。
下面是Revenue Cloud已經發布的功能概述,如果有朋友對這個雲產品一無所知,希望看了這篇文章能有一些基本的瞭解。
SAP Hybris Revenue Cloud 是一種新的基於微服務的雲解決方案,能夠幫助企業在敏捷和可擴充套件的環境中快速部署高效的銷售流程,從而充分利用其他SAP On-Premise和雲產品。
SAP Hybris Revenue Cloud由三個主要功能組成:
-
訂閱式訂單生成
-
訂閱式訂單管理
-
訂閱式訂單計費(包括使用費和一次性費用)
登陸SAP Hybris Revenue Cloud 進入主頁面可以看到業務流和主資料的配置:
設想這個場景:使用Revenue Cloud的企業A有一個客戶SUNNY,該客戶需要訂閱A公司的Email service用於自身產品傳送郵件的需求。A公司的Email service屬於訂閱型產品,按使用收費。那麼A公司從建立客戶到客戶賬單生成這一端對端的流程,在SAP Hybris Revenue Cloud中便可通過上圖介面完成。
Business Configuration 業務相關基礎配置
首先進入Business Configuration配置產品流程需要的基礎元素,建立一個ID 為A1的market:
建立一個單位,用於定義產品價格:EA
用已建立的單位EA來定義一個型別為基於客戶使用的計費元素,ID為APICall。以及一次性和按月收費元素ONETIME,RECURRING:
在計費元素定義好之後,接下來便可配置在建立和編輯報價單時可以編輯哪些價格元素,以及在產品包含的數量使用費用中編輯和隱藏哪些價格元素。
接下來還可在Business Configuration中配置使用者授權以批准報價,觸發報價中審批流程的引數,計費的延遲(計算的結算日期會延遲指定的天數,從而產生新的結算日期)等其他與業務流程相關的引數。
上圖表示在US East Market下的報價單,若價格折扣大於等於20%則該報價單需要審批。
Customers 維護客戶主資料
基礎配置完成後,便可以建立主資料。首先到Customers Tile裡維護客戶資訊。可以建立個人客戶或者企業客戶。下圖建立一個企業客戶,維護客戶的地址、聯絡人資訊,並且指定到之前建立的Market A1-US East:
Products 維護產品主資料
客戶建立完成後,接著維護產品資訊,可以建立訂閱型產品或者組合式產品。如圖建立一個訂閱式產品Mail_service,指定Market到US East,並建立對應的價格資訊RatePlans。指定產品的賬單生成日期於每月訂閱日期,訂閱該產品一次性費用為988美元,按月費用為50美元,同時產品包含1000次APICall,每超過100次收費20美元。
Quotes 建立報價單
主資料建立成功後,便可以在US East Market中對客戶SUNNY建立Mail_Service的報價單,並給產品的一次性費用25%的折扣,同時指定報價單的有效日期以及產品的訂閱有效起始日期。
點選Release釋出報價單,由於之前在Business Configuration中對US East Market設定的最大折扣為20%,所以該報價單需要審批。點選“Send for Approval”將報價單送去請求審批。
在Business Configuration中對US East Market 建立的approval list中的員工便可同意或拒絕等待審批的訂單。
待報價單審批通過後,便可傳送給客戶,待客戶接受報價單後便可轉到Order生成訂閱訂單:
Orders 檢視訂單處理狀態
接著便可到Orders Tile檢視訂單狀態,是否生成了對應的訂閱訂單(Subscription)。圖中可看到Subscription建立完成。
Subscriptions 檢視訂閱訂單
在Subscriptions Tile中檢視生成的訂單:
Billing Data 檢視賬單資料
在建立報價單時,由於把訂閱開始日期定在過去,接下來便可以去檢視生成的賬單包含了一次性以及按月費用:
Usage Data 維護客戶使用資料
客戶對該產品的使用資料可在Usage Data中維護,倘若客戶SUNNY使用了1200次APICall, 維護使用資料如下圖:
再次檢視賬單資料,可以看到新的賬單項生成。產品Mail_service定義的包含APICall為1000次,每額外的100次收費20美元,客戶的usage為1200次,收費40美元:
由此,一個完整的由報價單到根據產品使用的賬單生成的流程便完成了。
要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙"或者掃描下面二維碼:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2155180/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAP Netweaver和Hybris的資料庫層資料庫
- SAP ABAP Netweaver和Hybris Commerce的部署策略
- SAP Hybris的Master Tenant和Netweaver的System ClientASTNaNclient
- SAP Hybris和ABAP Netweaver裡的DAO(Data access object)Object
- ABAP Netweaver, Hybris Commerce和SAP 雲平臺的登入認證
- SAP Netweaver和Hybris Commerce啟動後執行的預設操作
- SAP Hybris和Netweaver的租戶隔離(Tenant isolation)機制設計NaN
- ABAP Netweaver, SAP Cloud Platform和Kubernetes的使用者區分CloudPlatform
- SAP Hybris的build callback和SAP ABAP的SGEN事務碼UI
- spring cloud 和 阿里微服務spring cloud AlibabaSpringCloud阿里微服務
- 金庸的武俠世界和SAP的江湖
- Netweaver和SAP雲平臺的quota管理
- ABAP Netweaver和Hybris裡獲得記憶體使用統計資料記憶體
- SAP ABAP和Hybris Commerce的Sample資料
- SAP Hybris Commerce的JSP tag和SAP BSP tag的比較JS
- 詳解Spring Cloud和Docker的微服務架構SpringCloudDocker微服務架構
- ABAP Netweaver和Cloud Foundry上的環境變數Environment VariableCloud變數
- 關於 Hybris (SAP Commerce Cloud)產品的客戶群Cloud
- SAP ABAP, Fiori, Android和Hybris裡的非同步操作Android非同步
- 微服務架構的理解以及和 RPC 的關係微服務架構RPC
- 基於Spring Boot和Spring Cloud實現微服務架構Spring BootCloud微服務架構
- SAP Commerce(原Hybris)的訂單處理框架和SAP CRM One Order框架框架
- SAP CRM WebClient UI和Hybris backoffice UI開發的相同點WebclientUI
- SAP CRM WebClient UI和Hybris的controller是如何被呼叫的WebclientUIController
- SAP CRM WebClient UI和Hybris Commerce的懶載入機制WebclientUI
- 使用Spring Cloud Stream和RabbitMQ實現事件驅動的微服務SpringCloudMQ事件微服務
- SAP Analytics Cloud和Cloud for Customer之間的Single Sign on配置Cloud
- 淺談SAP CRM和Hybris Commerce裡的價格架構折扣架構
- 微服務生態元件之Spring Cloud OpenFeign詳解和原始碼分析微服務元件SpringCloud原始碼
- 微服務生態元件之Spring Cloud LoadBalancer詳解和原始碼分析微服務元件SpringCloud原始碼
- 如何把SAP Kyma和SAP Cloud for Customer連線起來Cloud
- (五)spring cloud微服務分散式雲架構-配置中心服務化和高可用SpringCloud微服務分散式架構
- 微服務架構和設計模式 - DZone微服務微服務架構設計模式
- SpringCloud(1) ——回顧微服務和微服務架構SpringGCCloud微服務架構
- spring cloud分散式微服務:Spring Cloud ConfigSpringCloud分散式微服務
- Hybris service layer和SAP CRM WebClient UI架構的橫向比較WebclientUI架構
- SAP UI5應用和Hybris Commerce的國際化(internationalization)支援UI
- CRM, C4C和SAP Hybris的資料庫層設計資料庫