In this blog post, I want to talk about Extensibility in 3-System Landscapes in a simplified way, so that you understand what each tenant is for and how to use it correctly for each feature.
Depending on your installation, your SAP S/4HANA Cloud system is based on a 2-System Landscape or on a 3-System Landscape.
It is very likely that you are already familiar with 2-System Landscape, but it's based on a Quality and Production System. The Quality System combines development, configuration and testing activities. In this system you can configure your content and create low-code custom developments using Key User Extensibility. On the other hand, the Production System is where you'll transport the items from Quality System and where you'll work productively.
In 3-System Landscape, the configuration is a bit different. It consists of a Development System, Test System and Production System. Development and testing activities are now separated in two different systems to make possible to create advanced projects.
The Development System is divided into two tenants with specific purposes.
The development tenant and customizing tenant are technically clients in the development system. Clients have separate user master records and separate authorizations.
It is quite common to get confused with both tenants, but each one has a specific function that I will show you below:
This tenant provides access to the SAP S/4HANA Cloud ABAP Environment. In this environment, you can build your own custom developments based on lifecycle-stable SAP objects, this is called Developer Extensibilty.
The Developer Extensibility is available only in a 3-System Landscape and includes: ABAP RESTful Application Programming model (RAP), Eclipse based IDE with debugger, troubleshooting and testing tool support and ABAP software lifecycle support.
To get started as a Developer in ABAP Environment, you need to have the Business Role SAP_BR_DEVELOPER assigned to your user without restrictions. Please, check SAP Help Portal | Getting Started as a Developer in the ABAP Environment for more information.*If the Business Role Template SAP_BR_DEVELOPER is not available in your system, it's because you didn't completed the steps for initial admin user in Development System and your CBC system is still in "Ready for initial deploy" status. Please, follow the documentation SAP Help Portal | Development System - Steps for the Initial Admin User and complete the prerequisites in your SAP S/4HANA Cloud Development System.
**Development objects are called client-independent and are accessible in all clients. Hence, when you, as a developer, create development objects in the development tenant, these objects are available in the customizing tenant as well. For instance, when you create a new SAP Fiori app and assign this app to a business catalog in the development tenant, the app is also accessible in the customizing tenant.
Customizing Tenant This tenant allows you to configure your activities based on the reference content from SAP Central Business Configuration and to create low-code custom developments in Key User applications, this is called Key User Extensibility. The Key User Extensibility is based on applications and features that help you customize applications and their UIs, reports, email templates, and form templates. Using extensibility apps, you can create custom fields, data source extensions, and implementation descriptions for specific business contexts to enhance predelivered applications that are extensible in order to adapt them to your business needs. You can also create custom CDS views based on predelivered data sources. You can create custom business objects with UIs. You can also add custom logic to custom business objects. You can thus create your own applications based on custom business objects. You can use Custom Analytical Queries to create new queries or reuse predefined queries. You use fields from CDS views to create a query. To get started with Key User Extensibility, you first need to activate it in your system by following the steps below:1. Go to "Extensibility Settings" app
2. Click on the swap button for "Key User Extensibility" to set it to "ON"
*Master data is called client-dependent and is only accessible in the respective client. Hence, when you, as an administrator, create a business role to a business user in the customizing tenant, this is only visible in the customizing tenant.
**That is only true for Partner Demo / Starter systems. In regular development systems, extensibility is on by default.
Once you have finalized your development and configuration projects, you can transport them to the Test System, where you can test both your custom developments and configurations before forwarding them to Production System.
Please note that it's not possible to transport items between Development and Customizing Tenant. Once you have finalized your development and configuration projects in Development System, you can transport them only to Test System and then to the Production System.
Check the diagram below for more information regarding transport management in 3-SL: