天天看點

SAP S4CRM和C4C的技術比較

如果您對SAP S/4HANA for Customer Management(以下簡稱S4CRM)和SAP Cloud for Customer(以下簡稱C4C)不甚熟悉,那我建議您可以先浏覽我之前寫的這兩篇微信公衆号文章。

SAP的這三款CRM解決方案,您能區厘清楚麼

Hello World, S/4HANA for Customer Management 1.0

釋出了這兩篇文章之後,我在背景收到很多朋友的留言,詢問S4CRM和C4C相比較的各種問題。是以我寫了這篇文章,統一作答。

Jerry受家中長輩影響,從小就是一個三國演義迷,國小還未畢業,羅貫中的三國演義就已讀過無數遍了。幼時也曾纏着長輩追問諸葛亮和周瑜誰在智力上更甚一籌,直到國中時我入坑“暗榮”釋出的三國志V, 才從遊戲中找到了答案。

為了寫這篇文章,Jerry又一次打開了玩了無數次的三國志V。好吧,周大都督智力值隻比諸葛丞相低1點,但是武力值高18點。一代儒将,文武雙全,“曲有誤,周郎顧”,名不虛傳。

SAP S4CRM和C4C的技術比較
SAP S4CRM和C4C的技術比較
SAP S4CRM和C4C的技術比較

大學畢業參加工作後不久,又趕上真三國無雙V的釋出。

SAP S4CRM和C4C的技術比較
SAP S4CRM和C4C的技術比較

這部毀譽參半的作品在我這個三國迷看來卻稱得上又一款神作,雖然該作品也有很多我想吐槽的地方,比如周大都督的兵器居然和孫大聖的一樣,而赤壁之戰周公瑾借此在世界軍事史以弱勝強的著名戰例中留下濃墨重彩一筆的“火計”,居然配置設定給了陸遜這個小說中我非常讨厭的家夥,然後補了一個和趙雲一樣的技能“神速”,囧。不過瑕不掩瑜,我又是玩的不亦樂乎,以至于在很長的幾年時間裡,我的很多論壇賬号的頭像都是用的下圖這種:

SAP S4CRM和C4C的技術比較

諸葛亮和周瑜這對人物,無論是在三國演義書中,還是在數不清的以三國為題材的電腦遊戲裡,各自都有大量的粉絲。如果要問誰更優秀,在Jerry看來這個問題本身就很荒謬,兩人在蜀和吳擔任的角色不同,這根本沒有可比性。不過要問Jerry更喜歡哪一個,答案毫無疑問是諸葛丞相,畢竟作為一個土生土長的成都人,而且在武侯區又住了那麼多年。

為了避免這篇文章成為三國遊戲介紹雜文,讓我們言歸正傳。

Jerry在S/4HANA for Customer Management(以下簡稱S4CRM)和Cloud for Customer(以下簡稱C4C)開發團隊都工作過,這篇文章給出這兩款産品一些技術層面的比較。

下圖是我原創的表格。

注:表格中S4CRM指2018年2月28日釋出的1.0版本。

SAP S4CRM和C4C的技術比較

部署方式

這一差異顯而易見,本地部署和雲端部署的差別導緻了表格裡其他比較項目的差異。

SAP标準UI開發方式

S4CRM和C4C的UI雖然看起來都是Fiori風格,但實作技術不同。

S4CRM的标準UI采用的仍然是SAP CRM WebClient UI技術,隻不過SAP WebClient UI團隊的開發同僚們巧妙地設計了一系列CSS,并且對WebClient UI的架構做了一些調整(所謂的”Visual Harmonization”), 使得其視覺效果和體驗接近于原生的Fiori應用。

如果看到一個界面風格和原生Fiori應用很類似的UI,您不能判定該UI到底是基于WebClient UI還是SAP UI5,可以打開Chrome開發者工具,倘若能找到下圖紅色區域所示的CRM Application Frame和帶有/bc/bsp的ICF路徑,則該UI是基于WebClient UI開發的。

SAP S4CRM和C4C的技術比較

