Skip to Content
Product Information

SAP Customer Engagement Center development – Best Practices and useful Information

What is the SAP Customer Engagement Center?

The SAP Customer Engagement Center is part of SAP C/4HANA, more precisely the SAP Service Cloud. As a contact center or call center solution, it stands between self-service solutions such as SAP Conversational AI and SAP Multichannel Foundation for Utilities, and field service solutions such as Core Systems.

It’s a solution in which the various front office processes can be integrated and which is thus to be understood as the perfect cloud solution for call centers that do not want to burden their employees with a large number of open windows from different applications.

It is a good building block in an existing landscape, for example to extend an online service with a live and video chat and at the same time offer agents new possibilities. It is also suitable for future scenarios in interaction with chatbots, since the solution can serve as a fallback channel for SAP Conversational AI, formerly Recast.AI.

In the first article, we went into more detail on the development of an initial custom view and the necessary configurations. You can find more about this here.

Best practices and useful information about the SAP Customer Engagement Center

In this article, I would like to explore best practices and useful information that can help you with your SAP Customer Engagement Center project.

This is a living document and will benefit from your experience as well as from our growing knowledge. We are therefore very happy if you keep us up to date with your experiences.

Integration with external systems

If you want to access a third party system with the external service proxy and encounter an error message like “CSRF token validation failed”, this information will help you. You might encounter this when accessing OData services from the IS-U, for example. This is because these services also have a CSRF protection, but the token sent with your request is likely to belong to the external service proxy.

To get the CSRF token of the backend system, use the HTTP header SAP-EC-PROXY_x-csrf-token: fetch and set the token X-CSRF token that you get back as SAP-EC-PROXY_x-csrf-token. This should allow you to access the service.

Saving of an interaction log

If you have problems saving an entry in the interaction log, you should check how many digits the ID of your business document has. Usually, the ID and DisplayID of the business document are identical. The display ID is limited to a maximum of 10 digits.

However, the relevant information, such as the GUID, can have more than 10 characters. For this you would have to deviate from the standard and assign the ID and DisplayID differently. You can do this in the BCD Item Handler Class. Relevant for this is the function constructRelatedObject.

Internationalization and Translation

When creating your own I18N files you should use a specific prefix. For example, let the individual translations start with the name of your application.

Should you wonder why translations of the standard don’t fit any more? Remember this and check whether the same name was used for a translation in one place. For example, the label TITLE, which in your application designates the title of a view, can overwrite the customer’s title description in the Customer Engagement Center.

Variables in ExternalSystem URLs

In the ExternalSystem URLs you can use placeholders. You can do this in the Item Handler Class in the buildURLParameters function. Some variables are already automatically replaced by the Customer Engagement Center. This includes for example {objectId} which will be replaced with the Business Document ID.

Destinations for ExternalSystem URLs

I’ld recommend to use destinations for every URL called in the Customer Engagement Center. This way you can use the same configuration in different landscapes by simply changing the URL in the destination service.

Also this will probably make it easier for you if you plan to use authorizations in order to access the specific URL.

Using an identified Business Partners in your custom View

A frequent requirement in projects is to reuse the business partner identified in the Customer Engagement Center elsewhere. Fortunately, this is easy to achieve. Just follow the coding below.

First it checks if a business partner is identified, then it fetches that business partner and accesses the ExternalID property. This is interesting for further use in other systems.

            if (this.getBCD().isAccountConfirmed()) {
                var cecAccount = this.getBCD().getConfirmedAccount();
                if (cecAccount) {
                    var _extbpid = cecAccount.externalId;
                        }
                    });

Naming of configuration entities

The IDs of the different configuration entities should start with Z_Entityname for example. For a module it could beĀ Z_Module_, for a WorkAreaView Z_WAV_.

Clarify the choice of technologies before doing estimations

You should get into the details of your planned integrations before doing any estimations regarding the integration of third party systems. If you are planning on using UI integration views, or rather IFrames, there might be some more work to be done on the respective third party system. If you are on the other hand recreating every UI natively you need to estimate a lot more effort on the SAP Customer Engagement Center side and verify that the necessary services for you UI are already in place or being build.

Your experiences and comments?

These were our best practices and tips for you from our projects. This article is designed as a living document. It will be expanded step by step.

Have you had any experience or comments on the article? Then share it with us and the fellowship so we can all benefit.

 

Further informations

You can find more information about the Customer Engagement Center here:

If you have questions, suggestions or problems, please contact us.

Best regards,
Tobias

Be the first to leave a comment
You must be Logged on to comment or reply to a post.