Developing Extensions

Objectives
After completing this lesson, you will be able to:

After completing this lesson, you will be able to:

  • Introduce the extensibility concept in SAP S/4HANA Cloud, Public Edition
  • Use the SAP Fiori extensibility apps to define in-app extensions
  • Explore developer extensibility in the SAP S/4HANA Cloud, Public Edition ABAP environment
  • Transport extensions between landscapes
  • Explore the SAP Business Technology Platform extensibility capabilities for building side-by-side extensions
  • Review the SAP S/4HANA, Public Edition localization approach

Extensibility in SAP S/4HANA Cloud, Public Edition

Lifecycle Stable Extensions in SAP S/4HANA Cloud

Extensibility covers a broad spectrum of topics that enable implementation consultants and customers to adapt standard business software to their business needs. This includes changes to software behavior that go beyond the capabilities of business configuration, data model extensions, data exposure, layout changes to user interfaces (UIs) or forms and reports, and creation of new UIs or own applications.

The architecture of SAP S/4HANA Cloud ensures that extensions made using the built-in capabilities are separated from the core business software layer, meaning that SAP can push upgrades out to all customer systems without affecting any customer-specific extensions that have been defined. Any extensions that can’t be performed in the core SAP S/4HANA Cloud system using the in-app capabilities should be decoupled, or separated into a different software platform to ensure the core is lifecycle stable. SAP Business Technology Platform enables these de-coupled extensions because it has a huge range of capabilities for building and hosting applications and integrations.

For all extensibility options, the virtual data model (VDM) forms the basis for data access in SAP S/4HANA Cloud. The VDM is made up of core data services (CDS) views. CDS views expose business data, which is stored in abstract database tables, in a way that is based on business semantics and therefore easier to consume.

Extensibility in SAP S/4HANA Cloud can be divided into three areas:

  • Key User In-App Extensibility in SAP S/4HANA Cloud using the built-in capabilities
  • Side-by-Side Extensibility through the SAP Business Technology Platform
  • Developer In-App Extensibility through the SAP S/4HANA Cloud ABAP Environment
Note
Developer extensibility is only available in a 3-system landscape.

Extensibility Use Cases

 Key User ExtensibilityDeveloper ExtensibilitySide-by-Side Extensibility
ScenarioSmaller low/no-code extensionsTightly coupled more complex extensions and appsLoosely coupled extensions and apps
Target EnvironmentFully integrated in SAP S/4HANA Cloud StackFully integrated in SAP S/4HANA Cloud StackSAP Business Technology Platform
Target GroupKey Users (admins)ABAP developersDevelopers
Released object typesBAdIs, CDS viewsBAdIs, classes, interfaces, CDS views, behavior definitions, authorization objectsBAPIs, IDocs, OData and SOAP APIs, events
BenefitsFully managed and integrated in SAP S/4HANA Cloud; no development skills requiredCustom ABAP development directly on the SAP S/4HANA Cloud stack; use and extend released SAP S/4HANA Cloud objects; rich set of cloud extension points

Decoupled extensions independent of SAP S/4HANa Cloud operation and lifecycle management

Discover SAP S/4HANA Cloud Extensibility Options in the SAP Extensibility Explorer

The SAP Extensibility Explorer website is an excellent resource to find information about the different types of extensibility in SAP S/4HANA Cloud with pre-built extension scenarios that you can download and use.

Explore APIs for Custom Integrations in SAP API Business Hub

The SAP API Business Hub is a rich library of content with prepackaged integrations, APIs, events, adapters, open connectors, CDS Views, and workflow scenarios. Content published here is built by SAP and our developer partners using the SAP Business Technology Platform. All content is available for public consumption.

In-App Extensibility in SAP S/4HANA Cloud, Public Edition

In-App Extensibility

SAP S/4HANA Cloud in-app extensibility allows adapting standard functionalities to user requirements without the need for any external tools. Whether you want to apply small changes, such as hiding standard fields for specific user groups or including some business logic, SAP S/4HANA Cloud offers a variety of tools covering diverse extensibility needs. Here are a few examples of what you can do with the in-app extensibility tools:

  • Change and adapt the UIs for SAP Fiori apps
  • Create a new custom user interface
  • Create and extend forms and email templates
  • Create custom CDS Views
  • Enhance the current business process by creating custom business logic
  • Create custom fields
  • Create custom business objects
  • View a list of your extensibility items and the dependencies between them in the Extensibility Inventory app

The in-app extensibility tools are completely web-based and targeted to key users (administrators) who have a deep knowledge of the product itself, but not necessarily a deep technical knowledge (for example, in coding). The tools SAP provides enable you to create lifecycle-stable extensions that will not be affected by release upgrades.

Note

The management of data in an extension scenario deviates from the management of data in the standard scenarios. You are responsible for ensuring that the data used in an extension scenario is managed in accordance with any applicable legal requirements or business needs, such as data protection legislation or data life cycle requirements. Please note that the extensibility framework is currently not integrated in the privacy-by-default functionality. Therefore, the extensibility framework should not be used for the processing of personal data if this processing falls under any applicable data protection legislation.

Extensibility Cockpit App

With the Extensibility Cockpit app, you can explore the available options to extend an SAP app by filtering on the type of extension, solution scope, scope item, or business context. This app helps you gain information when planning or preparing to build an extension.

Extensibility Inventory App

The Extensibility Inventory app enables you to display an overview of your extensibility items and to view associations or dependencies between various extensibility items. You can thus gauge how importing or exporting a given extensibility item would affect other extensibility items.

Link Extensibility Explorer to your SAP S/4HANA Cloud Development System

In SAP Extensibility Explorer, you can select Extensibility Patterns to get instructions on how to build these common extensions. You can also link your SAP S/4HANA Cloud development system (customizing tenant) to extensibility explorer to get personalized navigation, where the patterns will point you to a specific application to use in your system. You can also access Extensibility Explorer as an application in your Launchpad.

To link your SAP S/4HANA Cloud system to Extensibility Explorer:

  1. Navigate to Extensibility Explorer.
  2. Select Log in in the upper right corner.
  3. Select the user dropdown menu in the upper right corner and choose Preferences.
  4. Enter your SAP S/4HANA Cloud URL.
  5. Navigate to the Extensibility Patterns link in the header bar to work through scenarios with personalized navigation.

Adapt Fiori UI at Runtime

When running an app in the SAP Fiori launchpad, end users can personalize object pages and key users can adapt the user interface for all users of the app (for example, a team lead can add a field that is then available for all team members). Once you turn on the Adapt UI mode, you can simply use drag and drop and the context menu to make UI changes. You can rearrange fields or groups, remove them or add additional ones. You can also access the Custom Fields and logic app by creating a new custom field while you're in Adapt UI mode. The changes you make with key user adaptation apply to the entire app and all app users (after you transport the extension to the production system).

In adaptation mode, you can do the following:

  • Hide fields in a form, table, or filter, hide groups and areas.
  • Rename labels.
  • Add field to UI from field repository.
  • Move form field or UI group, create new groups and move fields into, combine fields into one line, split combined fields.
  • Define new filter and table variants.

This applies to transactional SAP Fiori Uls and to SAP Fiori fact sheets

Try it out

Learn how to adapt the SAP Fiori UI at runtime.

Creating App Variants

You can create variants of apps (even if the apps are variants themselves) to adapt it for special usage scenarios (for example, countries, organizational units, or user groups). You can create a new variant based on the app you are currently editing in UI adaptation mode by choosing Save As from the header bar, or based on the original app or its existing variants in the overview of app variants. UI changes you make to the original app or a variant are not applied to other variants. But if the UI of the original app gets changed outside of UI adaptation mode, for example by your IT or partners, these UI changes are applied to your app (if you have already adapted it, on top of your changes) and all variants that you have created from the app or its variants.

Note
Some apps do not support creating variants, the feature is then not available in UI adaptation mode. (If you are interested in the technical details: variants are not supported by Scaffolding-based apps or apps whose SAPUI5 version is 1.28 or lower.)

Adapting Views

