SAP BTP Developer Guide
SAP BTP Developer Guide
PUBLIC
Warning
This document has been generated from the SAP Help Portal and is an incomplete version of the official SAP product
documentation. The information included in custom documentation may not reflect the arrangement of topics in the SAP Help
Portal, and may be missing important aspects and/or correlations to other topics. For this reason, it is not for productive use.
This is custom documentation. For more information, please visit the SAP Help Portal 1
10/23/24, 6:57 PM
If you're a developer, this guide helps you define the correct methodologies and tools for your development project.
If you're an SAP partner, this guide helps you to set up SAP BTP for developing and running production services for your
customers.
Note
If you're an administrator, you have to set up the correct organizational structure to creating an account and security model. In
this case, use the SAP BTP Administrator's Guide.
Note
This guide is targeted at customers who want to run and use applications in a production environment. If you're an SAP BTP
trial user, you might still find that some information in this guide is useful. Check out the following page for more details about
trial accounts: Trial Accounts and Free Tier. Please note that the services available in the trial version differ from the ones in the
enterprise version.
Prerequisites
If you're new to SAP BTP, read:
SAP BTP is a cloud platform that brings together application development, automation, data management, analytics and
planning, integration, and AI capabilities into one unified environment optimized for SAP applications. It offers:
An intuitive, modern development environment for both, professional IT and citizen and business developers,
Built-in data models, integrations, workflows, app templates, and AI business services
Self-service data discovery, modeling, planning, and analytics for business users in a governed environment
This is the central access point for architects, developers, and administrators to build and run enterprise-grade solutions
on SAP BTP. It comprises decision guides, reference architectures, methodologies, recommendations, and DevOps
principles.
Contains regions, runtimes, accounts, members, quotas, capabilities and links to in-depth explanations.
This is custom documentation. For more information, please visit the SAP Help Portal 2
10/23/24, 6:57 PM
Explains your responsibilities and SAP's responsibilities when it comes to application lifecycle management.
This guide helps you plan and set up your landscape and your lifecycle management for running applications on SAP
Business Technology Platform (SAP BTP). It's part of the SAP BTP Guidance Framework and contains recommendations
for planning development projects – from setting up the correct organizational structure to creating an account and
security model, to operating applications.
Helps you turn your data into business value with SAP BTP. In the SAP Discovery Center you can find end-to-end scenarios,
called missions, the Service Catalog of SAP BTP, and reference architectures.
Development projects for business applications have similar characteristics. Standardized development guidance is driving
developer efficiency.
Based on the experiences of successful business applications, this guide condenses best practices and technologies that can be
safely recommended to you. These recommendations are structured following the design-led development phases:
Explore
Identify the business opportunity and set up the roles and responsibilities in your team.
Discover
Understand your end users, their working methods, and their needs in more depth.
Get to know the use case patterns that can be implemented on SAP BTP.
Explore the comprehensive set of tools and services that allow you to keep the pace when developing your
application and at the same time benefit from future innovations in SAP BTP.
Design
Technology Design
This is custom documentation. For more information, please visit the SAP Help Portal 3
10/23/24, 6:57 PM
Use domain-driven design to create an application that is modularized and has shorter innovation cycles and a
clearer focus.
Deliver
Set Up
Before you begin developing your applications, make sure your landscape setup is appropriate for managing their
lifecycles.
Develop
Develop your application by following the recommendations outlined in this section about the two programming
models, the numerous programming languages, the respective development tools and also about aspects such as
multitenancy, security, extensibility and others.
Get constant feedback from your users, optimize the application based on this feedback, and operate the application using
the services and capabilities SAP BTP offers.
ABAP Cloud
ABAP Cloud reflects the modern way to develop ABAP. It allows you to build lifecycle-stable and cloud-ready
business applications, services, and extensions.
The SAP Cloud Application Programming Model (CAP) is a framework of languages, libraries, and tools for building
enterprise-grade services and applications. It supports Java (with Spring Boot), JavaScript, and TypeScript (with
Node.js), which are some of the most widely adopted languages. CAP guides developers along a path of proven best
practices and a great wealth of out-of-the-box solutions to recurring tasks.
Tip
The English version of this guide is open for contributions and feedback using GitHub. This allows you to get in contact with
responsible authors of SAP Help Portal pages and the development team to discuss documentation-related issues. To
contribute to this guide, or to provide feedback, choose the corresponding option on SAP Help Portal:
Feedback Create issue : Provide feedback about a documentation page. This option opens an issue on GitHub.
Feedback Edit page : Contribute to a documentation page. This option opens a pull request on GitHub.
More information:
Contribution Guidelines
Introduction Video
This is custom documentation. For more information, please visit the SAP Help Portal 4
10/23/24, 6:57 PM
SAP BTP Kyma New You can now develop Info General New Technology Not
Developer's Mission: multitenant CAP only Availability applicable
Cloud
Guide Develop a applications and
Foundry
Multitenant deploy them in SAP
CAP BTP. The Develop a
Application Multitenant CAP
Application Following
the SAP BTP
Developer’s Guide
mission includes
enabling multitenancy,
deploying the
application in the SAP
BTP, Cloud Foundry
runtime and SAP BTP,
Kyma runtime, and
subscribing to the
multitenant
application.
See Develop a
Multitenant CAP
Application Following
the SAP BTP
Developer's Guide .
SAP BTP Kyma Get to Know A link to the Info General Announcement Technology Not
Developer's the Architecting Multi- only Availability applicable
Cloud
Guide Architecting Region Resiliency for
Foundry
Multi-Region SAP BTP Use Cases
Resiliency reference
for SAP BTP architecture has been
Use Cases added to the SAP BTP
Reference Developer's Guide. It
Architecture shows the multi-region
high availability
architecture for SAP
BTP services and the
applications built on
SAP BTP.
See Developing
Resilient Applications.
SAP BTP Kyma SAP Event The name of the SAP Info General Changed Technology Not
Developer's Broker Event Broker service only Availability applicable
Cloud
Guide Becomes has been changed to
Foundry
SAP Cloud SAP Cloud Application
Application Event Hub.
Event Hub
See:
This is custom documentation. For more information, please visit the SAP Help Portal 5
10/23/24, 6:57 PM
Business
Application
Services
What Is SAP
Cloud
Application
Event Hub?
SAP BTP Kyma New Option You can now integrate Info General Announcement Technology Not
Developer's for your application with only Availability applicable
Cloud
Guide Integrating SAP Build Work Zone,
Foundry
with SAP standard edition
Build Work through Common
Zone, Data Model. For more
Standard information about the
Edition Common Data Model,
see About the
Common Data Model
and Developing
HTML5 Business
Solutions as Content
Providers. Depending
on the runtime you're
using, check the
following tutorials:
SAP BTP ABAP Change in The new structure of Info General Announcement Technology Not
Developer's the the SAP BTP only Availability applicable
Kyma
Guide Structure of Developer's Guide now
the SAP BTP follows the design-led
development process.
This is custom documentation. For more information, please visit the SAP Help Portal 6
10/23/24, 6:57 PM
SAP BTP Kyma New You can now develop Info General New Technology Not
Developer's Mission: enterprise-grade CAP only Availability applicable
Cloud
Guide Develop an applications and
Foundry
Enterprise- deploy them in SAP
Grade CAP BTP. The Develop an
Application Enterprise-Grade CAP
Application Following
the SAP BTP
Developer’s Guide
mission includes
options for tracking
changes, adding audit
logs, and uploading
attachments.
SAP BTP ABAP Information There is now Info General Announcement Technology Not
Developer's About Third- information about the only Availability applicable
Kyma
Guide Party usage of third-party
Cloud Cookies cookies.
Foundry
See Development
Guidance.
SAP BTP Kyma New Graphic You can now use an Info General Announcement Technology Not
Developer's Showing the interactive graphic to only Availability applicable
Cloud
Guide Order of the follow the tutorials and
Foundry
Tutorials and missions related to the
Missions for SAP Cloud Application
CAP Programming Model
(CAP) and based on
the Incident
Management sample
application.
This is custom documentation. For more information, please visit the SAP Help Portal 7
10/23/24, 6:57 PM
SAP BTP Cloud Tutorials for The tutorials that Info General Announcement Technology Not
Developer's Foundry Consuming show how to integrate only Availability applicable
Guide Remote the SAP S/4HANA
Services Cloud Business
Moved to Partner API to the
Tutorial Incident Management
Navigator application are now
moved to the Tutorial
Navigator. There are
two main groups
depending on whether
you have an SAP
S/4HANA Cloud
tenant, or you use a
mock server:
Consume
Remote
Services from
S/4HANA
Cloud in Your
Full-Stack CAP
Application
Following the
SAP BTP
Developer's
Guide and
Deploy in SAP
BTP, Cloud
Foundry
Runtime
Consume
Remote
Services from
a Mock Server
in Your Full-
Stack CAP
Application
Following the
SAP BTP
Developer's
Guide and
Deploy in SAP
BTP, Cloud
Foundry
Runtime
SAP BTP Kyma Explore the There is a new mission Info General Announcement Technology Not
Developer's Develop a published that is part only Availability applicable
Cloud
Guide Side-by-Side of the hands-on
Foundry
CAP-Based materials for the SAP
Extension Cloud Application
Application
This is custom documentation. For more information, please visit the SAP Help Portal 8
10/23/24, 6:57 PM
See:
Tutorials for
SAP Cloud
Application
Programming
Model
Mission:
Develop a
Side-by-Side
CAP-Based
Extension
Application
Following the
SAP BTP
Developer’s
Guide
SAP BTP Kyma Explore the There is a new mission Info General Announcement Technology Not
Developer's Implement published that is part only Availability applicable
Cloud
Guide Observability of the hands-on
Foundry
in a Full- materials for the SAP
Stack CAP Cloud Application
Application Programming Model
Following (CAP).
SAP BTP
The mission explains
Developer’s
how you can add
Guide
observability to your
Mission
SAP Cloud Application
Programming Model
(CAP)-based
applications and is
based on the Incident
Management sample
application.
See:
This is custom documentation. For more information, please visit the SAP Help Portal 9
10/23/24, 6:57 PM
Tutorials for
SAP Cloud
Application
Programming
Model
Mission:
Implement
Observability
in a Full-Stack
CAP
Application
Following SAP
BTP
Developer’s
Guide
SAP BTP ABAP Explore the There is a new mission Info General Announcement Technology Not
Developer's Develop a published that is part only Availability applicable
Guide Full-Stack of the hands-on
RAP materials for ABAP
Application Cloud: Develop a Full-
Following the Stack RAP Application
SAP BTP Following the SAP BTP
Developer’s Developer’s Guide. It is
Guide based on the Travel
Mission sample application of
the Flight Reference
Scenario that is the
best practice example
for developing,
deploying, and
operating a full-stack
application using
ABAP RESTful
Application
Programming Model
(RAP) and SAP Fiori.
SAP BTP ABAP Build Your The SAP BTP Info General Announcement Technology Not
Developer's Application Developer's Guide now only Availability applicable
Kyma
Guide from provides insights on
This is custom documentation. For more information, please visit the SAP Help Portal 10
10/23/24, 6:57 PM
Identify the
business
problem
Deliver a cloud
application
from concept
to a final
product
Understand
modularization
in general
Understand
modularization
in the context
of
microservice-
based
architecture
Learn about
the domain-
driven design
starter
modeling
process
Check how
complex your
scenario is
Explore
Developing a new application should always serve the purpose of your business, for example making a process more efficient and
hence saving costs, making users more effective so they get better results, or supporting a business innovation which gives you a
competitive advantage and allows you to make more money.
The Explore phase is where the business opportunity is identified at a fairly high level. Typically key stakeholders are interviewed,
or use case exploration workshops are conducted. The methods used differ, depending on whether you are looking to optimize
existing processes or whether you are looking to innovate your business.
If you are looking to optimize existing processes, then you need to identify the business problem.
This is custom documentation. For more information, please visit the SAP Help Portal 11
10/23/24, 6:57 PM
To solve a problem for an internal or an external customer when using a product, you need to ask questions that can help you
understand the customer’s needs, expectations, pain points, and feedback. Some examples of such questions are:
What are the tasks that customers are trying to achieve with a product?
What are the main challenges or frustrations that the customers face when using the product?
How can you improve the product to better serve the customers' needs?
How satisfied are the customers with the product and the customer service?
What are the benefits or value that the customers get from the product?
How do the customers measure the success or impact of the product on their goals?
One of the first and most important steps of your journey to the cloud is to establish an appropriate organizational setup and
corresponding governance model. A clear and well-thought-out organizational setup makes it easier for your employees to adopt
agile processes. See Creating a Governance Model in the SAP BTP Administrator's Guide.
Discover
Now that the business opportunity has been identified by the Explore phase, you can start to discover the concrete needs of your
users as well as getting an understanding of the available technology for your landscape.
Familiarize yourself with the various use case patterns available to you, automating processes, building web or mobile apps on
existing services, or building full-stack applications, and discover the comprehensive set of tools and services provided by SAP
BTP to make your life easier as a developer.
Go through the different use cases and choose the one that best suits your business needs.
This is custom documentation. For more information, please visit the SAP Help Portal 12
10/23/24, 6:57 PM
Business Application Services
SAP BTP supports Cloud Foundry, Kyma, and ABAP runtimes. It features a number of tools and programming languages that
increase your flexibility and freedom when developing applications. You can choose the runtime that best suits your use cases and
skill set and get to work. You also have the possibility to integrate applications you’ve built with other solutions by SAP.
As business applications have common characteristics, you can benefit from an open architecture with as few as possible, but well
documented, technology choices.
The architecture blueprint outlines ABAP Cloud and SAP Cloud Application Programming Model (CAP) as the best architecture
styles to implement business applications. Both programming models integrate with SAP BTP services.
To get the relevant insights, you will need to visit your customers onsite or remotely, speak to everyone involved, and if onsite,
observe users doing their daily work. You should gain a clear understanding of all the business roles involved, their typical tasks
and pain points, and the sequence of activities.
The goal of the Discover phase is to gain a thorough understanding of the user’s needs, independent of any existing application or
technology. In other words, which information do they need? When do they need it? What business outcomes do they need to
achieve?
By the end of the Discover phase, you should know what needs to be achieved – without knowing how you want to achieve it, that
is addressed in the Design phase.
For more information about user research during the Discover phase, have a look at the User Research Method Cards . The
methods outlined there contain the most commonly practiced user research methods at SAP.
The following use case patterns should always be implemented on the SAP BTP:
This pattern provides low code/no code capabilities to automate processes and is meant for business experts and
developers.
This is custom documentation. For more information, please visit the SAP Help Portal 13
10/23/24, 6:57 PM
This pattern provides mobile-native and web development capabilities and is meant for business experts and developers.
This pattern is meant for professional developers and has the following flavors:
This pattern is meant for customers and implementation partners enabling them to develop full-stack applications
on SAP BTP.
Full-stack multitenant SaaS applications for partners that are independent software vendors
This pattern is meant for SAP partners enabling them to develop full-stack SaaS applications on the SAP BTP and to
distribute these applications to their customers. Partners can easily onboard multiple customers (tenants) onto a
single application with strictly separated data. This approach dramatically reduces the total cost of ownership at
cloud scale.
Hub scenario integrating with several ERP systems and/or cloud services
This pattern provides a central hub on SAP BTP to collect and distribute data from various systems.
Extensibility Options
Most development use cases address some sort of extension of SAP S/4HANA and SAP S/4HANA Cloud, public or private edition.
Depending on the nature of the extension, different extensibility options are available. The extensibility options can be roughly
divided into two categories:
On-stack extensibility
A group of extensibility options that allows users to directly extend the software stack without any remote connection. The
extensibility options are:
Developer extensibility
Classic extensibility: not recommended; it's available only in private cloud and on-premise setups.
For detailed explanation of the ABAP on-stack extensibility options, see Extend SAP S/4HANA in the Cloud and On-Premise
with ABAP-Based Extensions .
In this document, you can also find decision tables when to use which extensibility option and how to combine these
options in more complex scenarios.
Side-by-side extensibility
An extensibility option that allows developers or key users to implement development projects, such as creating custom
user interfaces or custom applications. The development projects are implemented on SAP BTP and integrated via
released remote APIs.
Building Transactional, Analytical Applications and Integration Scenarios with ABAP Cloud
ABAP Cloud offers developers a programming model to design and implement transactional applications, analytical applications,
and integration scenarios. Applications can be deployed as single tenant or multitenant SaaS applications.
ABAP Cloud defines the technological core of the ABAP Cloud development model and consists of technologies such as ABAP,
ABAP RESTful Application Programming Model (RAP) and Core Data Services, reuse services and libraries to implement the
programming model aspects. Built-in qualities define the common quality characteristics that all ABAP Cloud implementations
fulfil such as extensibility or identity and access management.
This is custom documentation. For more information, please visit the SAP Help Portal 14
10/23/24, 6:57 PM
The overall suite of applications consists of multiple business modules that are either implemented for SAP Cloud Application
Programming (CAP) or ABAP Cloud. Each business module consists of one or multiple self-contained services following a three-
tier architecture with presentation, logic, and persistence layer. In both architecture styles, SAP Fiori and SAPUI5 is used to
implement front end artifacts. These front end artifacts are consuming its data using OData for transactional and InA for analytical
applications.
The application logic for CAP-based applications is implemented in Node.js, Java and Typescript and is deployed in SAP BTP, Cloud
Foundry runtime or SAP BTP, Kyma runtime. The application logic for ABAP Cloud is implemented in ABAP and deployed in the
SAP BTP, ABAP environment. In both cases, SAP HANA Cloud is used to store relational business data.
Additional enterprise qualities are reached by integrating the business modules with complementing SAP BTP application services
such as SAP Build Work Zone as a central entry point, SAP Datasphere as a cross-application data warehouse or Identity
Authentication for identity authentication among others.
This image is interactive. Hover over the image and click the highlighted areas so you are placed in the respective cell in the table.
Please note that image maps are not interactive in PDF output.
Development Tools SAP Business Application Studio ABAP Development Tools for Eclipse
This is custom documentation. For more information, please visit the SAP Help Portal 15
10/23/24, 6:57 PM
Software Delivery SAP Continuous Integration and Delivery ABAP Lifecycle Management
This is custom documentation. For more information, please visit the SAP Help Portal 16
10/23/24, 6:57 PM
Programming Model SAP Cloud Application Programming Model ABAP RESTful Application Programming
(CAP) Model (RAP)
This is custom documentation. For more information, please visit the SAP Help Portal 17
10/23/24, 6:57 PM
Runtime SAP BTP, Cloud Foundry Runtime SAP BTP, ABAP Environment
Use SAP BTP, Cloud Foundry runtime as a Use SAP BTP, ABAP environment for ABAP-
runtime for CAP-based applications. based applications.
CAP is using SAP Cloud SDK behind the Use the Service Consumption Model to
scenes. generate local ABAP APIs to consume
remote OData, SOAP and RFC services.
SAP Cloud SDK provides client libraries for
consuming OData/OpenAPI services,
Destination service, and Connectivity
service that extend SAP solutions and other
OData/OpenAPI services on SAP Business
Technology Platform. These clients allow
you to concentrate on your unique business
logic, simplifying development and ensuring
seamless integration.
Use Destination service to store and SAP BTP, ABAP Environment provides a
retrieve technical connection properties to Communication Management to integrate
the target systems. It automates the the custom applications with other systems
process of retrieving OAuth access tokens to enable data exchange.
This is custom documentation. For more information, please visit the SAP Help Portal 18
10/23/24, 6:57 PM
Follow API guidelines and use the SAP Business Accelerator Hub.
SAPUI5
Use SAP Fiori elements for OData V4 to benefit from a presentation of a common UI and
UX. For more flexibility, use SAP Fiori element’s Flexible Programming Model with or
without SAPUI5 Freestyle. Personalization and theming are automatically supported.
SAP Fiori elements and SAPUI5 help you present one consistent solution experience to
your customers, and you benefit from the upcoming designs and UX improvements
automatically.
Remember that even the simplest UI components or more complex ones like geographic
maps have compliance requirements like accessibility and theming.
Use SAP MDK, BTP SDK for Android or BTP SDK for iOS for mobile applications.
These SDKs help you present one consistent solution experience to your customers.
Mobile application development is massively accelerated as SAP mobile services and its
SDKs generate the complete synchronization and authentication layer. Additional
supported features like logging, tracing, crash reporting bring extra value to you.
After deployment the Mobile services give administrators all the necessary tools and
services to operate a mobile solution. Features like push, offline, mobile specific security
and more simplify the operation.
Central Entry Point SAP Build Work Zone, standard edition SAP Fiori Launchpad for SAP BTP, ABAP
Environment
SAP Build Work Zone, advanced edition
SAP Work Zone, standard edition
SAP HTML5 Application Repository Service
for SAP BTP SAP Build Work Zone, advanced edition
Enable the central launchpad to offer a SAP HTML5 Application Repository Service
unified end-user experience. for SAP BTP
Customers want to create a personalized SAP BTP, ABAP Environment comes with a
view on the applications you produce. Make dedicated central entry point the SAP Fiori
sure your application can be added to a launchpad for SAP BTP, ABAP Environment.
central launchpad, regardless of where it This central entry point offers a unified end-
runs. user experience for ABAP-based
applications. It is also used as the entry
This is custom documentation. For more information, please visit the SAP Help Portal 19
10/23/24, 6:57 PM
SAP Event Mesh can be used to distribute events between selected SAP cloud and on-
premise applications and third-party applications.
SAP Integration Suite, advanced event mesh is currently not supported by CAP and ABAP
Cloud.
SAP Cloud Application Event Hub allows CAP-based applications to consume business
events from supported SAP cloud applications. Currently, SAP Cloud Application Event
Hub is not supported by ABAP Cloud.
SAP Master Data Integration service acts as the central master data hub. It uses the
integration models of SAP One Domain Model as the basis for master data replication. SAP
will extend the support of SAP One Domain Model in all SAP cloud applications over time
to integrate them. When out-of-the-box integration with SAP Master Data Integration is not
available, SAP Integration Suite can be used to integrate with SAP ERP Central
Component, SAP S/4HANA, and non-SAP applications.
Use the Cloud Integration capability of SAP Integration Suite for mediated data or process
integration, especially if complex integration flows, transformations or dedicated protocols
are required. Besides mediated application-to-application integration, Cloud Integration
usage is recommended for business-to-business and business-to-governance processes.
The API Management capability of SAP Integration Suite allows you to easily enable your
developer community with governed, secure, and policy-compliant access to all your APIs,
events, and integrations.
Graph is a recent addition to the API Management capability of SAP Integration Suite.
Graph is a powerful semantic API mediation, combining and exposing the data from
diverse systems in a complex enterprise landscape as connected data graphs. The data
graphs are accessed via a single, curated, and uniform data-as-a-service API and make API
consumption much easier.
Cloud Integration Automation service provides you a guided workflow to integrate SAP
cloud solutions to on-premise and other SAP cloud solutions. The guided workflow
contains instructions for manual and automated tasks to enable an easy and quick
integration configuration setup.
SAP Cloud ALM helps you to implement and All ABAP cloud applications are supported
operate intelligent cloud and hybrid by SAP Cloud ALM for central observability.
business solutions. SAP Cloud ALM provides the following use
cases:
This is custom documentation. For more information, please visit the SAP Help Portal 20
10/23/24, 6:57 PM
Use Unified Customer Landscape service Landscape Portal is offered to manage all
for customer landscape management. the systems within your global account in
SAP BTP. It shows the list of the ABAP
There are different ways to add systems to
systems, it enables the control of system
the System Landscape page in the SAP
hibernation to reduce costs and it offers
BTP cockpit: manually or automatically. If a
features to control the system lifecycle, for
system of your solution is associated with
example, to nominate systems for the pre-
your global account or through a
upgrade prior to the standard upgrade of a
subscription in SAP BTP cockpit associated
quarterly ABAP platform release.
with a given subaccount, it will appear in the
list automatically. Otherwise, you have to
add your system manually. Systems are
This is custom documentation. For more information, please visit the SAP Help Portal 21
10/23/24, 6:57 PM
Auto-Discovered
An auto-discovered system is a
system (associated with the given
global account) that has been
discovered and added automatically
to the list based on information of
the existing system landscape. Any
SAP system of the supported
system types that is associated
with the same customer ID, with
which your global account in SAP
BTP is associated, will be added
automatically in the system
landscape list.
Subaccount/<my-subaccount>
Manually-Added
Extensibility and Integration Side-by-Side Extensibility with Unified On-Stack Extensibility by Extending SaaS
Customer Landscape: Applications
associated with your customer ID. These extend SaaS applications are UI
systems can be registered or auto adaptations, custom fields and
discovered. They are conveniently listed as custom logic (implement Business
a record in the Systems list in the System Add-Ins).
Landscape page in the SAP BTP cockpit.
You can create business configuration
Moreover, Unified Customer Landscape lets
objects. See Business Configuration.
you integrate one or more systems in a
common business case by including these You can create and set up integration
systems in a formation. scenarios by maintaining communication
arrangements.
Use Data Privacy Integration service to make your SAP BTP application compliant with the
corporate Data Privacy and Protection standards. Integrate with the Data Privacy
Integration service to support cross consumable Data Privacy and Protection features for
our customers and support cross Data Privacy and Protection compliance in end-to-end
processes.
SAP Task Center service enables integration with SAP applications to provide a single
entry point for end users to access all their assigned tasks. The tasks can be accessed by
end users through the SAP Task Center Web application.SAP Task Center helps you
integrate tasks into a central solution.
Use SAP Task Center as a unified inbox for tasks across multiple applications with
integrated user experience. Tasks from multiple SAP solutions are gathered in one list and
ready to be processed in just one click, shortening the completion time for business-
critical tasks. For example, business users can process all their tasks from the connected
systems, without the need to switch and log in separately into different inboxes.
SAP Build Process Automation provides a simpler and faster way to adapt, improve, and
innovate business processes with drag-and-drop simplicity.
You can jumpstart automation projects with hundreds of process content packages, SAP
Intelligent RPA bots and connectors designed specifically to enhance the capabilities of the
SAP solutions you are using. It provides a unified development experience for users of all
skill levels enabling fusion teams of business experts and developers to work together and
solve challenges faster.
SAP Job Scheduling service allows you to Job scheduling is integrated into the
define and manage jobs that run once or on product. Application Jobs can be defined,
a recurring schedule. Use this runtime- implemented and monitored.
agnostic service to schedule action
endpoints in your application or long-
running processes using Cloud Foundry
tasks. Use REST APIs to schedule jobs,
including long-running jobs asynchronously,
and create multiple schedule formats for
simple and complex recurring schedules.
This is custom documentation. For more information, please visit the SAP Help Portal 23
10/23/24, 6:57 PM
Use embedded analytics scenarios in your Use SAP Analytics Cloud on top of InA-
application including dashboards, multi- enabled Core Data Service analytical
dimensional reports and KPIs. models. Furthermore, Dragonfly-based
multi-dimensional reporting can be used to
integrate Embedded Analytics functionality
in a component-based and SAP Fiori-native
way.
For analytics across applications use SAP Via the ABAP SQL Service it is possible to
Datasphere. integrate with SAP Datasphere.
Furthermore, the ABAP SQL Service in
combination with ABAP ODBC Driver or the
SAP HANA Cloud ABAP SDA Adapter allows
data federation via external clients
respectively via SAP HANA Cloud-based
SAP BTP applications.
Document Management Service, Integration Option lets you build document management
capabilities for your business applications using the integration component or the easy-to-
use, reusable UI component.
SAP Build is a low-code offering to accelerate development and automation. It enables you
to create enterprise apps (SAP Build Apps), automate processes (SAP Build Process
Automation), and design business sites (SAP Build Work Zone) without writing code.
Accelerate development with prebuilt connectors and business content for SAP and third-
party systems to integrate seamlessly. SAP Build fosters collaboration between business
and development teams with built-in governance and lifecycle management.
This is custom documentation. For more information, please visit the SAP Help Portal 24
10/23/24, 6:57 PM
Audit Logging SAP Audit Log Service Manage Security Audit Log
SAP Audit Log is a core, security, and Security audit logging is provided
compliance-based SAP BTP service to automatically by the SAP BTP, ABAP
provide means for audit purposes. The Environment. It can be configured by the
default and advanced capabilities of Audit Manage Security Audit Log administration
Log Service are available for SAP BTP application.
applications and services.
Read Access Logging
This is custom documentation. For more information, please visit the SAP Help Portal 25
10/23/24, 6:57 PM
SAP Credential Store service provides a The ABAP environment offers its
repository for passwords, keys and keyrings Communication Management. It contains a
for applications that are running on SAP credentials store which allows the
BTP. It enables the applications to retrieve applications to perform outbound
credentials and use them for authentication communication using the credentials for
to external services, or to perform authentication to external services and TLS
cryptographic operations and TLS communication.
communication. SAP Credential Store is
exposed to the applications via a REST API.
The Identity Provisioning service automates The Identity Provisioning service automates
identity lifecycle processes. It helps you identity lifecycle processes. SAP BTP, ABAP
provision identities and their authorizations environment supports the Identity
to various cloud and on-premise business provisioning service to provision business
applications. users and their assignment to business
roles.
Design
Good user experience (UX) goes beyond aesthetics and can have substantial business benefits, both financially and in overall
efficiency. A great UX can improve productivity, enhance data quality, reduce training costs, and decrease the number of change
requests.
A positive UX boosts user satisfaction, customer loyalty, and overall application adoption. Users are more likely to embrace an
application that is intuitive and easy to use.
This is custom documentation. For more information, please visit the SAP Help Portal 26
10/23/24, 6:57 PM
However, achieving a good UX involves overcoming several common challenges. Users often struggle with finding information,
dealing with scattered data, excessive clicks, poor data entry interfaces, and unhelpful error messages. Beyond design, bad
performance and unhelpful data visualization can also frustrate users.
The essential approach to designing a good application is design thinking, which emphasizes understanding users' needs through
observation and feedback. Iteration is key: quickly sketch prototypes, gather user feedback, and refine your designs before moving
to development. This ensures that the final product truly meets users' needs and optimizes resources effectively.
For organizations working with multiple applications, consistency is crucial. Users expect uniform visual design and interactions,
easy access and navigation between applications, and common functions readily available. To achieve this, a design system is
necessary. It ensures consistent user experience across various channels such as desktop, mobile, and so on.
In large-scale development, you also need robust frameworks, libraries, and user experience integration runtimes to manage
hundreds of applications efficiently. Proper authorization tools are essential to control access for an extensive user base.
The SAP Fiori design system along with its enabling UI tools and technologies gives you the above: a comprehensive design
system for web and mobile, along with a suite of development tools and UI frameworks, enabling SAP to provide a consistent UX
with good usability across all SAP products, and enabling you to do the same for your applications. Using SAP's design system
enables you to bring together business value, modern technology and excellent UX, thus benefitting business and users alike.
Find out more about user experience design and technology design in the next sections:
Technology Design
User experience goes beyond the user interface, and covers all aspects of the interactions a user has with the application: getting
the right information shown at the right time, allowing the user to get their work done with only a few clicks needed, providing a
fast and accessible solution, supporting all the international languages your users use in their systems.
Usability is defined by the degree to which these aspects are provided to a user to get their tasks or jobs done:
Effectiveness
Efficiency
Error tolerance
Satisfaction
When providing users with applications to complement or extend your SAP landscape, you will need to ensure that your
applications have a similar look and feel to SAP’s standard applications, and hence provide a consistent user experience for your
users. This helps to make the applications intuitive to use (ease of learning) and helps with efficiency, since they look and behave
This is custom documentation. For more information, please visit the SAP Help Portal 27
10/23/24, 6:57 PM
the same as other applications users are already familiar with. For this reason, we recommend that you follow the SAP Fiori for
Web Design Guidelines . In particular, follow the Best Practices for Designing SAP Fiori Apps .
In addition to consistency, ensure that your application is accessible, by following the guidance provided by Accessibility in SAP
Fiori. Also, be sure to provide language support for all relevant languages as well as providing suitable user assistance.
When designing your application, make sure that you continue with your user research, so that you can get quick feedback about
design ideas and artifacts. Iterate often, with the motto “Fail fast, fail early” – in other words, sketch out solutions, get feedback, try
again, and keep on iterating until you are confident that your design is what your users need.
For more information about user research during the design phase, have a look at the User Research Method Cards related to
the Design phase. The methods outlined there contain the most commonly practiced user research methods at SAP.
Technology Design
Before starting to implement an application on SAP BTP, it's better if you do some planning and research beforehand. See:
Explore
Discover
The image is interactive: you can click the column headings to take you to the relevant part of the relevant section below.
Please note that image maps are not interactive in PDF output.
Context
Let's assume the following scenario: you and your team are tasked to deliver a multitenant application on SAP BTP or SAP
S/4HANA Cloud Public Edition and you want to base the application either on SAP Cloud Application Programming Model (CAP) or
This is custom documentation. For more information, please visit the SAP Help Portal 28
10/23/24, 6:57 PM
on ABAP Cloud.
Trigger
This involves transforming a legacy system into a modern, more efficient and scalable solution. Legacy systems often pose
difficulties in terms of maintainability, integration with newer technologies, and can be a bottleneck for a business's growth.
This transformation process could involve refactoring code, adopting new architecture patterns like microservices, or
completely reimplementing the software with a new technology stack.
Software-as-a-Service is a model where software is provided over the internet on a subscription basis. When designing a
new Software-as-a-Service solution based on microservices, the system is decomposed into a collection of services that
are independently deployable, scalable, and can be developed by different teams. Each microservice corresponds to a
specific business capability and can be developed, deployed and scaled independently. This architectural style promotes
flexibility and scalability, and it can speed up the development process by enabling parallel development across teams. It's
important to design these services around the business capabilities.
Asynchronous behavior in an application refers to operations that can be executed independently and don't block the flow
of the program. This makes the application more responsive and can improve system-wide performance. Event sourcing is
an architectural pattern that stores changes to the application state as a sequence of events, rather than just storing the
current state. This can provide a full audit trail, simplify debugging by allowing the state of an application at any point in
time to be recreated, and can facilitate asynchronous, message-driven architectures. By integrating these into the system,
it can enhance the system's scalability and reliability.
When designing a Software-as-a-Service application on SAP BTP, the application is built to be delivered over the internet
and leverages the services provided by SAP BTP. This can include data storage services, AI and machine learning
capabilities, analytics and more. Using such a platform can speed up development time, as many of the underlying
infrastructure considerations and services are taken care of by the platform.
Steps
Understanding the business domain is of the utmost importance. Hence, before starting your development, make sure that
you understand the business opportunity outlined in the Explore phase, and that you have completed the Discover phase so
that you have a thorough understanding of the user needs and required use cases. This will ensure that you create software
that is useful, flexible, and capable of evolving alongside the business.
Identifying the required modules means breaking down the overall system into smaller, manageable, and functionally
cohesive units. Each module is designed to encapsulate a specific portion of the domain model and is typically aligned with
a specific sub-domain or business capability. By identifying the modules, developers can ensure separation of concerns
and make the system more maintainable. Each module should be able to operate independently, reducing dependencies
and allowing for parallel development and easier testing.
This is custom documentation. For more information, please visit the SAP Help Portal 29
10/23/24, 6:57 PM
Once the modules are identified, the next step is to define how they will interact with each other. This involves establishing
interfaces, contracts, or APIs for communication. This is often guided by the concept of context mapping, which helps to
define the relationships and interactions between different related contexts. Communication between modules should be
carefully managed to preserve the autonomy of the modules. The communication could be synchronous or asynchronous,
and could be based on various patterns like request/response, events, or commands.
After you have an understanding of the business domain, have identified the required modules, and defined how they will
communicate, the next step is to plan the implementation. This is the moment where you decide which technologies,
patterns, and practices to use to build each module. This can include selecting the programming languages, databases,
message brokers, and other tools that will be used. It also involves choosing the architectural patterns (like layered
architecture, hexagonal architecture, or microservices) and design patterns that will be applied. The implementation should
be guided by the principles of the domain model, encapsulating the business logic in entities, value objects, aggregates,
and domain events. Additionally, the implementation should consider non-functional requirements like scalability,
performance, security, and maintainability.
Value
If you follow the steps mentioned in the previous section, you will achieve the following benefits:
Well-modularized architecture
In the context of software development, a well-modularized architecture refers to the design of a system where the different
functionalities and responsibilities are partitioned into distinct modules. Each module encapsulates a specific subset of the
system's behavior and can be developed, tested, and maintained independently of the others. Modules are often designed
to be loosely coupled, meaning that they interact with each other through well-defined interfaces, but their internals are
hidden from each other. This encapsulation increases the maintainability of the system because changes inside one
module don't impact the others. It also improves the scalability of the system, as individual modules can be scaled up or
down based on their individual requirements. Finally, modularization can increase the speed of development because
different teams can work on different modules at the same time without interfering with each other.
The focus is on understanding the business domain and creating a software model that reflects and serves that domain. By
aligning the software closely with the business needs, there's a higher likelihood of delivering value to the customer. This
comes from a deep understanding of the business, its rules, and its needs. This understanding guides the software
development process, ensuring that the software solves the right problems and provides the features that the business
actually needs. As a result, the software is more likely to be valuable to the end users, who are the ones interacting with the
business domain on a daily basis.
Better decomposition that would lead to shorter innovation cycles and clearer focus
Decomposition in software design is the process of breaking down a complex system into smaller, manageable parts or
components. Better decomposition, often achieved through practices like domain-driven design and microservices
architecture, allows for clearer focus on individual parts of the system and can lead to shorter innovation cycles. With a
well-decomposed system, teams can focus on specific components or services, understand them thoroughly, and make
improvements or innovations without having to understand the entire system. This can significantly shorten the time it
takes to go from an idea to a working feature, because changes are localized to specific parts of the system and don't
require broad, system-wide understanding or modifications. Moreover, better decomposition can lead to clearer focus
because each component or service can be designed around a specific business capability or domain concept. This allows
the team working on that component to focus on the specific business problems and user needs related to that capability
or concept, rather than being distracted by other parts of the system. This kind of focus can lead to better solutions and
more valuable software.
Easier to maintain
It's easier to read, understand, debug, and modify code that is modularized. It also reduces the risk of introducing errors or
conflicts when changing or adding new features. A good modularization also enables reuse of existing modules across
different products, which saves time and effort.
Easier to test
Each module can be tested individually and independently from the rest of the system. This also facilitates automated
testing and continuous integration, which improve the quality and reliability of the software product.
Easier to scale
Each module can be deployed, updated, or replaced separately, without affecting the whole system. This also allows for
parallel development and faster delivery of new features or bug fixes. A good modularization also supports distributed and
cloud-based architectures, which enhance the performance and availability of the software product.
More reliable
Each module has a clear and well-defined interface and responsibility. This also reduces the coupling and dependency
between modules, which minimizes the impact of failures or errors in one module on the rest of the system. A good
modularization also enables fault tolerance and recovery mechanisms, which improve the resilience and robustness of the
software product.
More adaptable
Each module can be easily modified or extended to meet changing requirements or customer needs. This also increases
the flexibility and diversity of the software product, as different modules can be combined or configured in various ways.
Easier to evolve
Each module can be evolved independently or collaboratively, without affecting the overall functionality. This also promotes
innovation and creativity, as new modules can be created or reused to generate novel solutions or features.
However, not all modularizations are equally effective or beneficial for microservices. A poor modularization can lead to problems
such as:
If the services are not well-defined and separated, they may depend on each other too much, or have too many
responsibilities. This can result in tight coupling between services, which makes them hard to change, test, or reuse. It can
also result in low cohesion within services, which makes them complex, inconsistent, or redundant. High coupling and low
cohesion reduce the maintainability, testability, and reliability of microservices.
This is custom documentation. For more information, please visit the SAP Help Portal 31
10/23/24, 6:57 PM
If the services are too fine-grained and numerous, they may become difficult to manage, monitor, and coordinate. This can
result in service sprawl, which increases the operational complexity and overhead of microservices. It can also result in
service fragmentation, which reduces the performance and availability of microservices. Service sprawl and fragmentation
reduce the scalability and adaptability of microservices.
If the services are not aligned with the business domain and goals, they may not deliver the expected value or quality, which
reduces the relevance and effectiveness of microservices. It can also result in lack of consistency, which reduces the
usability and interoperability of microservices. Lack of alignment and consistency reduce the evolution and innovation of
microservices.
The right modularization is essential if you want to benefit from using microservices. For example:
The right modularization helps you create simple, consistent, and reusable services that are easy to read, understand,
debug, and modify. It also enables the isolation and decoupling of services, which reduces the risk of errors or conflicts
when changing or adding new features.
Test each service individually and independently from the rest of the system
The right modularization enables you to use automated testing and continuous integration, which improve the quality and
reliability of the software product.
Deploy, update, or replace each service separately, without affecting the whole system
The right modularization supports distributed and cloud-based architectures, which enhance the performance and
availability of the software product.
The right modularization reduces the coupling and dependency between services, which minimize the impact of failures or
errors in one service on the rest of the system. It also enables fault tolerance and recovery mechanisms, which improve the
resilience and robustness of the software product.
The right modularization increases the flexibility and diversity of the software product, as different services can be
combined or configured in various ways.
Evolve each service independently or collaboratively, without affecting the overall system functionality
The right modularization promotes innovation and creativity, as new services can be created or reused to generate novel
solutions or features.
Placing the project's primary focus on the core domain and domain logic
Domain-driven design emphasizes close collaboration between domain experts and developers to create software that
accurately models the problem domain. By focusing on the domain's core concepts, relationships, and behavior, domain-
driven design enables you to create more robust, flexible, and maintainable systems.
This is custom documentation. For more information, please visit the SAP Help Portal 32
10/23/24, 6:57 PM
Building complex designs on the model of the domain
Domain-driven design helps you to define the boundaries of each module by identifying the core concepts, aggregates, and
their associated business logic. This enables teams to develop and maintain these modules independently, promoting
scalability and modularization within the overall system.
Initiating a creative collaboration between technical and domain experts to iteratively refine a conceptual model that
addresses particular domain problems
Domain-driven design fosters a common language shared by domain experts, users, and developers: the ubiquitous
language. The ubiquitous language is used in the domain model and for describing system requirements. This enhances the
communication and understanding among the stakeholders, and facilitates the adaptation and evolution of the software
product.
The domain-driven design starter modeling process is a process for learning and applying domain-driven design in practice. It
covers eight steps from aligning with the business model to coding the domain model. It is flexible and iterative, and suitable for
beginners who want to master domain-driven design. See the Domain-Driven Design Starter Modeling Process GitHub
repository that is part of the Domain-Driven Design Crew GitHub organization.
We also recommend that you follow the domain-driven design modeling process.
For applications that work with the four 0 A simple application does have the
functions: create, read, update, delete complexity to benefit elaborated design
(CRUD), and only perform simple database methods.
queries, no special design is required. A
simple database tool with a user interface
suffices.
You have a simple application if it has up to 1 Just for reference, this means your
30 use cases. You can build it with a CAP application does not have more than 30
application that works with the four functions.
functions: create, read, update, delete
(CRUD).
Your application has between 30 and 40 2 Make sure you don't underestimate any
use cases. hidden complexities.
This is custom documentation. For more information, please visit the SAP Help Portal 33
10/23/24, 6:57 PM
Your application may not be complex now, 3 Talk to domain experts to discuss the
but it could grow later. complexity of your application. The
complexity increases with the number of
features that the stakeholders need.
Your application will change a lot over time, 4 You require a sophisticated design method
and you don’t know what kind of changes to manage the complexity of refactoring
will happen. your model over time.
You are building an application in a new and 5 You need to collaborate with domain
exciting domain that nobody has done experts and try different models to make
before. This means it could be complex and your application work.
challenging.
Related Information
Domain-Driven Design Crew GitHub Organization
Domain-Driven Design Community at SAP
Deliver
Now that you have completed your design for the required user experience of your application along with the appropriate
application architecture, it’s time to deliver what you have designed. In other words, set up the development and test landscape,
develop and test your application and finally release it to the productive environment. See:
You start by setting up the landscape in SAP BTP. See Set Up.
Then, you continue with the development, choosing the programming language, programming model, runtimes, tools and
others. Have in mind that depending on the programming model, there are some specifics. See
Develop
There are sample applications presented in tutorials and end-to-end scenarios, called missions:
Set Up
Configuring the landscape setup in its essence is an administrative task described in detail in the SAP BTP Administrator's Guide.
The hierarchical structure between global accounts, directories, and subaccounts lets you define an account model that accurately
fits your business and development needs. See Setting Up Your Account Model in the SAP BTP Administrator's Guide.
Set Up the SAP BTP Infrastructure Automatically Using the Terraform Provider
This is custom documentation. For more information, please visit the SAP Help Portal 34
10/23/24, 6:57 PM
The Terraform provider for SAP BTP enables you to automate the provisioning, management, and configuration of resources on
SAP BTP. By leveraging this provider, you can simplify and streamline the deployment and maintenance of SAP BTP services and
applications. See Automated SAP BTP Infrastructure Setup.
User accounts enable users to log on to SAP BTP and access subaccounts and use services according to the permissions given to
them. In this context, it's important to understand the difference between the two types of users that we refer to: platform users
and business users.
Platform users are usually developers, administrators or operators who deploy, administer, and troubleshoot applications and
services on SAP BTP.
Business users use the applications that are deployed in SAP BTP. For example, the end users of SaaS applications or services.
See User and Member Management in the SAP Business Technology Platform documentation.
Develop
SAP BTP offers various tools and programming languages for application development. You might also want to consider to
integrate your application with other solutions.
Depending on your use case and the skill set of your developers, you can choose the runtime of your choice:
Environment options
Benefits Simplified developer Take full advantage of the ABAP programming language
experience for business advanced features and rich
Fast prototyping with ABAP
application development ecosystem of Kubernetes
RESTful Programming Model
Large choice of programming Free choice of programming (RAP)
languages languages and models
Integrated development
(containerized deployments)
Intuitive “code-to-container” lifecycle
packaging and deployment, Combines microservices and
Reuse existing on-prem ABAP
managed by the platform serverless functions
assets
Platform-managed application Built-in, managed service mesh
security patching and updates based on Istio, and other cloud-
native open-source modules to
Automatic application routing,
reduce the development effort
load balancing, health checks,
and multilevel self-healing Built-in, managed event mesh
This is custom documentation. For more information, please visit the SAP Help Portal 35
10/23/24, 6:57 PM
Additional Comparison: SAP BTP, Kyma Runtime Comparison: SAP BTP, Kyma Runtime Development in the ABAP
Information and SAP BTP, Cloud Foundry Runtime and SAP BTP, Cloud Foundry Runtime Environment
Shared
No infrastructure vendor lock-in
Benefits
Build scalable multitenancy business applications (SaaS)
Good For Managed build-on approach Open build-on approach User-centric process
extensions
Enterprise-grade business Enterprise-grade applications
applications and services Robust, transactional cloud
Cloud-native development of
applications
Cloud-native web applications apps and services
and services Migrating and adapting add-
Low latency infra-services
ons to the cloud
Scalable, microservice-based communication
applications Reusing existing on-premise
Reduced infrastructure
ABAP code
Small to medium extensions management effort
built with CAP/low-code Enabling ABAP developers to
Highly scalable, microservice-
tooling go to the cloud
based applications
Skills Any major programming Kubernetes knowledge Ability to write modern ABAP
languages code
Docker
SAP Fiori/UI5 and SAP HANA Core data services
NodeJS or Python for
serverless functions SAP Fiori/UI5 and SAP HANA
Metering:
Cloud Foundry runtime: Metering starts when you start using the runtime memory, for example, when you deploy an
application.
If your global account uses the consumption-based commercial model and you want to understand how the consumption
of SAP BTP, Cloud Foundry runtime is calculated, seeConsumption Monitoring in the SAP BTP, Cloud Foundry runtime
documentation.
Kyma runtime: Metering starts when you enable the Kyma runtime. This triggers the creation of a dedicated Kubernetes
cluster, and the cluster is metered from the start, before you have deployed any applications.
This is custom documentation. For more information, please visit the SAP Help Portal 36
10/23/24, 6:57 PM
For Cloud Foundry , we recommend that you create multitarget applications for managing dependencies more easily. For more
information, see Using Multitarget Applications to Manage Dependencies.
To ensure consistency and foster collaboration between developers, we recommend that you define guidelines that include
standards for programming principles, code styles, and naming conventions.
SAPUI5 Guidelines
Third-party cookies are set by domains other than the one a user is directly visiting. They are commonly used for online advertising
and tracking user behavior across multiple websites. In SAP BTP, SAP uses third-party cookies for service management and single
sign-on.
Prepare your applications for the third-party cookie deprecation and test them. See Preparing and Testing Your Solution for Third-
Party Cookie Deprecation.
All the available solutions are listed in the SAP Note 3409306 - Removal of Third-Party Cookies in Google Chrome and Microsoft
Edge Browser .
This is custom documentation. For more information, please visit the SAP Help Portal 37
10/23/24, 6:57 PM
SAP BTP provides numerous tools for your development project, no matter which programming model and programming language
you have chosen.
Programming Models
Programming Languages
Tools
APIs
Programming Models
ABAP Cloud
ABAP Cloud reflects the modern way to develop ABAP. It allows you to build lifecycle-stable and cloud-ready business applications,
services, and extensions.
ABAP Cloud provides tools and techniques that ensure cloud qualities, promotes new technologies, contains a cloud-optimized
subset of the ABAP language, and makes upgrade cycles easier by a clear separation between custom code and SAP code by only
using released APIs and objects. See ABAP Cloud.
CAP-based projects benefit from a primary focus on the domain. Instead of delving into overly technical disciplines, CAP focuses
on accelerated development and safeguarding investments in a world of rapidly changing cloud technologies.
Here are some of the benefits that come with the SAP Cloud Application Programming Model (CAP):
Support for Visual Studio Code and SAP Business Application Studio tools
No runtimes lock-in
This is custom documentation. For more information, please visit the SAP Help Portal 38
10/23/24, 6:57 PM
See SAP Cloud Application Programming Model (CAP).
Programming Languages
SAP BTP supports many different programming languages; the availability of each depends on the development runtime you're
using.
Related Information
SAP BTP, Serverless Runtime - Development
Note
For links to all SAP solutions for CI/CD, blog posts, presentations, and tutorials, have a look at our Continuous Integration and
Delivery by SAP overview.
Continuous integration (CI) describes a software development process, in which various team members integrate their
contributions frequently into a single main line. Before each integration, the changes are verified through builds and automated
testing. Thereby, you can detect errors as quickly as possible and prevent integration problems before completing the
development.
The continuous delivery (CD) concept expands on the one of continuous integration. It adds the aspect that any change that has
successfully passed the tests is immediately ready to be deployed to production, both from a technical and a qualitative point of
view.
The following graphic shows the basic flow for continuous integration and delivery:
This is custom documentation. For more information, please visit the SAP Help Portal 39
10/23/24, 6:57 PM
For more information about the continuous integration and continuous delivery concepts, see What Are Continuous Integration
and Continuous Delivery?.
Use
Depending on your use case, you can choose between different CI/CD pipelines to help you implement continuous integration and
delivery in your software development.
SAP Continuous Integration and Delivery lets you configure and run predefined pipelines for the development of the following
applications:
Configure a CI/CD pipeline for the development of applications that follow the SAP Cloud Application Programming Model
in the Cloud Foundry runtime.
Configure a CI/CD pipeline for the development of SAPUI5/SAP Fiori applications in the Cloud Foundry runtime.
Configure a CI/CD pipeline for the development of SAPUI5/SAP Fiori applications in the Neo environment.
This is custom documentation. For more information, please visit the SAP Help Portal 40
10/23/24, 6:57 PM
Configure a CI/CD pipeline for the development of SAPUI5/SAP Fiori applications for the ABAP platform.
Configure a CI/CD pipeline for the development of SAP Cloud Integration artifacts in the Cloud Foundry runtime.
To learn more about the CI/CD pipelines supported by SAP Continuous Integration and Delivery and the stages each pipeline can
comprise, see Supported Pipelines.
3. Enable the API usage to connect SAP Continuous Integration and Delivery to other services, if necessary.
Note
Only administrators of SAP Continuous Integration and Delivery can configure the service.
1. Configure credentials for connecting SAP Continuous Integration and Delivery to other services (for example, GitHub,
GitLab, Bitbucket Server, or Azure Repos to clone your sources, and SAP BTP to deploy your built application).
Now you can create and modify your CI/CD jobs and monitor their outcome. If you want to automate your builds, you can
configure a webhook between your repository and the service. You can create and modify timed triggers for your jobs, if necessary.
For more information, see Initial Setup and Configuration, or follow the tutorial Configure and Run a Predefined SAP Continuous
Integration and Delivery (CI/CD) Pipeline .
This openSAP course introduces general DevOps approaches and key principles. Learn about the basic CI/CD principles
(week 1) and how to deliver cloud applications using CI/CD (week 3).
The CI/CD Introduction Guide provides you with basic knowledge for setting up and implementing continuous integration
and delivery processes. It gives an overview of the concepts and principles of CI/CD, explains both procedures and their
relation, and helps you plan your own CI/CD process.
This is custom documentation. For more information, please visit the SAP Help Portal 41
10/23/24, 6:57 PM
Tools
SAP BTP includes many tools to help you develop and manage applications, and connect them to your on-premise systems. The
availability of tools can depend on the environment that you are running on.
Tool Description
Account Administration in the Cockpit The SAP BTP cockpit is the web-based administration interface of
SAP BTP and provides access to a number of functions for
configuring and managing applications, services, and subaccounts.
Use the cockpit to manage resources, services, security, monitor
application metrics, and perform actions on cloud applications.
Cloud Connector The Cloud Connector serves as the link between on-demand
applications in SAP BTP. This is the browser-based and existing on-
premise systems. You can control the resources available for the
cloud applications in those systems.
Command Line Interface for Cloud Foundry The Cloud Foundry command line interface enables you to work
with the Cloud Foundry environment to deploy and manage your
applications.
Helm The package manager for Kubernetes, used for installing and
managing Kubernetes applications in form of Helm charts.
ABAP RESTful Application Programming Model The programming model that defines the architecture for efficient
end-to-end development of intrinsically SAP HANA-optimized
OData services (such as SAP Fiori apps) in the ABAP environment.
SAP BTP SDK for iOS The SAP BTP SDK for iOS is based on the Apple Swift programming
language for developing apps in the Xcode IDE and includes well-
defined layers (SDK frameworks, components, and platform
services) that simplify development of enterprise-ready mobile
native iOS apps. The SDK is tightly integrated with SAP Mobile
Services for Development and Operations.
SAP BTP SDK for Android The SAP BTP SDK for Android provides development tools for
creating native Android mobile applications that use SAP Mobile
Services. The SDK is based on the Java programming language and
is built on top of Google's Android SDK.
SAP Cloud SDK SAP Cloud SDK provides a layer of abstractions for features of SAP
BTP such as logging, multitenancy, and connectivity. It also
includes project templates for different execution environments
and implementations.
SAP Business Application Studio SAP Business Application Studio is the next generation of SAP Web
IDE - Develop, debug, test, and deploy SAP business applications.
SAP Build SAP Build enables everyone, no matter the skill level, to create and
augment enterprise applications, process automations, and
This is custom documentation. For more information, please visit the SAP Help Portal 42
10/23/24, 6:57 PM
Tool Description
Service-Specific Tools The services that run on SAP BTP can come with service-specific
tools. For an overview of the services and their tools, see the SAP
Discovery Center .
APIs
Discover and consume APIs to manage, build, and extend the core capabilities of SAP BTP.
An Application Programming Interface or API is an interface provided by an application for interacting with other applications.
APIs specify how software programs are able to exchange information with each other, even if designed and run by different
organizations. They facilitate interaction by selectively exposing certain functionality, allowing different apps, websites, and
devices to communicate effectively with each other. More importantly, APIs enable businesses to reach beyond regular business
channels and share data, content, and services directly to both B2B (business to business) and B2C (business to consumer)
clients, making UI development easy.
Offering Description
SAP BTP on SAP Business Accelerator Hub The SAP Business Accelerator Hub provides you with one central
repository for browsing and accessing APIs from SAP and selected
partners. Test APIs and try out mock data in your systems.
It is also the official place where REST and OData REST API
references are published.
API Management Capability within SAP Integration Suite With the API Management capability, you can build, manage,
publish, and monetize your own APIs within one secure and
scalable environment.
Software Development Kits (SDKs) The SDKs available for SAP BTP offer APIs to, for example,
accelerate enterprise app development.
For an overview of the available SDKs, see Tools.
Related Information
SAP API Style Guide
In Cloud Foundry, we recommend that you develop multitarget applications that let you package those components into one
bundle, and deploy and manage them all at once. Cloud applications often come with a lot of heterogeneity, which is one of the key
strengths of cloud development, allowing for agility, resilience, and the rapid development of new features. However, it also
increases the complexity of cloud applications, which:
This is custom documentation. For more information, please visit the SAP Help Portal 43
10/23/24, 6:57 PM
Usually consist of multiple interdependent software modules
A combined lifecycle lets you deploy all parts together, automatically, and in the right order, and manage the configuration of the
complete solution. You can achieve such a combined lifecycle by developing multitarget applications. Each multitarget application
has the following characteristics:
One archive file that includes all modules and a description of the dependencies
The multitarget application archive contains all required application types and configurations, as well as a deployment descriptor
file. It is intended to be used as a generic artifact that can be deployed and managed on several SAP BTP subaccounts. For
example, you can use one multitarget application archive in your development subaccount and reuse it in your production
subaccounts.
As all interdependencies are part of the archive file, it's easy to pass multitarget applications from development to operations. All
required information for deployment is provided during the development process. Due to the benefits provided by applying the
multitarget application approach, it is also part of the SAP Cloud Application Programming Model.
Recommendation
The approach isn't mandatory for applications that are running on SAP BTP – you can also develop without applying it. Without
the multitarget application approach, you'll need to manually deploy your application artifacts, for example by triggering the
deployment from SAP Business Application Studio or manually uploading artifacts via SAP BTP cockpit.
You're developing a business application composed of several different parts – apps, services, content, and others – that
you want to manage as a single unit.
Your business application has dependencies to external resources, such as backing services (database, messaging, and
so on), APIs, and configurations from other applications.
Your business application has a certain default configuration, for example memory, disk, number of individual app
instances, environment variables, service plans, and others.
For more conceptual information about multitarget applications and detailed step-by-step instructions, see Multitarget
Applications in the Cloud Foundry Environment.
This is custom documentation. For more information, please visit the SAP Help Portal 44
10/23/24, 6:57 PM
There are several options to create multitarget application archives:
If you use SAP Web IDE Full-Stack, you can use multitarget application templates for Cloud Foundry applications, where the
descriptor file is maintained automatically, for example, whenever you add a new module in the SAP Web IDE.
If you have development modules from other sources, you can use the multitarget application archive builder, a Java-based
command-line tool that builds modules and packages them into a deployable multitarget application archive, together with
a deployment descriptor. It is available for download from SAP Development Tools (see
https://tools.hana.ondemand.com/#cloud).
If you use Continuous Integration and Delivery (CI/CD), you can let the pipeline perform an automated build of your
changes pushed to your central source code repository. The outcome can also be an MTA archive. For more information,
see Delivering Applications.
With SAP BTP, you can develop and run multitenant (tenant-aware) applications. These applications, which must apply the
multitarget application approach, run on a shared compute unit that can be used by multiple consumers (tenants). Each consumer
accesses the application through a dedicated URL.
For example, SAP partners or central IT organizations can build and run multitenant apps in their provider accounts, deploy them
using the multitarget application concept as providers, then deliver them as services to their customers or line of business
subsidiaries in corresponding subscriber accounts via subscriptions.
One of the advantages of this approach is that the application lifecycle and resource management is centrally managed. A single
deployment can serve several subscribing subaccounts, which eases onboarding of new customers and decreases the number of
code versions to manage. This also eases the consumption, because the actual customers of the applications don't have to deploy
solutions and manage corresponding resources.
See:
Multitenancy Roles
For more information about the relevant security aspects and how to set those up, see Adding Authentication and Authorization.
It's likely that data protection and privacy influence your architecture and the functions of your application. Consider any
implications as early as possible in your development process. Security monitoring is done with audit logging. SAP BTP writes logs
for security-relevant events and the written log files are digitally signed to ensure their integrity.
See the following for more information about security best practices:
There are many different principles and patterns you can use to make your software resilient. However, it isn't always easy to find
the combination that best fits your applications. For an overview of the various options you have when developing applications and
detailed information about the individual patterns you can use, as well as examples for applied resilience principles and how to
develop your own resilient apps on SAP BTP, read Developing Resilient Apps on SAP BTP.
For examples on how to use selected SAP BTP services in a multi-region setup, see Route Multi-Region Traffic to SAP BTP Services
Intelligently .
You can also use the Architecting Multi-Region Resiliency for SAP BTP Use Cases reference architecture in the SAP Discovery
Center. It shows the multi-region high availability architecture for SAP BTP services and the applications built on SAP BTP.
In SAP BTP, Cloud Foundry environment, you can use the availability zones (AZ): Benefit from the high availability mechanisms in
Cloud Foundry by setting up your applications with multiple instances. You do not have to do anything explicitly to distribute the
instances across the different AZs - this is handled by the platform. For more information, see Availability Zones in the Cloud
Foundry Environment.
Setting up your application with multiple instances might have an impact on your applications' capability for handling requests: In
case of an AZ failure in a 3-AZ-deployment, at least one third of the application instances are affected and unavailable until Cloud
Foundry can reschedule these instances on a healthy virtual machine.
During that period, the remaining instances in the healthy AZs have to carry the request load.
This is custom documentation. For more information, please visit the SAP Help Portal 46
10/23/24, 6:57 PM
Distribution During an Availability Zone Failure
Related Information
Resilience, High Availability, and Disaster Recovery (Cloud Foundry, ABAP and Kyma Environments)
Overview
All standard SAP solutions are offered with customizing capabilities. Additionally, customers often have their own requirements for
innovative or industry-specific extensions and the extension capability of SAP BTP can help them build, deploy, and operate their
new functionalities easily and securely.
You can use SAP BTP to extend standard SAP solutions without disrupting their performance and core processes. When building
extension applications, you can also benefit from the automation of the integration between SAP BTP and the extended SAP
solutions.
There are three main extension types you can use to extend your SAP solution:
In-app extensions: allows you to extend the back end and the UI directly in your SAP solution. You can use in-app extensions
only if the SAP solutions that you want to extend provide such a possibility. For example, you can use in-app extensions for
extending SAP SuccessFactors, and SAP S/4HANA Cloud. See:
Side-by-side extensions: allows you to integrate with your SAP solution additional business functionality deployed in SAP
BTP.
Business: you can include the access of new user groups, you can extend the scope with custom solutions, you can
complement data and business services from different back ends.
Technology: more developers are enabled, your digital core remains focused, you can add innovative solutions by
leveraging new technology services in the cloud.
Always start simple to check the result quickly. Later on, you can grow the complexity of your extension slowly.
Keep your digital core focused and bring to SAP BTP only the data that makes sense.
This is custom documentation. For more information, please visit the SAP Help Portal 47
10/23/24, 6:57 PM
Define what you want to achieve in the beginning and look for the easiest way to do that. For example, if you want to add a
field in SAP S/4HANA, it's better to create an in-app extension, than to implement an extension application on SAP BTP.
Ensure the availability of suitable APIs and events, because you will need them when developing and extension application
on SAP BTP.
In SAP BTP, you have these options to extend your SAP solution:
Extensions with automated configurations in the Cloud Foundry and Kyma environments: applicable for SAP S/4HANA
Cloud, and SAP SuccessFactors.
Extensions with automated configurations in the Kyma environment: applicable for SAP S/4HANA Cloud, SAP
SuccessFactors, SAP Cloud for Customer, SAP Commerce Cloud, and SAP Field Service Management.
SAP BTP provides a standard way for extending SAP solutions and developing event-driven extensions and applications. This
framework includes:
Simplified, standardized and unified extensibility and configuration for the SAP solutions.
Central catalog per customer for all connected SAP systems where data such as APIs, events, credentials and other is
stored. You can benefit from business services and actionable events across end-to-end business processes.
If you have to group the systems of different SAP solutions in the same business case, you can set up the connectivity between all
these systems and SAP BTP in a single formation.
SAP SuccessFactors
Use Cases
The extension use cases include but are not limited to:
You can complement an existing SAP solution with a new or improved SAP Fiori user interface without adding any major
logic or data.
You can also provide necessary information and tools on mobile devices.
For example:
Building completely new user interfaces that can be seamlessly integrated in the SAP SuccessFactors Employee
Central home page.
Adding new functionality to SAP SuccessFactors by connecting it to other SAP solutions, such as SAP Commerce
Cloud, SAP Cloud for Customer, SAP Field Service Management, SAP S/4HANA Cloud.
This is custom documentation. For more information, please visit the SAP Help Portal 48
10/23/24, 6:57 PM
Building completely new SAP Fiori-based user interfaces that can be seamlessly integrated in the SAP Fiori
launchpad.
Enhancing the functionality of your SAP cloud solution by connecting it with other SAP solutions.
For example:
Connecting SAP S/4HANA Cloud with other SAP solutions, such as SAP Commerce Cloud, SAP Cloud for Customer,
SAP Field Service Management, SAP SuccessFactors.
Connecting SAP SuccessFactors by connecting it to other SAP solutions, such as SAP Commerce Cloud, SAP Cloud
for Customer, SAP Field Service Management, SAP S/4HANA Cloud.
Enhancing core business processes with analytics and machine learning capabilities.
Extend data insights by consolidating and combining data in one central place.
Building an extensions ecosystem, by creating and operating SaaS applications and selling them to multiple customers.
For example, as an SAP Partner, you can build a multi-tenant SaaS extension application and provide it to your customers
via:
Resources
The following resources are available for your extension scenarios. The links to various documents guide you through the
configuration tasks that you need to perform to enable the SAP BTP for developing extension applications for your existing SAP
solutions, and the learning journeys are collections of links to additional resources.
Extending SAP S/4HANA Cloud in the Cloud Foundry and Kyma Environment (SAP Help Portal)
Extend SAP S/4HANA Cloud on SAP Business Technology Platform (Mission in Discovery Center)
Tutorials about the integration of SAP BTP ABAP Environment with SAP S/4HANA Cloud
SAP S/4HANA Cloud Extensions on SAP BTP (Learning Journey on SAP Help Portal)
Extending SAP Customer Experience Products in the Kyma Environment (SAP Help Portal)
Create Extensions in the Kyma Environment Using Functions (SAP Help Portal)
SAP SuccessFactors
Extending SAP SuccessFactors in the Cloud Foundry and Kyma Environment (SAP Help Portal)
SAP SuccessFactors Extensions on SAP BTP (Learning Journey on SAP Help Portal)
Related Information
This is custom documentation. For more information, please visit the SAP Help Portal 49
10/23/24, 6:57 PM
Extensions
Extension Architecture Guide
SAP Application Extension Methodology Overview
For example, consider testing the user interface, usability, and performance, as well as running general unit tests. Developers
should use unit tests to ensure that software modules behave as expected. Unit tests are the smallest tests, and they detect issues
fast. Taking good care of unit tests usually leads to better maintainable and understandable code. If you use the Continuous
Integration process, you should consider automated tests as part of the pipeline.
SAPUI5
SAPUI5 supports QUnit testing. We recommend that you write unit tests as small as possible, ensuring that you only test one
single thing at a time. This will not only make debugging easier, but also maintaining the tests in the long run.
For an overview of available testing options for SAPUI5 developments, see Testing and Performance Measurement.
For SAPUI5 and SAP Fiori testing, please see the demokit for SAP UI5: https://sapui5.hana.ondemand.com/#/topic.
Use the application preview to test functionality, design and performance before deploying it. There are different
configuration options available, such as SAP UI5 runtime version, URL parameters. See Running Applications in
Development Mode.
Run your application using a client mock server. See Run Applications with Mock Data.
Execute unit tests for SAPUI5 (Qunit) and Java (JUnit). See Developing Application Tests and Test a Java Module.
Execute SAPUI5 integration tests based on OPA5. See Performing Integration Tests.
Get constant feedback from your users and optimize the application based on this feedback.
Monitor and operate the application using the services and capabilities SAP BTP offers.
This is custom documentation. For more information, please visit the SAP Help Portal 50
10/23/24, 6:57 PM
SAP Cloud ALM helps you to implement and operate intelligent cloud and hybrid business solutions. You benefit from an out-of-
the-box, native cloud solution running on SAP BTP, designed as the central entry point to manage your complete SAP landscape
with content-driven guided implementation and highly automated operations.
With the operations solutions in SAP Cloud ALM, you can handle both SAP BTP-based SaaS applications and your own
applications.
SAP Cloud ALM for operations provides a personalized and unified operations user experience. You can use purpose-driven
different monitoring, analysis, and management use cases optimized for certain operations aspects. SAP Cloud ALM for
operations empowers you to understand the health of your SAP business solutions and acts as collaboration platform between
lines of business and IT.
Under Supported Solutions, you see which monitoring capabilities are available with SAP Cloud ALM. Under SAP Solution, filter for
SAP BTP and check the supported services from the operations area.
Benefit from the powerful Intelligent Event Processing, embedded analytics, and intelligence functionality with a large variety of
inbound and outbound integration. Synthetic User Monitoring monitors the performance and availability of web applications from
a client-side perspective based on Selenium-based scripts. Business Service Management consolidates all operational events at
business service level and shows them in a well-arranged event calendar.
Specifically for Java and Node.js custom-built applications in SAP BTP, Cloud Foundry runtime, there are the Data Collection
Instrumentation Libraries based on Open Telemetry designed to enable the data collection infrastructure in SAP Cloud ALM. With
these libraries, you can collect data for the following use cases:
Real User Monitoring: Leverage both front-end and back-end measurements on single request level.
Integration and Exception Monitoring: Collect and react on exceptions raised by the application.
Job and Automation Monitoring: Monitor SAP Job Scheduling Service jobs.
SAP Cloud ALM is the central place to integrate and access the monitoring of your existing IT service management processes,
such as ticketing systems.
Inbound and outbound APIs enable you to integrate data from your own applications. For more information, see the API Guide for
SAP Cloud ALM.
This is custom documentation. For more information, please visit the SAP Help Portal 51
10/23/24, 6:57 PM
More
Implement SAP Cloud ALM via SAP for Me
Expert Portal for SAP Cloud ALM Operations (SAP Support Portal), with detailed configuration instructions
Related Information
Operate
ABAP Cloud
These sections also introduce you to a number of tutorials for each of the programming models, giving you step-by-step
instructions on how to develop and deploy your applications. The tutorials include sample applications, which are designed to
demonstrate the implementation of the recommendations in real-world business sceniarios. By studying these sample
applications, you can see firsthand how the guidance can be applied and what the outcomes look like. They provide tangible
examples that bridge theory and practice, making it easier for you to grasp and apply the concepts. This hands-on approach not
only supplements your learning experience but also prepares you better for your own development projects.
This is custom documentation. For more information, please visit the SAP Help Portal 52
10/23/24, 6:57 PM
ABAP Cloud
Overview
The technological core of ABAP Cloud defines the design-time and runtime architecture of all extensions, services, and
applications. The main ABAP Cloud elements are:
ABAP Core Data Services (CDS) for the data model and for embedded analytics
Mandatory public SAP APIs and extension points to allow automated cloud operations and lifecycle stable extensibility
ABAP Development Tools (ADT) for Eclipse as the ABAP-integrated development environment
Building on these key elements, you can use ABAP Cloud to cover the following scenarios:
Transactional (OLTP): With ABAP Cloud you can build business objects and expose them as services, to consume them in
UIs and integration scenarios. All standard behavior is supported (create, read, update, delete).
Analytical (OLAP): ABAP Cloud is equally equipped for creating services and UIs for data analysis, and for drilling down in
multiple dimensions, like integrating the data in SAP Analytics Cloud.
Integration: Both previous aspects are complemented by strong data and application integration to cater to today’s
service-oriented environments.
The reuse services and libraries with core business services like number ranges, application jobs, an ABAP-integrated SAP
Fiori launchpad, and UI repository to deploy SAPUI5 and SAP Fiori elements user interfaces.
The built-in qualities offering end-to-end extensibility in the programming model, major cloud qualities like scalability and
upgrade stable APIs, and many more.
With ABAP Cloud, you can develop transactional and analytical apps. Transactional applications have transactional characteristics
to create, update or delete data records whereas analytical applications only read and display data in charts or dashboards.
All applications and services developed with ABAP Cloud are by default multitenant enabled. Partners can use the SAP BTP, ABAP
environment Software-as-a-Service tooling to easily build, deploy, and operate Software-as-a-Service solutions on their own.
Integration services enable system-to-system communication for different protocols. In ABAP Cloud, integration services can be
used for process integration or data integration. With process integration, the communication is structured along a predefined
business process like, for example, order-to-cash. In contrast, data integration focuses on transferring raw data without any
relation to a business process.
This is custom documentation. For more information, please visit the SAP Help Portal 53
10/23/24, 6:57 PM
Related Information
Design
Develop
Deploy
Operating with SAP Cloud ALM
The exercises are based on the Travel sample application of the Flight Reference Scenario that is the best practice example for
developing, deploying, and operating a full-stack application using ABAP RESTful Application Programming Model (RAP) and SAP
Fiori.
You can also go through the Develop a Full-Stack RAP Application Following the SAP BTP Developer’s Guide that is based on the
Travel sample application. This mission has three main parts. The first part contains the RAP100 basics, for building an SAP Fiori
application with RAP. The second part is for creating, developing, and integrating an SAP Fiori application. The third part builds on
top of RAP100 basics and contains the intermediate tutorials, with additions such as dynamic feature control and ABAP unit tests.
Analytical Scenario
The analytical scenario shows the end-to-end development of an analytical application. It consists of a business service exposing
an analytical query and a report built with SAP Analytics Cloud. The analytical report can be used to analyze complex situations
and freely interact with large amounts of data in real time.
The analytical scenario is provided in the form of tutorials with beginner and intermediate experience levels.
Transactional Scenario
The transactional scenario shows the end-to-end development of a transactional SAP Fiori elements list report application. It
consists of an OData-based business service built with RAP and an SAP Fiori elements-based UI. It also shows the deployment of
the SAP Fiori application in the ABAP environment and its integration in the local SAP Fiori launchpad for SAP BTP, ABAP
environment.
You will develop a simple, transactional list report application, the Travel Processing application, that is used by a department
responsible for processing worldwide travel for multiple agencies.
The transactional scenario built with RAP is provided as a tutorial mission, which is divided into three tutorial groups with beginner
and intermediate experience levels.
The following beginner tutorial groups are available for the transactional scenario:
Build an SAP Fiori App Using the ABAP RESTful Application Programming Model (RAP) – Basics [RAP100]
Enhance the Business Object Data Model and Enable OData Streams
This is custom documentation. For more information, please visit the SAP Help Portal 54
10/23/24, 6:57 PM
Enhance the Business Object Behavior with Determinations
Create, Deploy and Integrate an SAP Fiori elements App into SAP Fiori Launchpad for SAP BTP, ABAP Environment
[RAP100]
Create and Deploy an SAP Fiori Elements App to SAP BTP, ABAP Environment
Integrate an SAP Fiori Elements App into the SAP Fiori Launchpad for SAP BTP, ABAP Environment
The advanced exercises of the transactional scenario are provided as a tutorial group. They are built on top of the exercises of the
beginner tutorial groups.
Build an SAP Fiori App Using the ABAP RESTful Application Programming Model (RAP) – Intermediate [RAP100]:
The Develop and Consume Queries on SAP Analytics Cloud beginner tutorial is available for the analytical scenario.
The Develop Queries Based on Booking Supplement and Consume on SAP Analytics Cloud tutorial covers the advanced
exercises of the analytical scenario.
Design
ABAP Cloud is based on a model-driven architecture approach that focuses on improving development efficiency through
standardization and formalization of the programming model and the tooling environment ensuring efficiency and scalability.
Programming models generally define the design time software architecture with specific technologies, concepts, and
development objects. It essentially defines a standard architecture for app and service development from the database to the
business service exposure.
ABAP Cloud builds on the strengths of powerful frameworks and a standardized architecture for different use cases, aiming at
saving as much implementation time as possible while providing you with flexibility - you can model your business processes with
apps and services based on your business requirements along predefined technical processes. As much as possible is handled by
the frameworks to decrease the probability of consistency errors during runtime. This standardized and consistent architecture
across all apps and services developed with ABAP Cloud has many advantages from development perspective:
The developer efficiency is increased because standard architecture patterns are easily scalable. Once you are familiar with
developing with the ABAP Cloud development model, the additional effort decreases with each developed service or
application.
A standardized architecture fosters code quality and thus testability and code maintenance. ABAP Cloud comes with
specific mock-frameworks for data models and events that support the code quality assurance and avoid regressions on all
test levels.
This is custom documentation. For more information, please visit the SAP Help Portal 55
10/23/24, 6:57 PM
High abstraction level
The development model executes all low-level technical and infrastructure-related tasks.
The cloud-optimized ABAP languages like Data Definition Language or the Entity Manipulation Language match the data modeling
requirements and are designed to support the modeling and ABAP-specific development process as closely as possible.
Related Information
Design a Transactional Application
Design an Analytical Application
Design an Integration Service
A transactional application consists of a client, the business service exposure that defines the service that is consumed by the
client, domain-specific models and domain-specific logic that implements behavior. Data is either accessed from the SAP HANA
database or with the service consumption model from remote services.
The following graphic gives you an overview of the main parts of the transactional application’s architecture:
This is custom documentation. For more information, please visit the SAP Help Portal 56
10/23/24, 6:57 PM
The client is either an SAP Fiori elements or SAPUI5 application or any API consumer.
In the business service exposure the kind of service that is exposed is defined. A UI service is an OData service specifically
designed to cater to SAP Fiori elements consumers but is used for OData UI consumers in general. API services expose the
underlying data- and behavior-models as APIs to unspecified clients either with the OData protocol or business events. It is
possible to define both UI and API services at the same time.
The ABAP RESTful Application Programming Model (RAP) is used to create UI and API services including the domain model and
implementation. The center piece of RAP is the business object. RAP's business objects consist of the data model implemented
with the core data services and the transactional behavior implemented with the Entity Manipulation Language (EML).
The architectural separation of concerns between the domain-specific implementation and the business service exposure allows
you to expose the same data model for analytical and transactional applications and services.
The following graphic gives you an overview of the main parts of the analytical architecture:
This is custom documentation. For more information, please visit the SAP Help Portal 57
10/23/24, 6:57 PM
Analytical data models are CDS-based. The analytical provider consists of a reusable star or snowflake schema (based on cubes,
dimensions, and hierarchies) and scenario-specific analytical projections (analytical queries).
ABAP Cloud enables you to develop Information Access (InA)-based services for multidimensional user apps. The InA services are
either consumed in SAP Fiori UIs or by SAP Analytics Cloud.
You can use data integration to exchange data between two or more parties without being part of specific and predefined business
process, for example, for analytical use cases.
Process integration requirements can span data exchange across system boundaries, like, for example, initiating follow-on actions
with events when a value in an app is changed.
This is custom documentation. For more information, please visit the SAP Help Portal 58
10/23/24, 6:57 PM
Always add the selection of the client to ABAP database procedures (AMDPs).
Make sure consumers cannot modify the client parameter or any other part of the AMDP using the application or by tampering
requests.
Don't generate development objects or other client-independent data system-locally in the provider system.
Don't evaluate the actual value of the 3-digit client field (IF sy-mandt = ‘nnn’. ... ENDIF).
You have to classify database tables according to their content. There are the two different types of content:
Database tables for tenant content must be client-dependent. This means that the first field of the table must be of
datatype “CLNT”. We recommend using the inline declaration „abap.clnt“.
Only the content of client-dependent “C” and “A” tables is considered during tenant copy and tenant move. Content of
client-independent tables that are not delivered from the development system and “L” tables are lost during tenant lifecycle
processes such as tenant move.
This is custom documentation. For more information, please visit the SAP Help Portal 59
10/23/24, 6:57 PM
The delivery classes “E”, “G” and “W” are not supported in the ABAP environment at all.
System Content (client-independent): System configuration data – tables with delivery class “S”
Store data that is defined by the service provider and not specific for any tenant in a client-independent “S” table. Define
the content in the respective development system and export it as TABU entries via a development transport request. The
content is considered as code and imported like other development artifacts into subsequent systems such as the provider
system.
Access to tables and all further ABAP Cloud Syntax is by default tenant aware.
Develop
See:
This is custom documentation. For more information, please visit the SAP Help Portal 60
10/23/24, 6:57 PM
To build a transactional application, you define data models and implement business logic using a declarative approach. The data
models as well as the behavior definition make up the ABAP RESTful Application Programming Model business object (RAP BO).
The data model implemented with ABAP Core Data Services defines the structure of the data. The behavior definition is
implemented with ABAP and the Entity Manipulation Language.
Develop Behavior
With RAP, the standard create, update, and delete operations must only be specified in the behavior definition to obtain a ready-to-
run business object. In addition, the provisioning and handling of the transactional buffer is automatically done for you. The
technical implementation aspects are taken over by the managed RAP BO provider. The interaction phase and the save sequence
are implemented generically. For more information, see Business Object Implementation Types.
The application developer can then focus on business logic that is implemented using actions, validations, determinations, and
user interaction. To define which consumers are allowed to read or change data of a business object, RAP offers an authorization
concept to restrict access to the business object.
Actions
You can use actions to develop custom modify operations to set a specific field value, for examples. See Operations.
Validations
To define which consumers are allowed to read or change data of a business object. To check your data for consistency and
against certain conditions based on business or process requirements, you can implement validations. A validation is
implicitly invoked by the business object’s framework if a trigger condition of the validation is fulfilled. See Validations.
Determinations
To trigger modify operations based on trigger conditions, for example when another field is changed, you can implement
determinations. A determination is implicitly invoked by the business object’s framework if the trigger condition of the
determination is fulfilled. See Determinations.
This is custom documentation. For more information, please visit the SAP Help Portal 61
10/23/24, 6:57 PM
You can define authorization checks for update operations like creates or custom operations like actions for a business object
on global and instance level. For more information, see Authorization Control.
If your service is to be consumed by other applications, you can define a privileged mode to allow consumers to circumvent
authorization checks. For this, the consumer must implement the respective checks in their authorization control implementation.
For more information, see RAP – with privileged mode.
Optimistic concurrency control relies on the concept that every change on a data set is logged by a specified ETag field.
Most often, the ETag field contains a timestamp, a hash value, or any other versioning that precisely identifies the version of
the data set. Optimistic concurrency control is only relevant when consuming business objects via OData. See Optimistic
Currency Control.
Pessimistic concurrency control is done by exclusively locking data sets. The data set that is being modified by one user
cannot be changed by another user at the same time. Technically, locking is ensured by using enqueue locks and global lock
table entries. See Pessimistic Concurrency Control (Locking).
UIs create an intuitive and user-friendly interface for users to interact with the business processes. In ABAP Cloud, SAP Fiori
ensures a consistent user experience when developing UIs. SAP Fiori applications can be developed for OData services that are
exposed as UI services. SAP Fiori applications, following the SAP Fiori design principles, can be built using a combination of
SAPUI5 and SAP Fiori elements. For more information on SAP Fiori elements and SAPUI5, see Developing Apps with SAP Fiori
Elements and SAPUI5.
While SAPUI5 is a development framework that allows you to build freestyle front-end applications, SAP Fiori elements is a
framework that includes commonly used floor plan templates.
SAP Fiori elements applications are generated based on domain-specific annotations that define the layout, data binding, and
behavior of a UI. You can define the overall layout for standard floor plans, define labels, implement value helps or define navigation
on the UI to just name a few examples. The rendering of the UI is then handled by SAP Fiori elements, which interprets the
annotations to create the final user interface.
Back-end features that are closely related to the UI like draft, feature control, and side effects:
Draft
Applications with draft capabilities let users save their changes in the system and resume their work later, even on a
different device, or after an unplanned shutdown. We recommend that you use a draft for your UI use cases to improve the
user experience. RAP business objects need to be draft-enabled. See Draft.
Feature Control
You can provide information on how data should be displayed for consumption in an SAP Fiori UI, for example, if fields are
mandatory or read-only. See Feature Control.
Side Effects
You can make a SAP Fiori elements UI aware that data changes of defined fields require the recalculation of other data
values, permissions, or messages on the UI in case of UI scenarios based on draft-enabled RAP business objects. See Side
Effects.
This is custom documentation. For more information, please visit the SAP Help Portal 62
10/23/24, 6:57 PM
For more information about UI development, see:
SAP Fiori Element Feature Showcase Application for the ABAP RESTful Application Programming Model
Extension Provider
For more information about how to
Extends the original RAP business object develop data model extensions,
with new fields or associations including see CDS Data Model Extensions.
field characteristics depending on the
For an implementation example,
options defined by the extensibility-enabler.
see Develop Data Model Extensions.
Enabling Non-Standard
Behavior and Field-Related
Behavior
This is custom documentation. For more information, please visit the SAP Help Portal 63
10/23/24, 6:57 PM
Extension Provider
For more information about how to
Extends the original RAP business object develop different behavior
with new validations, determinations, or extensions, see Behavior
actions depending on the options defined Extensions.
by the extensibility-enabler.
For an implementation example,
see Develop Behavior Extensions.
Develop Tests
You can use the CDS test double framework to implement unit tests for the data model of transactional Services. With the RAP
business object test double framework, you can manage the dependencies in the RAP business object behavior implementation
and develop unit tests for RAP business object behavior like actions or determinations.
With the OData Client Proxy and the RAP business object TDF, you can implement integration tests to test use cases via EML and
OData, where multiple functional units are involved. Reading or creating instances from outside, for example, makes use of the
whole RAP application and involves dependent operations, such as determinations and validations. The Integration tests validate
whether the interaction between the involved functional units works as expected.
For more information about the OData Client Proxy, see OData Client Proxy-Consumption Types.
This is custom documentation. For more information, please visit the SAP Help Portal 64
10/23/24, 6:57 PM
Analytical applications require a multidimensional data model that focuses on a minimal join depth and a semantically rich data
model that is easy to understand. You can build multidimensional data models with:
Dimensions with master-data like information to provide the context for an analytical report. A typical example for a
dimension is time or location information.
Hierarchies that allow you to navigate different data granularity levels in the different dimensions. An example for
navigation a time dimensions would be a drill-down from year – to quarter – to month or vice versa.
Cubes that represent the multidimensional data model, consisting of different dimensions and measures.
Analytical queries that define the initial report layout that is displayed, select the initial data, and can calculate measures
that weren’t included in the underlying cube.
These standard aggregations can be further refined on query level with calculated measures. To define additional calculations and
queries for additional KPIs. With restricted measures, you can exclude certain values from the aggregation. This enables you to
filter the measure result set based on conditions of your choice.
Standard Aggregations
This is custom documentation. For more information, please visit the SAP Help Portal 65
10/23/24, 6:57 PM
Calculated Measures
Restricted Measures
Add new hierarchies to a dimension or add new fields or Add annotations and extension include structures to the original
associations to the dimension to diversify the data model. dimension to enable data model extensions like fields or
associations.
Extension Provider
Add new dimensions to a cube to extend the scope of the data Add annotations and extension include structures to the original
analysis or add new measures to the cube to calculate additional data model to enable data model extensions, like fields or
values. additional dimensions.
Extension Provider
Add new numeric fields to the query to extend the scope of the Add annotations and extension include structures to the original
data analysis. data model to enable data model extensions, like additional
numeric fields for calculations in queries.
Extension Provider
This is custom documentation. For more information, please visit the SAP Help Portal 66
10/23/24, 6:57 PM
Create a new UI based on a released query or extend the service Enable the service definition for extensibility to add additional
definition to add new queries to a service definition. queries to a service.
Extension Provider
With the annotation @AnalyticsDetails.query.axis:'<VALUE>’, you can position the elements of a query on the
different axis to define the basic layout for the report.
There are SAP-managed integration scenarios for out-of-the-box integration, for example, to integrate the SAP BTP, ABAP
environment with other SAP products like SAP S/4HANA Cloud, public edition. In addition, you can expose and consume custom
integration services to implement your own integration use cases. For an overview of SAP-managed integration scenarios, see
Overview of Communication Scenarios Managed by SAP.
The following sections focus on exposing and consuming custom integration services and event-based integration for process and
data integration.
This is custom documentation. For more information, please visit the SAP Help Portal 67
10/23/24, 6:57 PM
Integration Services Exposure: The development model for exposing integration services depends on the respective
protocol. OData, SQL, and business events interfaces can be created using the RAP programming model. The domain-
specific logic of SOAP, HTTP, and RFC services is implemented with ABAP.
Integration Service Consumption: The consumption of services and events from other systems is simplified by using
metadata to generate an Event Consumption Model or a Service Consumption Model. Service Consumption Models are
available for OData, SOAP, RFC, and business events. For HTTP and RFC, you can define the consumption requests directly
in ABAP.
Data Integration
Addresses the data exchange between two or more communication partners without a relation to a business process. One
of the main use cases for data integration is cross-system analytics. In data integration scenarios, the raw data is
exchanged without leveraging the domain-specific logic.
Process Integration
Structures the communication on app or service level along a predefined business process, for example, order-to-cash. For
process integration, the implemented domain-specific logic for a service is considered. The communication between the
communication partners for point-to-point integration is bidirectional, meaning that information is exchanged in both
directions. There are both synchronous and asynchronous process integration patterns, for example, event-based
integration follows an asynchronous approach.
ABAP Cloud offers several different protocols for integrations such as OData, SOAP, Remote Function Calls (RFCs), HTTP, SQL, and
business events for asynchronous integration. This ensures compatibility between SAP products or third-party services which
usually expose a functionality only via a dedicated protocol. The different protocols have different advantages depending on your
use case. For example, business events for asynchronous communication require a dedicated integration pattern.
Choose and Integration Protocol and Communication Pattern: a protocol and communication pattern overview
This is custom documentation. For more information, please visit the SAP Help Portal 68
10/23/24, 6:57 PM
Develop an integration service for process or data integration
Create an integration service to process the incoming request and to create the response for the communication partner.
Prepare administrative setup for the administrator by creating, for example, a communication scenario.
Working with the HTTP Service Editor (ABAP Development Tools: User Guide)
This is custom documentation. For more information, please visit the SAP Help Portal 69
10/23/24, 6:57 PM
For more information, see Consuming Services in the Context of API with Communication Users (Inbound).
Create a proxy class to create the request and process the response by the communication partner.
Prepare integration setup for the administrator by creating, for example, a communication scenario.
For more information, see Enable HTTP Communication in Your ABAP Code.
RFC
This is custom documentation. For more information, please visit the SAP Help Portal 70
10/23/24, 6:57 PM
For more information, see Consumption of the SQL Service and the ODBC Driver for ABAP.
ABAP Cloud supports complex scenarios, where the relevant integration partner is determined at runtime (receiver
determination). In these cases, the communication scenario can be set up multiple times in each tenant by the administrator.
This chapter focuses on remote business events. Local business events are based on the same design time but are consumed
using an event handler class that is set up as a class pool, similar to a behavior pool. For more information about consuming local
events, see Local Consumption.
The administrator can connect the system to an SAP Event Mesh instance and expose this event topic in the Maintain Event
Channel Binding application. Potential integration partners can then consume this event topic from the Event Mesh.
Business Events
To simplify the tasks of the administrator, multiple Event Consumption Models can be bundled into a communication scenario. The
administrator can then create a communication arrangement to link a channel to an SAP Event Mesh with a communication
scenario so that the list of event types is processed by a communication user.
Application consumers, which are the end customers of the provider, subscribe to a provider’s multitenant application and use it in
a specific consumer subaccount, which is called a tenant. Consumers access the provider’s SaaS application via a consumer-
specific URL. Consumers cannot see the data of other consumers and Identity and Access Management is kept isolated between
different tenants.
The multitenant application is deployed to the provider subaccount and serves as the entry point for the consumer-specific URLs
so that requests are routed to the corresponding consumer tenant in the ABAP system. Only after the multitenant application has
been deployed, the application will be available for subscription to consumers. See Developing Multitenant Applications in the
ABAP Environment.
The ABAP system used to serve the application to the consumers is provisioned in the provider subaccount during the first
subscription. See Creating an ABAP System.
Different tenants are created as separate clients in the system. Tenants in the ABAP system have different capabilities represented
by the tenant business type and lifecycle status. The ABAP system contains by default a tenant used by the application provider
(client 100) for system-level operations like the import of software components to the system. For each subscription to the
multitenant application, a tenant used by the consumer (client >= 200) is created. If any consumer tenants still exist in the ABAP
system, the system cannot be deleted.
The Landscape Portal functions as a central plane for tenant management that allows providers to perform lifecycle management
operations such as add-on updates, creating test tenants or support users, and more. For more information on how to access and
use the Landscape Portal, see Landscape Portal.
Multitenancy in the SAP BTP, ABAP environment is technically based on client-dependent database tables. Developers need to
make sure to define their custom database tables with the CLIENT field and the respective delivery class. The ABAP SQL access
takes the current CLIENT of the logged-on user automatically into consideration. See Multitenancy Development Guideline.
This is custom documentation. For more information, please visit the SAP Help Portal 72
10/23/24, 6:57 PM
Deploy
Common Setup
The deployment of developed ABAP Cloud objects and entire applications is supported by administration apps delivered with SAP
BTP, ABAP environment. The respective ABAP systems run on Gardener or Kubernetes-based infrastructure, but such technical
details are hidden for developers and administrators. The important part of the deployment strategy is the definition and setup of
the respective System Landscape. A typical system landscape consists of three ABAP systems for development, test and
productive use. See System Landscape/Account Model.
The basic entity for the deployment are software components. Software components are maintained with the administrators app
Manage Software Components. A hidden Git repo is automatically managed per software component based on gCTS for transport
management. Software components can be imported into test and productive systems. This process can be automated via Piper
pipelines including steps like automated test using ABAP Test Cockpit (ATC). You can also use SAP Cloud Transport Management
to handle the propagation of your changes in SAP BTP, ABAP environment.
The common setup is sufficient for customers to run their own applications.
Software Components
Your customers can subscribe to your service and get an own tenant in your central provider system
The application monitoring is in your responsibility and so is managing the infrastructure costs
Even for this scenario, Field Extensibility and Custom Logic is offered for key users on customer side (tenant-aware)
2. As an installable product:
You offer the product as an Add-on; the product can also be an SDK
Your customers need to have an own SAP BTP, ABAP environment instance
The installation of the product and patches is in the responsibility of your customers
The customer can extend your product via ADT. See the developer extensibility option in the Development Use
Cases page.
For both models, partners can build solutions based on software components with the help of the Landscape Portal to set up
multitenant SaaS solutions or to offer installable products like SDKs for other customers and partners.
The Landscape Portal is a collection of administrator apps and is part of the SAP BTP, ABAP environment. See Landscape Portal.
This is custom documentation. For more information, please visit the SAP Help Portal 73
10/23/24, 6:57 PM
Overview
The SAP Cloud Application Programming Model (CAP) is a framework of languages, libraries, and tools for building enterprise-
grade services and applications. It guides developers along a path of proven best practices and a great wealth of out-of-the-box
solutions to recurring tasks.
CAP-based projects benefit from a primary focus on domain. Instead of delving into overly technical disciplines, CAP focuses on
accelerated development and safeguarding investments in a world of rapidly changing cloud technologies.
The following graphic shows that the CAP framework features a mix of proven and broadly adopted open-source and SAP
technologies:
Core Data Services (CDS) as its universal modeling language for both domain models and service definitions.
Service SDKs and runtimes for Node.js and Java, offering libraries to implement and consume services as well as generic
provider implementations serving many requests automatically.
CAP also offers mocks for many platform features, which allow fast develop-test-run cycles with minimal development runtime
complexity. CAP facilitates integration scenarios by importing an API from, for example SAP S/4HANA backend or from SAP
Business Accelerator Hub and running mocks for this locally.
Over time, you can add things gradually, only when they're needed. For example, you can move ahead to running your applications
in close-to-productive setups for integration tests and delivery, without any change in models or code.
Related Information
Design
Develop
Deploy
This is custom documentation. For more information, please visit the SAP Help Portal 74
10/23/24, 6:57 PM
Operate
Operating with SAP Cloud ALM
When going through the sample application, you can choose from two options to try its services and runtimes before you purchase
them:
Start with more than 30 free-tier services and upgrade from free to paid plans
Accelerate your ramp-up with boosters and missions that include step-by-step guidance
The free-tier offering is available in the following consumption-based commercial models: the SAP BTPEA (SAP BTP
Enterprise Agreement), the CPEA (Cloud Platform Enterprise Agreement) and Pay-As-You-Go for SAP BTP. See Using Free
Service Plans.
Experiment with a diverse range of more than 30 trial services for free
Get started with a variety of learning materials, such as tutorials and missions
Before you start using the services or runtimes, you need to manage your entitlements and add quotas to your subaccounts. See
Entitlements and Quotas.
Note that if you want to try out services for free, you need to select free tier service plans, if available. For a list of free services,
check the Service Catalog at SAP Discovery Center .
Note
There is also a free plan for the SAP BTP, Cloud Foundry runtime and SAP BTP, Kyma runtime. To use the free plans for these
runtimes, you have to configure the entitlements in the SAP BTP cockpit. You have one free plan for each runtime per global
account and you can assign it to one subaccount at a time.
The tutorials are grouped in missions following a specific scenario. All the missions are based on the Incident Management sample
application:
This is custom documentation. For more information, please visit the SAP Help Portal 75
10/23/24, 6:57 PM
Mission: Develop a Multitenant CAP Application
The Develop a Full-Stack CAP Application group of tutorials covers the following steps for developing the Incident
Management sample application:
Building a CAP application with SAP Fiori elements user interface and a custom logic.
Adding local launchpad, authorization, tests for local development and preparing for production.
The Deploy a Full-Stack CAP Application in SAP BTP, Cloud Foundry Runtime group of tutorials covers the following
steps for deploying the Incident Management application in the SAP BTP, Cloud Foundry runtime:
Deploying the application in a productive account in SAP BTP, Cloud Foundry runtime.
The Deploy a Full-Stack CAP Application in SAP BTP, Kyma Runtime group of tutorials covers the following steps for
deploying the Incident Management application in the SAP BTP, Kyma runtime:
See the Develop a Full-Stack CAP Application Following the SAP BTP Developer’s Guide mission at SAP Discovery Center.
This image is interactive. Click the highlighted areas so you open the respective tutorial or mission.
This is custom documentation. For more information, please visit the SAP Help Portal 76
10/23/24, 6:57 PM
Please note that image maps are not interactive in PDF output.
This is custom documentation. For more information, please visit the SAP Help Portal 77
10/23/24, 6:57 PM
Using the SAP BTP Developer’s Guide you can implement side-by-side SAP Cloud Application Programming Model (CAP)-based
extension applications and deploy them in SAP BTP. The Develop a Side-by-Side CAP-Based Extension Application Following the
SAP BTP Developer’s Guide mission includes tracks for a remote service connectivity and eventing. In the scenario, an SAP
S/4HANA Cloud system is used. If you don't have such a system and you still want to try out the mission, you can use a mock
server instead. Depending on what you choose, there are 8 different options:
Option 1a: SAP BTP, Cloud Foundry runtime and mock server
Option 2a: SAP BTP, Cloud Foundry runtime and SAP S/4HANA Cloud
Option 4a: SAP BTP, Kyma runtime and SAP S/4HANA Cloud
Implement eventing
Option 1b: SAP BTP, Cloud Foundry runtime and mock server
Option 2b: SAP BTP, Cloud Foundry runtime and SAP S/4HANA Cloud
Option 4b: SAP BTP, Kyma runtime and SAP S/4HANA Cloud
Out of these 8 options, you can choose one option for the remote service and the corresponding option for the eventing. If you are
interested in the remote service connectivity, you don't have to finish the eventing option as well. However, if you are interested in
the eventing part, you have to finish the respective remote service connectivity option.
See Develop a Side-by-Side CAP-Based Extension Application Following the SAP BTP Developer’s Guide .
This image is interactive. Click the highlighted areas so you open the respective tutorial or mission.
This is custom documentation. For more information, please visit the SAP Help Portal 78
10/23/24, 6:57 PM
Please note that image maps are not interactive in PDF output.
For detailed observability data, use SAP Cloud Logging. SAP Cloud Logging allows you to analyze logs, metrics, and traces to
understand the performance of your SAP BTP workload in the SAP BTP, Cloud Foundry, and SAP BTP, Kyma environments.
See Implement Observability in a Full-Stack CAP Application Following SAP BTP Developer’s Guide .
This image is interactive. Click the highlighted areas so you open the respective tutorial or mission.
This is custom documentation. For more information, please visit the SAP Help Portal 80
10/23/24, 6:57 PM
Please note that image maps are not interactive in PDF output.
This is custom documentation. For more information, please visit the SAP Help Portal 81
10/23/24, 6:57 PM
See Develop an Enterprise-Grade CAP Application Following the SAP BTP Developer’s Guide .
This image is interactive. Click the highlighted areas so you open the respective tutorial or mission.
Please note that image maps are not interactive in PDF output.
This is custom documentation. For more information, please visit the SAP Help Portal 82
10/23/24, 6:57 PM
SAP BTP provides a multitenant functionality that allows application providers to own, deploy, and operate tenant-aware
applications for multiple consumers, with reduced costs. For example, the application provider upgrades the application for all
your consumers instead of performing each update individually, or share resources across multiple consumers. The application
consumers launch the applications using consumer-specific URLs, and configure certain application features.
To try out the multitenant functionality on the Incident Management sample application, see Develop a Multitenant CAP
Application Following the SAP BTP Developer's Guide .
This image is interactive. Click the highlighted areas so you open the respective tutorial or mission.
Please note that image maps are not interactive in PDF output.
This is custom documentation. For more information, please visit the SAP Help Portal 83
10/23/24, 6:57 PM
Design
Agnostic Design
CAP avoids technology lock-ins through higher-level concepts and APIs, which abstract low-level platform features and protocols to
a large extent. In particular, this applies to:
Onboarding and offboarding of tenants in Software-as-a-Service (SaaS) solutions and tenant isolation
Asynchronous channels and brokers like SAP Event Mesh, Message Queue, or Kafka
These abstractions allow CAP to quickly adapt to new emerging technologies or platforms, without affecting the application code.
While CAP certainly gives opinionated guidance, it does this without sacrificing openness and flexibility. You as a developer stay in
control of which tools or technologies to choose, or which architecture patterns to follow.
All abstractions follow a glass-box pattern that allows unrestricted access to lower-level things, if necessary.
Best Practices served out of the box with generic solutions for many recurring tasks.
Dedicated tools support provided in SAP Business Application Studio, and Visual Studio Code or Eclipse.
Domain-Driven Design
CAP uses Core Data Services as its ubiquitous modelling language, with Core Data Service Aspects separating core domain
aspects from generic aspects. Core Data Service's human-readable nature fosters collaboration of developers and domain
experts.
As Core Data Service models are used to fuel generic providers — the database as well as application services — CAP ensures that
the models are applied in the implementation. And as coding is minimized you can more easily refine and revise their models,
without having to refactor large boilerplate code bases.
This is custom documentation. For more information, please visit the SAP Help Portal 84
10/23/24, 6:57 PM
Develop
Learn more about developing applications using SAP Cloud Application Programming Model (CAP).
SAP Cloud Application Programming Model (CAP) is a framework of languages, libraries, and tools for building enterprise-grade
services and applications. It guides you along the best practices you can use to develop your applications on SAP BTP.
Core Data and Services can be used as business level data definition source, and to generate the artifacts at the persistence layer,
generate the application service layer and also be used to define visual aspects relating to the data, with those definitions
(annotations) defining the UI layer. See Core Data and Services (CDS) Language Reference Documentation.
CAP framework provides strong support for programming languages like Node.js and Java allowing you to build server-side logic,
handle requests and responses.
The following is the list of the most prominent tasks within scope of developing a full-stack application using CAP:
Domain modeling
Most projects start with capturing the essential objects of their domain in a respective domain model. Find an introduction
to the basics of domain modeling with Core Data and Services, complemented with recommended best practices. See
Domain Modeling .
Providing services
To learn how to define and implement services, leveraging generic implementations provided by the CAP runtimes,
complemented by domain-specific custom logic, see Providing Services .
To learn how to create applications with rich user interfaces for modern web business applications, responsive across
browsers and devices, based on HTML5, see Developing Apps.
Consuming services
To learn how to use uniform APIs to consume local or remote services, see Consuming Services .
Databases
To learn how to use databases with CAP applications, see Using Databases .
Out of the box-support is provided for SAP HANA, SQLite, H2 (Java only), and PostgreSQL.
Messaging
CAP provides intrinsic support for emitting and receiving events. This is complemented by the messaging services
connecting to message brokers to exchange event messages across remote services. See Events and Messaging .
Authentication
Authenticating users on incoming HTTP requests is achieved by authentication middleware which is then used in
authorization enforcement decisions. See Authentication .
Authorization
To restrict access to data by adding respective declarations to the models of the Core Data and Services, which are then
enforced in service implementations, see Authorization and Access Control .
This is custom documentation. For more information, please visit the SAP Help Portal 85
10/23/24, 6:57 PM
To internationalize your application to provide localized versions with respect to both Localized Models as well as Localized
Data, see Localization, i18n .
Localized data
To localize and internationalize static content, such as labels or messages, and to serve localized versions of actual
application data, see Localized Data .
Temporal data
CAP provides out-of-the-box support for declaring and serving date-effective entities with application-controlled validity, in
particular to serve as-of-now and time-travel queries. See Temporal Data .
Media data
CAP provides out-of-the-box support for serving media and other binary data. See Serving Media Data .
Data privacy
CAP helps application projects to comply with data privacy regulations using SAP BTP services. See Managing Data Privacy
.
Security
To develop, deploy and operate CAP applications in a secure way, see CAP Security Guide .
Multitenancy
Get to know the fundamental concepts of multitenancy, underpinning SaaS solutions in CAP. To learn how to run and test
applications in multitenancy mode with minimized setup and overhead, see Multitenancy .
Extensibility
To learn about the intrinsic capabilities to extend your applications in verticalization and customization scenarios, see
Extensibility .
Test
Runtimes
SAP BTP, Cloud Foundry environment is an SAP BTP, Kyma runtime is a fully managed
open Platform-as-a-Service (PaaS) Kubernetes-based runtime that enables the
targeted at microservice development and development and operation of cloud-native,
orchestration. enterprise-garde applications that can
seamlessly consume Multi-Cloud
Foundation Services.
Develop polyglot applications Build on open standards with SAP Java, With Kyma, you can choose any preferred
Node.js, and Python buildpacks or bring language or application that can be
your own language with community containerized. The available Kyma modules
buildpacks for PHP, Ruby, Go. reduce the development effort and the
application time to market.
Manage the lifecycle of applications Start, stop, scale, and configure distributed Deploy and upgrade applications and take
cloud applications using standard Cloud advantage of the native autoscaling
Foundry tools, our web-based functionality of Kubernetes that manages
the scaling for you. Get familiar with our
This is custom documentation. For more information, please visit the SAP Help Portal 86
10/23/24, 6:57 PM
administration user interface for SAP BTP, user interface, Kyma dashboard, or
and dev-ops capabilities. automate with standard CI/CD tools most
of which support Kubernetes.
Optimize development and operations Use the rich set of SAP BTP services As Kyma is fully managed, upgrades for
including messaging, persistence, and your Kubernetes cluster and base images
many other capabilities. are handled for you to save you time.
Use the application programming model Use programming languages, libraries, and APIs tailored for full-stack application
development.
This image is interactive. Hover over each area for a description. Click highlighted areas for more information.
Please note that image maps are not interactive in PDF output.
There are tutorials and end-to-end scenarios developed to show you how to apply the recommended path for the Cloud
Application Programming Model (CAP). All these tutorials and scenarios are based on the Incident Management sample
application. For a full list of the tutorials and their use cases, see Tutorials for SAP Cloud Application Programming Model.
Freestyle SAPUI5
Freestyle SAPUI5
This is the standard, pure SAPUI5 framework that you can use to freely develop your application user interface as you wish. If your
development team has experienced web developers and would want to implement a custom UI layout for your application, using
SAPUI5 freestyle you have complete flexibility about how the application can look and perform. You can also specify the layout,
flow, menu structure, interaction patterns, and so on. To develop SAPUI5 applications freestyle, you can start with the Basic
template in SAP Business Application Studio.
SAP Fiori elements is a UI library that uses SAPUI5 as its foundation. Its purpose is to scale application development and
maintenance by providing substantial standard functionality out of the box, for example, editing business objects. It also relieves
you from some tasks in the area of non-functional requirements such as accessibility, performance optimization etc. SAP Fiori
elements provides several standard templates that determine the overall layout and behavior of an SAP Fiori application. SAP
Fiori elements relies on OData metadata annotations to define what information is displayed within the floorplan of the application
that is generated. The templates allow you to create SAP Fiori applications that follow the SAP Fiori design standards. While SAP
Fiori elements supports both OData Version 4 and OData Version 2, we recommend that you use SAP Fiori elements floorplans for
OData V4. It comes with an ISO certification and provides innovations like the flexible programming model which makes it
easier to create or extend applications based on SAP Fiori elements for OData V4.
This approach is a hybrid in-between pure SAPUI5 and SAP Fiori elements. You can start with the Custom Page template in SAP
Business Application Studio. The Custom Page template allows you to combine freestyle SAPUI5 code with building blocks . For
example, if you want a table that works with OData V4 annotations and automatically behaves like the ones in SAP Fiori elements
floorplans, you can use the corresponding building block. The building blocks are provided by the flexible programming model to
meet specific application requirements without needing any code to configure what they display.
This is custom documentation. For more information, please visit the SAP Help Portal 88
10/23/24, 6:57 PM
If the current and foreseeable application UI design requirements comply with SAP Fiori elements patterns, then use the available
standard SAP Fiori elements floorplans. The flexible programming model provides more options to use SAP Fiori elements by
allowing to add custom artifacts to the application via extension points.
When UI Design Requirements Don't Match Any SAP Fiori Elements Floorplans
You can flexibly implement a custom layout and content by combining SAPUI5 with building blocks from the flexible
programming model.
If there's a benefit from using building blocks in a freestyle SAPUI5 application, there's an easy path to integrate the flexible
programming model when needed by following the three-step approach . If OData V4 is used and relevant annotations
are being maintained in the back end, then such a benefit probably exists:
Deploy
SAP Cloud Application Programming Model (CAP) applications can be deployed in the SAP BTP, Cloud Foundry runtime or in the
SAP BTP, Kyma runtime. Both runtimes can be used to host and run your custom code, while at the same time being connected to
SAP BTP Multi-Cloud Services and your on-premise systems. Depending on your use case and the skill set of your developers,
choose the runtime that fits your needs. See Comparison: SAP BTP, Kyma Runtime and SAP BTP, Cloud Foundry Runtime.
With our recommended approach, the actual deployment in your SAP BTP, Cloud Foundry runtime is performed either by your
Continuous Integration and Delivery (CI/CD) pipeline (such as provided by SAP Continuous Integration and Delivery service) or
handled by transports (via SAP Cloud Transport Management, optionally orchestrated by SAP Cloud ALM).
If you want to perform a manual deployment in the SAP BTP, Cloud Foundry runtime, see Deploy in Cloud Foundry .
This is custom documentation. For more information, please visit the SAP Help Portal 89
10/23/24, 6:57 PM
Kyma is a Kubernetes-based platform to run containerized workloads. The service's files are provided as a container image,
commonly referred to as a Docker image. In addition, the containers to be run on Kubernetes, their configuration and everything
else that is needed to run them, are described in the Kubernetes resources.
Container images
Kubernetes resources
The following diagram shows the steps to run on the SAP BTP, Kyma runtime:
For detailed steps to deploying your application in the SAP BTP, Kyma runtime, see Deploy in Kyma Runtime .
Operate
When you want to have fully-detailed observability data of your application, you can use the SAP Cloud Logging service.
SAP Cloud Logging enables you to analyze your SAP BTP workloads on SAP BTP, Cloud Foundry runtime and SAP BTP, Kyma
runtime regarding functional and non-functional behavior. The ability to look into the details of logs, metrics, and traces can be
used to better understand performance, errors, usage, and other characteristics.
SAP Cloud Logging can be flexibly consumed, and costs are charged exactly along the actual usage. See SAP Cloud Logging in the
Service Catalog in SAP Discovery Center.
This is custom documentation. For more information, please visit the SAP Help Portal 90
10/23/24, 6:57 PM
Key capabilities of SAP Cloud Logging include:
Ingestion from SAP BTP, Cloud Foundry runtime and SAP BTP, Kyma runtime and across multiple applications via Open
Telemetry or other protocols
Dashboards for interactive exploration, including tailored prebuilt content for SAP BTP, Cloud Foundry runtime and SAP
BTP, Kyma runtime
Advanced analytics and data processing, such as alerting and anomaly detection
Related Information
SAP Cloud Logging Product Page on SAP Help Portal
What Is SAP Cloud Logging?
Operating with SAP Cloud ALM
This is custom documentation. For more information, please visit the SAP Help Portal 91