如果在Sources标簽頁内能看到加載了下圖所示的UI5庫檔案,說明該UI是基于SAP UI5開發的。

SAP S4CRM和C4C的技術比較

當然也可以安裝我的部落格Chrome Development Tool tips used in my daily work提到的UI5 Inspector:

安裝之後在Chrome開發者工具會多出一個名為UI5的标簽頁,如果一個UI基于SAP UI5,則該标簽頁會顯示對應資訊,否則顯示空白。

SAP S4CRM和C4C的技術比較

而C4C的标準UI則是基于SAP UI Designer和SAP UI5協作而成的。C4C标準UI也符合著名的“二八定律”,即80%的标準UI布局類似,隻是呈現的業務資料有差異。例如下圖紅色區域我們稱之為工作中心(Work Center),藍色區域為工作中心視圖(Work Center View),綠色區域稱為Object Work List。

SAP S4CRM和C4C的技術比較

C4C裡不同的應用盡管功能各異,但使用者都是通過工作中心-工作中心視圖-OWL這個統一的方式去通路。為了避免開發此類布局基本類似的UI模型造成的重複勞動,我們使用UI Designer,以所見即所得的方式開發UI模型。

例如Tickets這個視圖裡的OWL基于的UI模型名稱可以通過Chrome開發者工具找到: /BYD_COD/ServiceOnDemand/AgentQueue/SEOD_Ticket_SADL_OWL

SAP S4CRM和C4C的技術比較

該模型在UIDesigner裡打開如下圖所示。我們首先從UI控件工具箱裡拖拽出一個表格控件放到該模型UI區域,再指定該表格需要顯示哪些列,并維護每列需要顯示Ticket這個Business Object上哪些字段的内容。

SAP S4CRM和C4C的技術比較

在UI Designer裡開發的UI模型儲存之後,在ABAP背景以XML的格式存儲。運作時這些UI模型的内容被讀到C4C前台,通過C4C UI架構翻譯成SAP UI5控件渲染給終端使用者。

對于UI Designer技術上不能支援的剩下20%的需求,我們仍然會采用原生的SAP UI5開發。比如下圖這種地圖和C4C标準UI的內建,就是成都SAP研究院的C4C開發團隊通過SAP UI5實作的。

SAP S4CRM和C4C的技術比較

Partner UI開發方式

對S4CRM來說,因為是本地部署,Partner可以直接登入背景進行開發,是以理論上來說,隻要SAP标準開發能實作的功能,Partner也能做。

有的朋友抱怨WebClient UI和其他開源UI架構相比顯得比較笨重,有的特效不易實作。其實,我的個人看法是,WebClient UI底層是基于SAP BSP的,而BSP又支援原生HTML和Javascript的開發,是以BSP其實也是靈活和開放的。

例如您可以參考我的這篇文章使用WebClient UI實作下面的效果:

SAP S4CRM和C4C的技術比較

Display count down in WebClient UI

SAP S4CRM和C4C的技術比較

以及在BSP裡使用Vue:

SAP S4CRM和C4C的技術比較

對于C4C的Partner來說,隻能使用UI Designer進行UI開發。C4C标準的UI5開發那條途徑沒有對Partner開放。不過存在一個輕量級的替代方案:使用C4C HTML mashup擴充C4C标準UI。

下面是SAP Community上的一篇博文,介紹了如何調用微軟新聞API,取回最新的新聞并顯示在C4C的客戶明細頁面裡。

SAP S4CRM和C4C的技術比較

SAP背景開發方式

S4CRM和C4C背景都是基于ABAP Netweaver,是以對于SAP标準開發人員來說,進行這兩個産品的背景開發使用的工具相同:SAPGUI或者ABAP Development Tools。關于更多ABAP Development Tools的介紹,請參考我的微信公衆号文章那些年我用過的SAP IDE 。