For certain apps, you can change existing views, create new views, and manage available views. To check if it is available, check if the User Actions menu contains the Adapt UI menu item. If you can choose Adapt UI, the UI adaptation mode will start, and you should be able to make changes to the UI.

Custom Fields App

The Custom Fields app enables you to create your own fields and implementations to customize applications and their UIs, reports, email templates, and form templates. Different users and business contexts require different document layouts or application functionality. To address these specific needs, you can adapt accordingly (for example, predelivered templates and logic).

Custom fields can be used to enhance applications which contain APIs and data sources that have been released by SAP to add custom fields.

Note
To create an implementation for a custom field, you need to know the business context it is allocated to. You can find an overview of business contexts and their scope items with the Extensibility Cockpit app.

You can open the Custom Fields app either directly from the SAP Fiori launchpad, or from an extensible application by clicking Add Field in the UI adaptation mode of an application (runtime authoring).

When you delete an already transported field, the contained data is saved for 18 months. If you need to recover the data of a deleted custom fields, open an incident for the component BC-SRV-APS-EXT-FLD.

No read access logging is provided for custom fields.

Try it out

Explore the Extensibility Cockpit and learn how to change the layout of a user interface and create custom fields.

Custom Logic App

Custom logic can be used to enhance applications that contain internal APIs that have been released by SAP for use in ABAP code and data sources.

Note
To create an implementation for a Cloud BAdI, you need to know the business context it is allocated to. You can find an overview of business contexts and their scope items with the Extensibility Cockpit app.

Custom Business Object App

Play the following short video to find out what you can create using the Custom Business Objects app.

Custom Field Association to Business Object Example

Custom business objects can be used for associations:

  • Define your custom fields (define your own custom table).
  • Add logic in ABAP to determine "after modification" or to validate "before save".
  • Associate a custom business object to another custom business object.

Custom Reusable Elements App

With the Custom Reusable Elements app, you can modularize your custom code and thus structure your custom code according to your requirements. You can use this app to create Custom Libraries and organize your methods as required. This app is specifically designed for custom code reuse and supports your productivity and efficiency.

Learn more about the Custom Reusable Elements app in the SAP Help Portal.

Custom Catalog Extension App

With the Custom Catalog Extensions app, you can assign your applications (for example, Custom Business Objects) to a new or different business catalog. If you have created a custom application, you have to assign it to at least one business catalog, and assign that catalog to a business role for any user to be able to access it.

Learn more about the Custom Catalog Extensions app in the SAP Help Portal here.

Custom Tiles App

With the Custom Tiles app you can create your own tiles to access any external application, for example an app you developed on your Business Technology Platform. You can start this tile from the SAP Fiori Launchpad in your SAP S/4 HANA Cloud system.

Learn more about the Custom Tiles app in the SAP Help Portal.

Released ABAP Artifacts App

The Released ABAP Artifacts app lets key users see details about SAP-approved ABAP development artifacts that are released as APIs. These development artifacts can be used in enhancement implementations to extend SAP S/4HANA Cloud solutions.

Learn more about the Released ABAP Artifacts app in the SAP Help Portal.

Simplified BRFplus Workbench App

Business Rule Framework plus (BRFplus) provides a comprehensive application programming interface (API) and user interface (UI) for defining and processing business rules. It allows you to model rules in an intuitive way and to reuse these rules in different applications.

The Simplified BRFplus Workbench app enables you to define and process business rules for use in different scenarios, such as:

  • Validating data
  • Detecting invalid data and states
  • Matching responsibilities, suitable products, or locations
  • Calculating costs, overhead, or risks
  • BRFplus as a technical configuration engine

Learn more about the Simplified BRFplus Workbench app in the SAP Help Portal.

Extensibility Templates & Extensibility Settings

Extensibility covers a broad tool spectrum which allows you to adopt standard business software to your specific business needs, like adding custom fields or logic. Large organizations with an extensive system landscape require a possibility to distribute extensibility content across system landscapes. This can be achieved with the help of Extensibility Templates.

