SAP S4CRM和C4C的技術比較

若是您對SAP S/4HANA for Customer Management(如下簡稱S4CRM)和SAP Cloud for Customer(如下簡稱C4C)不甚熟悉,那我建議您能夠先瀏覽我以前寫的這兩篇微信公衆號文章。html

發佈了這兩篇文章以後,我在後臺收到不少朋友的留言,詢問S4CRM和C4C相比較的各類問題。所以我寫了這篇文章,統一做答。前端

Jerry受家中長輩影響,從小就是一個三國演義迷,小學還未畢業,羅貫中的三國演義就已讀過無數遍了。幼時也曾纏着長輩追問諸葛亮和周瑜誰在智力上更甚一籌,直到初中時我入坑「暗榮」發佈的三國志V, 才從遊戲中找到了答案。
爲了寫這篇文章,Jerry又一次打開了玩了無數次的三國志V。好吧,周大都督智力值只比諸葛丞相低1點,可是武力值高18點。一代儒將,文武雙全,「曲有誤,周郎顧」,名不虛傳。
vue

大學畢業參加工做後不久,又遇上真三國無雙V的發佈。
node

這部譭譽參半的做品在我這個三國迷看來卻稱得上又一款神做,雖然該做品也有不少我想吐槽的地方,好比周大都督的兵器竟然和孫大聖的同樣,而赤壁之戰周公瑾藉此在世界軍事史以弱勝強的著名戰例中留下濃墨重彩一筆的「火計」,竟然分配給了陸遜這個小說中我很是討厭的傢伙,而後補了一個和趙雲同樣的技能「神速」,囧。不過瑕不掩瑜,我又是玩的不亦樂乎,以致於在很長的幾年時間裏,個人不少論壇帳號的頭像都是用的下圖這種:
web

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

爲了不這篇文章成爲三國遊戲介紹雜文,讓咱們言歸正傳。
Jerry在S/4HANA for Customer Management(如下簡稱S4CRM)和Cloud for Customer(如下簡稱C4C)開發團隊都工做過,這篇文章給出這兩款產品一些技術層面的比較。編程

下圖是我原創的表格。api

注:表格中S4CRM指2018年2月28日發佈的1.0版本。
瀏覽器

部署方式

這一差別顯而易見,本地部署和雲端部署的區別致使了表格裏其餘比較項目的差別。服務器

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開發的。

若是在Sources標籤頁內能看到加載了下圖所示的UI5庫文件,說明該UI是基於SAP UI5開發的。

固然也能夠安裝個人博客Chrome Development Tool tips used in my daily work提到的UI5 Inspector:

安裝以後在Chrome開發者工具會多出一個名爲UI5的標籤頁,若是一個UI基於SAP UI5,則該標籤頁會顯示對應信息,不然顯示空白。

而C4C的標準UI則是基於SAP UI Designer和SAP UI5協做而成的。C4C標準UI也符合著名的「二八定律」,即80%的標準UI佈局相似,只是呈現的業務數據有差別。例以下圖紅色區域咱們稱之爲工做中心(Work Center),藍色區域爲工做中心視圖(Work Center View),綠色區域稱爲Object Work List。

C4C裏不一樣的應用盡管功能各異,但用戶都是經過工做中心-工做中心視圖-OWL這個統一的方式去訪問。爲了不開發此類佈局基本相似的UI模型形成的重複勞動,咱們使用UI Designer,以所見即所得的方式開發UI模型。

例如Tickets這個視圖裏的OWL基於的UI模型名稱能夠經過Chrome開發者工具找到: /BYD_COD/ServiceOnDemand/AgentQueue/SEOD_Ticket_SADL_OWL

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

在UI Designer裏開發的UI模型保存以後,在ABAP後臺以XML的格式存儲。運行時這些UI模型的內容被讀到C4C前臺,經過C4C UI框架翻譯成SAP UI5控件渲染給終端用戶。

對於UI Designer技術上不能支持的剩下20%的需求,咱們仍然會採用原生的SAP UI5開發。好比下圖這種地圖和C4C標準UI的集成,就是成都SAP研究院的C4C開發團隊經過SAP UI5實現的。

Partner UI開發方式

對S4CRM來講,由於是本地部署,Partner能夠直接登陸後臺進行開發,因此理論上來講,只要SAP標準開發能實現的功能,Partner也能作。

有的朋友抱怨WebClient UI和其餘開源UI框架相比顯得比較笨重,有的特效不易實現。其實,個人我的見解是,WebClient UI底層是基於SAP BSP的,而BSP又支持原生HTML和Javascript的開發,所以BSP其實也是靈活和開放的。

例如您能夠參考個人這篇文章使用WebClient UI實現下面的效果:

Display count down in WebClient UI

以及在BSP裏使用Vue:

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

下面是SAP Community上的一篇博文,介紹瞭如何調用微軟新聞API,取回最新的新聞並顯示在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的部分回調截圖,紅色區域即爲具體的回調函數。

下圖是S/4HANA裏的BO Determination的一個例子。由於C4C的後臺對Partner不可見,所以不容許在社交媒體上發佈任何關於C4C後臺的截圖,這裏我採用S/4HANA的截圖代替,由於兩者技術原理相似。

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在整個交互場景中扮演的角色以下:

具體例子參考個人博客: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 Help裏描述的這些OData Service也是開箱即用的:

C4C全部的集成方式都記錄在一位印度美女同事Sapna Ramaiah的博客裏,閱讀量超過4萬:

SAP Hybris Cloud for Customer – All About Integration

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 

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

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

由於對這個功能的實現很好奇,我作過一些研究並把結果寫在了這篇博客裏:

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

而S/4HANA Key User Tool也絕不遜色,甚至支持直接在瀏覽器裏編寫ABAP代碼:

具體原理在個人公衆號文章那些年我用過的SAP IDE裏介紹。

Office integration

S4CRM和C4C均支持Excel導出,具體實現參考個人博客:

Excel export in CRM and C4C

PDF格式的導出也是均支持的,只是具體實現方式有所區別。

C4C除了Excel導出外,還支持經過Excel上傳的方式將本地數據導入至C4C系統。

值得一提的是,SAP CRM支持更爲強大的word模板功能,即用戶能夠在本地開發一個word模板文件,將裏面的字段綁定到CRM標準的BO模型字段上。好比下圖我將該模板分配給CRM Product(產品)這個BO,而後將BO上須要的字段從文檔右邊的樹形結構拖拽到文檔左邊:

運行時只要我從某個產品明細頁面打開該模板,該模板裏綁定到BO模型字段上的字段就會自動顯示對應的BO模型字段的內容,以下圖所示:

具體步驟參考個人博客:

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代碼,就是由這些前端專家們貢獻的。你們不只寫代碼了得,並且也很會玩。

這張圖片裏有一位號稱"成都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

相關文章
相關標籤/搜索