S4CRM的Service Request的實作是基于One Order這個技術架構,Jerry是該開發架構的一員,而C4C的Service Request則基于ESF(Enterprise Service Framework)架構,Jerry在C4C項目中對該架構也有所了解,是以這裡可以多說一句。One Order和ESF這兩個架構其實作都有着Java Spring裡依賴注入和控制反轉的影子,即SAP應用開發人員隻需要專注于将具體的業務邏輯實作在架構規定的技術模型裡——One Order裡稱為回調(Callback), ESF裡稱為Determination,而無需操心這些模式何時調用——這些模型執行個體的初始化,執行上下文的準備,以及模型與模型之間的依賴,模型與架構的協同工作(orchestration)等等工作都由ESF架構本身完成,這極大程度地降低了應用開發的程式設計複雜度,提高了應用程式的健壯性。

下圖是S4CRM裡One Order的部分回調截圖,紅色區域即為具體的回調函數。

SAP S4CRM和C4C的技術比較

下圖是S/4HANA裡的BO Determination的一個例子。因為C4C的背景對Partner不可見,是以不允許在社交媒體上釋出任何關于C4C背景的截圖,這裡我采用S/4HANA的截圖代替,因為二者技術原理類似。

SAP S4CRM和C4C的技術比較

Partner 背景開發方式

對S4CRM來說,SAP開發人員和Partner采用的開發工具和開發方式相同。

對C4C Partner來說,隻允許使用SAP Cloud Application Studio進行背景的二次開發。這是因為C4C基于雲的部署模式,多個客戶以不同租戶(tenant)的方式,共享同一實體伺服器。直接用SAPGUI和ABAP Development Tools建立的背景模型均為所有租戶可見。是以,SAP提供了新的開發工具Cloud Application Studio供Partner進行背景二次開發。使用該工具建立的背景模型由所謂的PDI(Partner Development Infrastructure)統一管理,確定其租戶隔離性(Tenant Isolation)。

我在SAP Community上也寫過很多關于Cloud Application Studio的文章,您可以通過這個連結獲得。

與其他系統內建的技術手段

S4CRM不存在C4C裡開箱即用的Web Service和OData Service,需要Partner自行将function module通過事務碼SOAMANAGER暴露成Web Service。具體步驟參考我的部落格: Step by step to create, consume and trace web service in ABAP system

另一方面,雖然S4CRM不需要再借助CRM中間件進行S4CRM和S/4HANA的資料同步,但是仍然可以使用CRM中間件裡的一個子產品,XIF(External Interface) Adapter來和第三方系統互動。XIF Adapter在整個互動場景中扮演的角色如下:

SAP S4CRM和C4C的技術比較

具體例子參考我的部落格:Step by step to send IDoc data into external receiver via XIF adapter

有趣的是,傳統的SAP CRM和C4C也是可以通過PI(Process Integration)和XIF Adapter進行內建的, 請參考我的部落格: Replicate CRM Opportunity to SAP Cloud for Customer using PI and XIF Adapter

和S4CRM相比,作為一款雲解決方案,C4C同其他系統的互動手段要豐富得多。下圖是C4C提供的标準內建場景一覽:

SAP S4CRM和C4C的技術比較

SAP Help裡描述的這些OData Service也是開箱即用的:

SAP S4CRM和C4C的技術比較

C4C所有的內建方式都記錄在一位印度美女同僚Sapna Ramaiah的部落格裡,閱讀量超過4萬:

SAP Hybris Cloud for Customer – All About Integration

SAP S4CRM和C4C的技術比較

Key User Extensibility

S4CRM沒有繼續使用源自SAP CRM的AET(Application Extension Tool), 而是采用了S/4HANA的擴充工具S/4HANA Key User Tool。該工具的一個特色就是支援在浏覽器裡書寫ABAP代碼,其原理在我的微信公衆号文章 那些年我用過的SAP IDE裡有過介紹。

C4C裡的Key User Tool無論從使用方式還是從功能上來說都和S/4HANA Key User Tool非常類似,這在我看來一點也不奇怪。這篇介紹S/4HANA Key User Tool的部落格的作者,Thomas Schneider,曾經是大名鼎鼎的SAP PDI的首席架構師:

The Key User Extensibility Tools of S/4 HANA