Extensibility templates are developed in the quality system of a template provider using the extensibility apps like Custom Business Objects or Custom Fields. Extension items are exported in template files with the Export Extensibility Template app and are handed over to the template consumer. After that, the templates are imported into the quality system of the consumer with the Import Extensibility Template app. The template consumer can adapt and change the extension items and transport them to the production system using the Export Collection app. To develop, export, and import a template, you need to enable this process first in the Extensibility Settings app.

The following extension patterns are enabled for extensibility templates:

  • Custom Business Objects
  • Custom Reusable Elements
  • Custom Fields
  • Custom Logic
  • Custom Library

With the Extensibility Settings app, you can check the general extensibility settings like transport enablement and you can make settings for namespaces. These namespace settings are required for the Extensibility Templates.

  • Template providers can register their own namespace and assign users to it to use the in-app extensibility tools to develop extensions in your own namespace. You can create and download a namespace installation file so that a consumer can import your extension items.
  • Template consumers can register a template provider's namespace to be able to import and publish extensions developed in the respective namespace. Note that you won't be able to create items in the template provider's namespace.

Learn more about Exporting Extensibility Templates in the SAP Help Portal.

Learn more about Importing Extensibility Templates in the SAP Help Portal.

Note
SAP is not responsible for any extensibility template that a customer uploads into his SAP S/4HANA cloud system. The use of an extensibility template is at the customer's sole risk, and SAP shall not be responsible for any changes or modifications of customer data by or through an extensibility template. SAP does not warrant that extensibility template items are or will be available without interruption, including, without limitation, during any standard maintenance windows for SAP cloud solutions. SAP shall not be responsible for any negative impact of an extensibility template on the availability, functionality, or performance of the customer´s SAP S/4HANA cloud system. SAP strongly recommends that all extensibility template items adhere to SAP's quality standards. For a downloaded extensibility template or a downloaded namespace definition, SAP does not provide any means to protect the content of the file. There is no security mechanism to prohibit the import of an extensibility template or namespace into any systems. It is the customer and provider sole risk to secure the transfer and usage of the files. After the import of the extensibility template into an system there is no protection of the imported items. The items can be viewed and changed after the import. Before activating the template, we recommend that you inform the consumer of any functions that may be affected by the update. For example, if the administrator at the customer has adapted a user interface or analytical report, this may be affected by any changes you have made to the same object.

Developer Extensibility

SAP S/4HANA Cloud ABAP Environment

Developer extensibility allows ABAP developers to create advanced cloud-ready and upgrade-stable custom ABAP code on SAP S/4HANA Cloud. This combines the benefits of custom ABAP code, with the required restrictions for cloud-readiness, and the SAP S/4HANA programming model to build SAP Fiori apps. Developer extensibility is completed in the development system, then transported to the test/quality system for testing, and finally transported to the production system.

Developer extensibility in the SAP S/4HANA Cloud ABAP Environment includes:

  • ABAP RESTful Application Programming model (RAP) to build services and SAP Fiori apps
  • Eclipse-based IDE (ABAP Development Tools) with debugger, troubleshooting, and testing tool support
  • ABAP software lifecycle support

To ensure cloud-readiness, developers must take into account the following restrictions:

  • Work within the cloud-optimized subset of the ABAP language.
  • Use only released SAP APIs or objects in the custom code.
  • Use only predefined extension points to extend SAP objects.
  • Ensure user access to data is controlled with thorough testing after developing customizations.
  • There is no default security when you create your own tables, meaning you cannot use ILM (Information Lifecycle Management) and IRF (Information Retrieval Framework).

Transport Extensions

Transporting Configurations in SAP S/4HANA Cloud with 3SL

After you select the scope and define the organizational structure in SAP Central Business Configuration, the content is deployed to the development system tenants and activated. After content is activated, you complete product-specific configuration activities, such as defining expenses or work items and groups in SAP Central Business Configuration. After completing a configuration activity, you are prompted to assign the change to a customizing request. You can assign the changes to a new request or an existing one. These customizing requests can be further edited or released to the Test system with the Export Customizing Transports SAP Fiori app, which lives in the customizing tenant of the SAP S/4HANA Cloud Development system.

