Monday, 2 April 2018

Technical comparison between S4CRM and C4C

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.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

Deployment Strategy

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.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

And these UI5 library files give you a hint that the UI is based on SAP UI5.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

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.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

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”.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

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

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

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.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

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.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

Partner UI


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.
I heard some complains that WebClient UI is a little bit cumbersome compared with some other open-source UI framework – it is difficult to implement some features by WebClient UI. In my opinion, since WebClient UI is based on SAP BSP, and in SAP BSP, it is still allowed to directly program with HTML + JavaScript, so it means flexibility is still available in WebClient UI.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

Display count down in WebClient UI

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

Use Vue in BSP 
SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

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.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

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.

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.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

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.


SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

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.

Integration


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.

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:

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

And it is worth mentioning that it is also possible to integrate SAP CRM On-Premises with C4C with SAP PI plus XIF Adapter.

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:

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

SAP Hybris Cloud for Customer – All About Integration

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

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.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

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:

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

Office integration


Excel export is supported in both S4CRM and C4C.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

PDF export is also supported in both product with different technical implementation:
◈ PDF export in S4CRM
◈ PDF export in C4C

Besides Export export, it is also supported to import local data into C4C via excel import.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

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.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

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.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides

No comments:

Post a Comment