SAP S4CRM和C4C的技術比較

Thomas博士1996年進入SAP工作至今,出版過多部SAP技術著作。我去德國Walldorf總部出差時,曾看到不少同僚桌上都擺着他的一兩本書。

SAP S4CRM和C4C的技術比較

C4C的Key User Tool給我留下深刻印象的一個強大功能是提供了靈活的規則(Rule)編輯功能來控制UI上某個元素的顯示/隐藏。這種規則甚至可以通過腳本代碼來定義。

因為對這個功能的實作很好奇,我做過一些研究并把結果寫在了這篇部落格裡:

How to change UI element visibility dynamically via Rule Editor – and how it works under the hood

SAP S4CRM和C4C的技術比較

而S/4HANA Key User Tool也毫不遜色,甚至支援直接在浏覽器裡編寫ABAP代碼:

SAP S4CRM和C4C的技術比較

具體原理在我的公衆号文章那些年我用過的SAP IDE裡介紹。

Office integration

S4CRM和C4C均支援Excel導出,具體實作參考我的部落格:

Excel export in CRM and C4C

SAP S4CRM和C4C的技術比較

PDF格式的導出也是均支援的,隻是具體實作方式有所差別。

S4CRM的做法

C4C的做法

C4C除了Excel導出外,還支援通過Excel上傳的方式将本地資料導入至C4C系統。

SAP S4CRM和C4C的技術比較

值得一提的是,SAP CRM支援更為強大的word模闆功能,即使用者可以在本地開發一個word模闆檔案,将裡面的字段綁定到CRM标準的BO模型字段上。比如下圖我将該模闆配置設定給CRM Product(産品)這個BO,然後将BO上需要的字段從文檔右邊的樹形結構拖拽到文檔左邊:

SAP S4CRM和C4C的技術比較
SAP S4CRM和C4C的技術比較

運作時隻要我從某個産品明細頁面打開該模闆,該模闆裡綁定到BO模型字段上的字段就會自動顯示對應的BO模型字段的内容,如下圖所示:

SAP S4CRM和C4C的技術比較

具體步驟參考我的部落格:

Create Webservice enabled word document in attachment assignment block

這個功能S4CRM 1.0不支援。

成都SAP研究院開發團隊

成都SAP研究院的S4CRM和C4C兩支開發團隊的人員組成差不多,都由在SAP CRM領域耕耘多年的老兵加上剛畢業的新人組成。至于兩支隊伍的羽毛球水準,麻将水準,K歌水準,對美食的喜愛程度等等,均不在本文讨論範疇内,有興趣私聊。

這裡放幾張成都SAP研究院C4C開發團隊的青年才俊們的一些圖檔。您使用的C4C RUI裡的部分JavaScript和CSS代碼,就是由這些前端專家們貢獻的。大家不僅寫代碼了得,而且也很會玩。

SAP S4CRM和C4C的技術比較

這張圖檔裡有一位号稱"成都C4C小彭于晏"的同僚

SAP S4CRM和C4C的技術比較

中間這位衆矢之的是SAP成都研究院C4C開發團隊一位才華橫溢的程式猿,精通ABAP, UI5, Java,nodejs, PHP等技術,同時擅長講各種段子,很多段子都是原創。

比較了這麼多,我想表達的觀點就是,S4CRM和C4C作為SAP推出的兩款定位不同的CRM解決方案,均是全球CRM領域的佼佼者,地位就如同諸葛亮和周瑜在群英荟萃的三國時代一樣,沒有誰更優或者誰可以替代誰一說。

最後是一些我寫過的針對一些具體的技術點,S4CRM和C4C的實作差異的比較:

(1) OData Service backend implementation in C4C, CRM and S4 HANA

(2) Excel export in CRM and C4C

(3) Saved query in C4C, CRM and S/4 HANA

(4) Direct navigation in CRM WebUI, CRM Fiori and C4C

(5) Formatted Text Edit in CRM and Cloud for Customer

(6) How Table column resize works in CRM and Cloud for Customer

(7) Document flow API in SAP CRM and C4C