- Deployment Strategy
- SAP Standard UI
- Partner UI
- SAP Backend Development
- Partner Backend Development
- Key User Extensibility
- Office integration
As I have been once working as a developer in S/4HANA for Customer Management (S4CRM) and Cloud for Customer(C4C) development team, in this blog I will give some brief introduction regarding the technical difference between these two products.
Note: S4CRM mentioned in this table has version 1.0 released on Feb 28, 2018.
This biggest difference directly leads to other divergences mentioned in the table.
SAP Standard UI
Although UI of both looks like Fiori application, they are fundamentally developed by different UI technology.
S4CRM UI is still built based on SAP CRM WebClient UI. The WebClient framework team colleagues did some tricks: a new theme called Belize is introduced with a series of visual harmonization done in WebClient UI framework, so that WebClient UI application built on top of it has a similar look-and-feel with those native Fiori application.
Suppose you have seen a UI and you could not be sure about whether it is built on SAP WebClient UI or SAP UI5, you can open it via Chrome development tool.
If you could find CRM Application Frame there or ICF path containing /bc/bsp, you can ensure that this UI is based on WebClient UI.
And these UI5 library files give you a hint that the UI is based on SAP UI5.
Or you can install UI5 Inspector mentioned in my blog Chrome Development Tool tips used in my daily work.
Once installed, there is a new tab named UI5 in Chrome development tool. It will show corresponding content if a UI5 application is opened, and empty content for a non-UI5 application.
On the other hand, C4C standard UI is developed based on SAP UI Designer + SAP UI5.
It also follows Pareto Principle, which means 80% of C4C standard UI has similar layout style: in the following C4C UI, the element in red area is called “Work Center”, blue area as “Work Center View”, and green area as “Object Work List”.
Although there are different application in C4C, users still use the unique way to access them: start from a given Work Center, choose a Work Center View from it, and perform search in OWL. In order to avoid the repeated effort to build such UI, UI Designer is introduced to enable developers to build UI via a WYSIWYG way.
For example we can find UI model name of the OWL in Tickets view via Chrome development tool: /BYD_COD/ServiceOnDemand/AgentQueue/SEOD_Ticket_SADL_OWL
The model is opened in UI Designer as below. We first drag a table control from UI Designer toolbox, and then specify which columns should be displayed, and bind each column with the corresponding fields of Tickets business object, so that the Tickets business data could be displayed in the table in the runtime.
The UI model developed by UI Designer is stored in ABAP backend with XML format. When a C4C UI is launched, the model content is loaded to frontend, and interpreted by C4C UI5 framework: controls drawn in UI Designer is translated and converted to UI5 control instead, and rendered by browser in the end.
For the left 20% requirement which could not be covered by UI5 designer due to technical reasons, we still use SAP UI5 to fulfill them. Take the map integration as below for example, it is SAP Chengdu C4C development team who has integrated the Auto Navi Map into C4C via SAPUI5.
In S4CRM, since partners can directly log on system via SAPGUI, so in principle, functions implemented by SAP Standard development could be achieved by partners as well.
For example you can follow my blog to fulfill these features:
It is only allowed to develop UI via UI Designer for C4C partners. It is not possible for them to develop using SAP UI5. Nevertheless an alternative exists: C4C HTML mashup.
This blog How to create HTML mashup for News in SAP Hybris Cloud for Customer demonstrated how to call Microsoft news API to retrieve latest news and display them in C4C UI via HTML mashup.
SAP Backend Development
Both S4CRM and C4C are deployed on ABAP Netweaver。So both SAP employees working on these two products are using SAPGUI or ABAP Development Tools for their daily work. For more information regarding ABAP Development Tools, you can refer to my blog 那些年我用过的SAP IDE.
The Service Request model in S4CRM is built based on technical framework called “One Order”, while Service Request in C4C is built by ESF(Enterprise Service Framework). Both One Order and ESF work by following the similar principle as in Spring framework in Java: dependency injection and dependency inversion.
That is, it is only necessary for SAP developers to concentrate on implementing business logic into framework specific models(named Callback in One Order and determination in ESF) without caring about when they should be called. Instead, the model initialization, the execution context preparation, dependency management among models, and model orchestration with ESF, all such stuff are covered by ESF. By this way the programming complexity is reduced with application robustness enhanced.
The red highlighted function modules below give an example how callbacks in One Order framework look like.
Here below is one example of BO determination in S/4HANA. Because C4C backend is invisible to C4C partners & customers and thus is not allowed to divulge any C4C backend detail in public. As a result I use S/4HANA determination in ESF here instead, as both ESF in C4C and S/4HANA has similar technical implementation.
Partner Backend Development
For backend development, the same tool(SAPGUI or ABAP Development Tools) are used in SAP standard development and partner development.
For C4C partners, it is only allowed to use SAP Cloud Application Studio for partner developpment. This is due to the cloud deployment approach of C4C: multiple C4C customers can share the same physical server with different tenants on the server. Cloud Application Studio is introduced to be used by C4C partners so that artifacts coud be developed and managed by PDI(Partner Development Infrastructure) in a tenant specific way.
You can find a list of my blogs related to Cloud Application Studio from this link.
There is no out-of-the-box Web services and Odata services in S4CRM. Instead you have to use tcode SOAMANAGER to wrap remote-enabled function modules into Web Service or develop OData services by yourself. You can find details step about Web service development from my blog Step by step to create, consume and trace web service in ABAP system.
On the other hand, although it is now not necessary to leverage CRM Middleware to achieve data exchange between S4CRM and S/4HANA any more, nevertheless you can still use XIF Adapter to integrate S4CRM with external system. XIF Adapter works as the role demonstrated in below diagram:
For detail steps please refer to my blog Step by step to send IDoc data into external receiver via XIF adapter.
And it is worth mentioning that it is also possible to integrate SAP CRM On-Premises with C4C with SAP PI plus XIF Adapter. Please refer to my blog Replicate CRM Opportunity to SAP Cloud for Customer using PI and XIF Adapter for detail.
As a cloud solution, C4C has a rich set of integration approaches with other systems.
Here below is an overview of standard integration scenario available in C4C:
This SAP Help also documents the standard OData services which are ready for use:
All C4C Integration related stuff are well maintained in this blog from Sapna Ramaiah:
Key User Extensibility
S4CRM does not continue to use SAP CRM Application Extension Tool for extensibility purpose, but choose S/4HANA Key User Tool in S/4HANA instead. One cool feature of this tool is that it can enable you to directly write ABAP code in the browser. I was once very curious about how this feature is implemented in browser and documented my research findings in my blog:
An overview introduction of S/4HANA Key User Tool could be found from blog:
And one feature of C4C Key User Tool which I feel very impressive is it is possible to hide/show a given UI element via rule edit. Even scripting is allowed there.
I was once obsessed with this feature and made research how it works:
Excel export is supported in both S4CRM and C4C. Details could be found from my blog:
PDF export is also supported in both product with different technical implementation:
Besides Export export, it is also supported to import local data into C4C via excel import.
In SAP CRM On-Premises there is more powerful function related to word template: a word template file could be created. A business object model in SAP CRM could be bound into this template file, whose fields are displayed in a hierarchy tree in word file and could be dragged from the tree and dropped into the word file. Once done, a binding relationship is established between the UI element in word file and corresponding bound BO field.
In the example below I create a word template and assign it with Product business object in CRM.
In the runtime, once I open such template file from the detail page of a given product in CRM WebClient UI, the fields in word template bound to Product business object are filled by corresponding values automatically.
Details step could be found from my blog:
Such function is not supported in S4CRM 1.0.
In the end I list several comparison in regard to some concrete technical points:
- OData Service backend implementation in C4C, CRM and S4 HANA
- Excel export in CRM and C4C
- Saved query in C4C, CRM and S/4 HANA
- Direct navigation in CRM WebUI, CRM Fiori and C4C
- Formatted Text Edit in CRM and Cloud for Customer
- How Table column resize works in CRM and Cloud for Customer
- Document flow API in SAP CRM and C4C
Hope this blog can help you gain a basic understanding the technical differences between S4CRM and C4C.