Additional business configuration done in the customizing tenant of the Development system, such as creating a custom workflow or teams and responsibilities are also recorded as customizing requests. The Export Customizing Transports SAP Fiori app is used to release these changes to the Test system too.

Key user extensions built with the SAP Fiori extensibility apps in the customizing tenant (client 100) of the Development system must be added to a software collection and released in the Export Software Collection SAP Fiori app and to make them available for import in the Test system.

Changes in the development tenant (client 080) are recorded on workbench requests. To make a development available for import in the Test System, you release the workbench request with the Transport Organizer view in ABAP Development Tools.

The Import Collection SAP Fiori app is used in the Test and Production systems to import customizing requests, software collections, and development requests. The Test and Production systems only have one tenant (client 100).

Transport Organizer

The Transport Organizer in ABAP Development Tools (ADT) contains the basic transport functions of workbench. The requests record changes made to the ABAP workbench objects.

Note
Only developers will use the transport organizer.

Export Customizing Transports App

The Export Customizing Transports app enables you to manage business configuration changes recorded in requests. Depending on the category to which the customizing objects belong, different request types exist:

  • Central Business Configuration: Business configurations done via SAP Central Business Configuration.
  • Customizing Request: Client-specific business configurations from the customizing tenant of the Development system.
  • Cross-Client Customizing Request: Cross-client business configurations from the development tenant of the Development system.

Export Software Collection App

The Export Software Collection app enables you to create software collections, add extension items to your software collections, and export your software collection to transport the extension items. A software collection contains custom extension items that you have created and want to import into your production system. You need to manually add these extension items to your software collections. With this app you can then export the extension items that you have added to your software collection for import into your production system.

Import Collection App

The Import Collection app enables you to import software collection versions, which makes extension items available for productive usage. Any extension that is exported must be imported with this app. Keep in mind that importing items can lead to business interruptions. For example, if a user is working in the productive system with an app while items are being changed by the import. The business interruption risk persists until an import is finished. In the event of a business interruption, users could lose data or batch jobs and external services could be interrupted. In the app, a column for Business Interruption indicates if the interruption risk is high or low. We recommend importing collections with a high business interruption risk after working hours.

Side-by-Side Extensibility with SAP Business Technology Platform

Side-by-Side Extensions using SAP BTP

SAP Business Technology Platform enables developers to implement loosely coupled extension applications securely, thus implementing additional workflows or modules on top of the existing SAP solution they already have. Loosely coupled extensions enable customizations to be built and integrated without disrupting the core system's performance or processes. All standard SAP solutions are offered with in-app customizing capabilities. For additional customer requirements, the SAP Business Technology Platform extension capability can help them build, deploy, and operate their new functionalities easily and securely in on premise or cloud SAP solutions.

Extensibility in SAP Business Technology Platform is divided into three suites:

  • Extension Suite - Development Efficiency: Extend and optimize business processes in your existing applications and simplify development with low-code tools to create innovative applications faster.
  • Extension Suite - Digital Experience: Deliver consistent, personalized, and unified user experiences across business applications and multiple channels at scale.
  • Extension Suite - Digital Process Automation: Automate repetitive and manual tasks with digitalized workflows and robotic process automation bots. The predefined process content packages designed for specific lines of business and industries enable you to implement customizations quickly and easily.

Learn more about services in the Extension Suites in the SAP Discovery Center.

Click on each column to determine the side-by-side extensibility with SAP Business Technology Platform.

SAP Cloud Software Developer Kit (SDK)

The SAP Cloud SDK (Software Developer Kit) makes connecting to and integrating with any SAP S/4HANA system easy. The SDK includes further features that facilitate application development, such as a virtual data model for SAP S/4HANA, abstractions of the underlying cloud platform implementation, fault-tolerance, cache management, and project templates. In addition, the SDK delivers tools to get started quickly and maintain high quality, for example with project starters, a continuous delivery server and continuous delivery pipeline. These components enable developers to quickly set up the environment for development, quality assurance, and deployment that is essential for the development in cloud environments.

