Choosing the Appropriate Extensibility Option

Objective

After completing this lesson, you will be able to name the most important factors that influence the choice of the extensibility option

Guidance for the Choice of the Extensibility Option

In this lesson, we will give you some guidelines on when to choose which extensibility option.

The figure shows the four factors influencing the decision about an extensibility option. More information is given below.

There are four factors that should influence your decision. The first factor is the target group, the second factor is integration requirements, the third factor is scenario and functional requirements, and the last factor is lifecycle stability and management.

Illustration of the decision factor: target group.

The first factor is the target group that will use the extension. In-app extensibility is applicable if the target group are users who are already using the SAP S/4HANA solution.

However, you can also use side-by-side extensibility for this user group.

You should use side-by-side extensibility for users who do not use the SAP S/4HANA solution or do not want to use it. That is, for employees with new user roles or in new departments who do not normally come into direct contact with SAP S/4HANA, and of course for external users such as customers, prospects, or interested parties.

Illustration of the decision factor: integration requirements.

The second factor are the integration requirements.

If there is a close integration with the core product, you should opt for in-app extensibility. This is the case when data is frequently read from the SAP S/4HANA system and custom data is typically changed in one transaction along with the core data.

On the other hand, you should choose side-by-side extensibility if you have applications that only occasionally use data remotely. This means that data is read less frequently from the core product, and this can be done through the API, or the data is even replicated. Custom data and core data should not need to be changed together in one transaction.

Illustration of the decision factor: scenario and functional requirements.

The third factor are the scenario and functional requirements.

The same recommendation applies here as for the integration requirements. You should use in-app extensibility for standalone applications or new processes with heavy use of SAP S/4HANA data.

If you are talking about analytical applications and most of the data is already in your SAP S/4HANA system and you have only small extensions, you should also think about in-app extensibility.

Finally, in terms of in-app extensibility, you need to decide between ABAP custom development and key user extensibility. Key user extensibility should be used for last-mile extensions, while larger development projects must be done with custom development and are only available in on-premise.

Use side-by-side extensibility if you use SAP S/4HANA data remotely only occasionally.

If you are building a data hub scenario in an analytical application, whether with SAP Data Hub or with another technology, think about side-by-side extensibility.

If you want to build applications that form an integration hub with other cloud or on-premise solutions, you should also consider side-by-side extensibility.

Other use cases for side-by-side extensibility include freestyle UI development, such as native mobile UIs.

Illustration of the decision factor: lifecycle stability and lifecycle management.

The last factor is lifecycle stability and lifecycle management.

As far as ABAP custom development is concerned, extensions are usually not lifecycle-stable because they can interact with the core system in many ways. As a result, a large amount of effort can be required during an SAP update. The adaptation effort required for an update depends heavily on the technologies used. If very modern technologies such as BAdIs are used, the effort is less than for older and more invasive technologies.

Key user extensions are lifecycle-stable, because they are based on stable APIs and extension options.

There is integrated lifecycle management for both ABAP custom development and key user extensibility. This means that the lifecycle management of an extension is technically integrated with the lifecycle management of the core, as it is on the ABAP stack.

As for side-by-side extensibility, extensions are lifecycle-stable because they are based on stable APIs and stable events. Side-by-side extensions have their own lifecycle management.

Log in to track your progress & complete quizzes