On a high level, the SAP Cloud SDK consists of two technical components: SAP Cloud SDK libraries and the Continuous Delivery Toolkit. You can use the SDK libraries in integration with SAP Cloud Application Programming Model, as well as independently with any framework of choice. The continuous delivery toolkit of the SDK offers an out-of-the-box pipeline for bringing applications developed with the SDK into production and continuously deploy changes, without a heavy investment into setting up continuous delivery. This enables development teams to get their features and fixes quickly to their users and adopt a DevOps culture. Essentially, SAP Cloud SDK delivers cloud-native best practices to development teams in an easy-to-adopt manner.

Learn more about the SAP Cloud SDK.

Basics of Custom Extension Applications

Public APIs

Public APIs can be used to connect SAP S/4HANA Cloud with any third party solution. These open protocols have been standardized internationally, meaning Public APIs for customer-driven extensions and integrations are published on the SAP API Business Hub.

There are two primary types of public APIs used in SAP S/4HANA Cloud:

  • OData (Open Data Protocol): After being initially developed by Microsoft, OData became an international standard protocol for creating and consuming REST APIs. REST (Representational state transfer) APIs allow a web client to publish and edit resources defined in a data model using simple HTTP (Hypertext Transfer Protocol) messages. In SAP S/4HANA Cloud, you can generate OData services for released CDS views (read only) and custom business objects (read/write). This provides a lifecycle stable method of making certain data consumable from SAP S/4HANA Cloud by a third-party system.
  • SOAP (Simple Object Access Protocol): This message protocol uses XML (Extensible Markup Language) and HTTP to communicate data regardless of the operating system where a program is running (e.g. Windows, Linux). SOAP messages are often used for error handling, because they create an audit trail when one system sends a request for data from another system, and the receiving system sends a confirmation the request has been received, in addition to the data that was requested.

Private APIs

Private APIs are delivered by SAP to primarily connect SAP applications to other SAP applications.

There are two primary types of private APIs used in SAP S/4HANA Cloud:

  • BAPI (Business Application Programming Interface): This refers to a standard interface to the business object models in SAP products. BAPIs are the primary method through which customer code and third-party applications interact with SAP products.
  • IDOC (Intermediate Document): This refers to a data container used to exchange information between any two processes that can understand the syntax and semantics of the data. In other words, an IDOC is a data file with a specified format that is exchanged between two systems that know how to interpret the data.

Business Scenarios for Side-by-Side Extensions

Additional side-by-side extensibility tools to enable building and consuming extensions:

  • SAP API Business Hub: Discover and consume digital content packages with APIs, pre-packaged integrations, and sample apps from SAP and select partners.
  • SAP Business Technology Platform ABAP Environment : Use the provided libraries and project templates to simplify your ABAP application and extension development in the cloud.
  • SAPWEB IDE Full-Stack : You can easily develop, test, build, deploy, and extend role-based, consumer-grade apps for business users.
  • SAP Forms Service by Adobe : SAP Forms service by Adobe lets you generate print and interactive forms using Adobe Document Services.
  • SAP Store: Discover, download & buy SAP solutions, services & free trials from SAP & partners including business analytics, Crystal Reports, mobile apps, cloud solutions, and more.

Localization

Expanding the local version coverage of SAP S/4HANA Cloud

SAP-delivered local versions are predelivered with authored configuration content. Further adaptations can be done through configuration activities in SAP Central Business Configuration. SAP S/4HANA Cloud is already designed to comply with a wide range of local financial reporting standards, legal frameworks, tax calculations, and regulations.

The Configuration Localization Tool in SAP Central Business Configuration enables customers to generate additional countries not covered by SAP Best Practices content from a source country that is covered by SAP Best Practices. Further country/region-specific functionality can be developed through extensibility in SAP S/4HANA Cloud. In this scenario, the customer is responsible for ongoing maintenance and safeguarding legal compliance of these local versions.

Localization as a Self-Service for SAP S/4HANA Cloud provides additional resources describing multiple options to implement localization extensions, including field extensibility, business object extensibility, business logic extensibility, UI adaptation, custom analytics, and forms extensibility, in addition to the built-in localization features of Advanced Compliance Reporting and Payment Medium Workbench.

Save progress to your learning plan by logging in or creating an account

Login or Register