0% found this document useful (0 votes)
393 views91 pages

SAP BTP Developer Guide

Uploaded by

aaamir khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
393 views91 pages

SAP BTP Developer Guide

Uploaded by

aaamir khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 91

10/23/24, 6:57 PM

SAP BTP Developer's Guide


Generated on: 2024-10-23 18:57:55 GMT+0000

SAP Business Technology Platform (SAP BTP) | Cloud

PUBLIC

Original content: https://help.sap.com/docs/BTP/0c8c1db388f645159e134a005aaabbcf?locale=en-


US&state=PRODUCTION&version=Cloud

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.

For more information, please visit the https://help.sap.com/docs/disclaimer.

This is custom documentation. For more information, please visit the SAP Help Portal 1
10/23/24, 6:57 PM

SAP BTP Developer’s Guide


The SAP BTP Developer’s Guide is the starting point for developing a business application on SAP BTP. It contains
recommendations and best practices that give you an overview of what you should consider when working on development
projects on SAP BTP. It also contains links to step-by-step instructions when required.

Is This Guide for You?


If you're an architect or a development project lead, this guide helps you plan the architecture of your application and the
services on SAP BTP you can to use to achieve your goal.

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 Business Technology Platform?

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

SAP BTP Guidance Framework

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.

Basic Platform Concepts

Contains regions, runtimes, accounts, members, quotas, capabilities and links to in-depth explanations.

Getting Started Checklist

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.

SAP BTP Administrator's Guide

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.

SAP Discovery Center

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.

How to Use This Guide


Use the SAP BTP Developer’s Guide to help you implement business applications on SAP BTP. This guide is part of the SAP BTP
Guidance Framework and explains the building blocks for developing, delivering, and integrating business applications.

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

Identifying Required Use Cases

Understand your end users, their working methods, and their needs in more depth.

Understanding Available Technology

Development Use Cases

Get to know the use case patterns that can be implemented on SAP BTP.

Business Application Services

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

User Experience Design

Design the user experience of your application to provide good usability.

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.

Run and Scale

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.

Programming Model Specifics

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.

SAP Cloud Application Programming Model (CAP)

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.

Contribute to the SAP BTP Developer’s Guide

 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.

You need a GitHub account to use these options.

More information:

Contribution Guidelines

Introduction Video

Introduction Blog Post

This is custom documentation. For more information, please visit the SAP Help Portal 4
10/23/24, 6:57 PM

What's New for SAP BTP Developer's Guide


2024

Technical Environment Title Description Action Lifecycle Type Line of Modular


Component Business Business
Process

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

Technical Environment Title Description Action Lifecycle Type Line of Modular


Component Business Business
Process

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:

For SAP BTP,


Cloud Foundy
runtime, see
Integrate Your
Application
with SAP Build
Work Zone,
Standard
Edition .

For SAP BTP,


Kyma runtime,
see Integrate
Your
Application
Deployed in
SAP BTP,
Kyma Runtime
with SAP Build
Work Zone,
Standard
Edition .

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

Technical Environment Title Description Action Lifecycle Type Line of Modular


Component Business Business
Process

Cloud Developer's It also now contains


Foundry Guide the development best
practices introduced
in the former Best
Practices for SAP BTP
guide, now renamed to
SAP BTP
Administrator's Guide.

See SAP BTP


Developer's Guide.

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.

See Mission: Develop


an Enterprise-Grade
CAP Application
Following the SAP BTP
Developer’s Guide.

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.

See Tutorials for SAP


Cloud Application
Programming Model.

This is custom documentation. For more information, please visit the SAP Help Portal 7
10/23/24, 6:57 PM

Technical Environment Title Description Action Lifecycle Type Line of Modular


Component Business Business
Process

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

Technical Environment Title Description Action Lifecycle Type Line of Modular


Component Business Business
Process

Following the Programming Model


SAP BTP (CAP).
Developer’s
The mission explains
Guide
how you can
Mission
implement side-by-
side SAP Cloud
Application
Programming Model
(CAP)-based
extension applications
and deploy them in
SAP BTP and is based
on the Incident
Management sample
application.

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

Technical Environment Title Description Action Lifecycle Type Line of Modular


Component Business Business
Process

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.

See Tutorials for ABAP


Cloud.

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

Cloud Concept to how to deliver a cloud


Foundry Code application from
concept to a final
product. The section
From Concept to
Code outlines a
progressive approach
that includes the
following steps:

This is custom documentation. For more information, please visit the SAP Help Portal 10
10/23/24, 6:57 PM

Technical Environment Title Description Action Lifecycle Type Line of Modular


Component Business Business
Process

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 why the


domain-driven
design is an
adequate
approach

Learn about
the domain-
driven design
starter
modeling
process

Check how
complex your
scenario is

For more information,


see From Concept to
Code.

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

Identify the Business Problem


A business problem represents a gap between the desired and actual outcome of a task. It can be any hurdle, situation, or variation
that prevents a business from achieving its objectives. A business problem may not have an immediately obvious resolution, and
may be masked or hidden by perception and assumption. To define a true problem, you need to remove the factors that obscure
the real reason behind the problem.

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?

How do the customers use the product in their daily workflow?

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?

Create a Governance Model

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.

Identifying Required Use Cases


Understand in detail what your end user’s tasks and challenges are. Get a holistic view of the business roles of your application’s
users, their jobs to be done, the information they need to get them done, along with their needs and wishes.

Identifying Required Use Cases

Understanding Available Technology

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.

Development Use Cases

Go through the different use cases and choose the one that best suits your business needs.

See Development Use Cases.

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.

See Business Application Services.

Identifying Required Use Cases


Once you have an understanding of the business opportunity you want to address, you next will need to understand in detail what
your end user’s tasks and challenges are. You need a holistic view of the business roles of your application’s users, their jobs to be
done, the information they need to get them done, along with their needs and wishes.

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.

Understanding Available Technology


To be able to build an application using what SAP BTP offers, you have to understand what are the recommended use case
patterns and what services, tools, and integrations are available.

Development Use Cases


Typical Development Use Case Patterns

The following use case patterns should always be implemented on the SAP BTP:

Automate processes across backend systems

This pattern provides low code/no code capabilities to automate processes and is meant for business experts and
developers.

Build web and mobile applications

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.

Develop full-stack applications

This pattern is meant for professional developers and has the following flavors:

Full-stack single-tenant applications

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:

Key user extensibility

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

Business Application Services


SAP BTP Developer’s Guide has a comprehensive set of tools and services at your disposal that allow you to keep the pace and at
the same time benefit from future investments in SAP BTP. The following graphic includes both ABAP and non-ABAP runtimes and
provides an overview of the architecture you can use when designing and building your applications.

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.

Capability Cloud Application Programming ABAP Cloud

Development Tools SAP Business Application Studio ABAP Development Tools for Eclipse

Designed and optimized for business SAP Business Application Studio


application development in SAP
Use ABAP development tools for Eclipse to
ecosystems, SAP Business Application
benefit from an efficient development
Studio enhances productivity by offering
environment for all ABAP-based
specialized tools for various scenarios,
development artifacts. Use the SAP
including SAP Fiori application
Business Application Studio to develop the
development, SAP HANA native extensions,
SAP Fiori parts of your ABAP-based
full-stack and mobile application
applications.
development, and more.

This is custom documentation. For more information, please visit the SAP Help Portal 15
10/23/24, 6:57 PM

Capability Cloud Application Programming ABAP Cloud

Central to the development environment is


Code-OSS, the open-source foundation of
Visual Studio Code, ensuring a familiar
experience for developers when creating
SAP-centric applications. SAP Business
Application Studio streamlines the building,
testing, and deployment of applications
with integrated features for source control
and testing. Furthermore, its Full-Stack
Application Productivity Toolkit offers
intuitive visual tools covering the entire
development process, guaranteeing
seamless integration with various SAP
services and solutions.

Software Delivery SAP Continuous Integration and Delivery ABAP Lifecycle Management

Use SAP Continuous Integration and For customers:


Delivery for non-ABAP applications with a
Develop applications as software
full end-to-end support for SAP BTP cloud
components and deliver them via
applications.
the Manage Software Components
SAP Continuous Integration and Delivery application. See Software
lets you configure and run predefined Components.
continuous integration and delivery (CI/CD)
A hidden Git repository is
pipelines that automatically build, test, and
automatically managed per
deploy your code changes to speed up your
software component using gCTS for
development and delivery cycles.
transport management. This
Use SAP CI for non-ABAP applications with process can be automated with
a full end-to-end support for SAP BTP cloud CI/CD pipelines including steps like
applications. test automation using ABAP Test
Cockpit. See Automate the
SAP CI guides along solid tests, zero-
Software Lifecycle Management
downtime deployment, consistency, release
Process.
via feature activation, operation guidance. It
supports full end-to-end support for BTP SAP Cloud Transport Management
cloud applications. can be used to optionally integrate
with higher level change
Consider the complete innovation lifecycle
management processes. See How
that includes (beside others) Design
to Export Using SAP Cloud
Thinking, Domain Driven Design, Feature
Transport Management.
(Toggle) Definition, local build, unit tests,
integration tests, end-to-end tests, For partners:
progressive deployment, feature activation,
In addition to the customer
documentation, DevOps monitoring, usage
scenario, products can be built
tracking, metering, adoption measurement
based on software components
and closing the feedback loop.
with the help of the Landscape
SAP Cloud Transport Management Portal to setup multitenant SaaS
applications or to offer installable
Optionally complement your pipeline with products like SDKs for other
an automated handover of your qualified customers and partners. See
changes into a standardized, enterprise- Landscape Portal.
ready change management process. For
changes in SAP BTP, Cloud Foundry
runtime, the pipeline provided by SAP
Continuous Integration and Delivery service
allows to trigger out-of-the-box a transport

This is custom documentation. For more information, please visit the SAP Help Portal 16
10/23/24, 6:57 PM

Capability Cloud Application Programming ABAP Cloud

in SAP Cloud Transport Management


service.

With other CI/CD solutions, you can also


trigger such a transport via project ‘Piper’.
SAP Cloud Transport Management allows
you to centrally define delivery landscapes
and to then handle the transport of
development and application-specific
content between the subaccounts defined
in this landscape. With this, you can add
additional control for the propagation of
your changes especially towards your
production environments, such as by
defining who is allowed to come up and
handle changes in which environment. Also,
you gain the option to apply existing or new
change management processes, such as
being offered by change and deployment
management capabilities of SAP Cloud ALM
– for example, to centrally synchronize the
delivery of SAP BTP changes with changes
from other environments, as part of hybrid
applications.

You can also use SAP Cloud Transport


Management to transport your changes
without pipeline.

Persistence SAP HANA Cloud SAP HANA Cloud


SAP BTP, ABAP environment comes with an
Use SAP HANA Cloud service for a
own ABAP-managed SAP HANA Cloud
relational storage.
instance. Static resizing of the SAP HANA
Use HANA Data Lake Files as Object Cloud instance is supported. ABAP
Storage. dictionary tables can be tagged to make
use of the SAP HANA Native Storage
Consider compliance features like such as Extensions; also, database indexes (like
Audit Log, Cryptography or Customer unique secondary indexes and fuzzy search
Managed Keys that SAP HANA Cloud offers. indexes) and Dynamic View Caches can be
defined. Furthermore, simple Database
Partitioning based on primary keys is
possible. Access to the SAP HANA instance
data is only supported via the ABAP layer,
for example, by using ABAP SQL, natively
via ABAP-managed database procedures,
and the ABAP SQL Service for external
clients.

Programming Model SAP Cloud Application Programming Model ABAP RESTful Application Programming
(CAP) Model (RAP)

Use SAP Cloud Application Programming Use ABAP RESTful Application


Model as programming model for non- Programming Model as a programming
ABAP applications. model within ABAP Cloud. With ABAP
RESTful Application Programming Model,
Go-to frameworks for business application
you can develop services for all types of
development. It supports the most widely
SAP Fiori applications as well as publishing
adopted languages, which are: Java (with
Web APIs.

This is custom documentation. For more information, please visit the SAP Help Portal 17
10/23/24, 6:57 PM

Capability Cloud Application Programming ABAP Cloud

Spring Boot), JavaScript and TypeScript


(with Node.js).

SAP Cloud Application Programming Model


guarantees to run against specific versions
of Node.js and Java. Remember to plan your
application to run for at least 5 years if not
more.

We recommend that you choose SAP BTP


services over homegrown services.

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.

SAP BTP, ABAP environment delivers and

SAP BTP, Kyma Runtime enforces the ABAP Cloud development


model and is based on Kubernetes. The
Use SAP BTP, Kyma runtime as a runtime abstraction of containers and clusters is
for CAP-based applications. managed by the SAP BTP, ABAP
environment infrastructure.

Client Library SAP Cloud SDK Service Consumption Model

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.

Connectivity SAP Connectivity Service SAP Connectivity Service

Use Connectivity service to securely access The Connectivity service is automatically


on-premise systems which are exposed via integrated with the BTP ABAP tenants to
Cloud Connector. Using Cloud Connector securely access on-premise systems which
service channels, it is also possible to are exposed via Cloud Connector.
access cloud systems such as databases
from on-premise networks. For Kubernetes-
based workloads, you can utilize the
Connectivity Proxy to ensure secure
technical connectivity from the cloud to
your on-premise systems. Within the Kyma
runtime, the Connectivity Proxy comes as a
managed offering.

SAP Destination Service Communication Management

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

Capability Cloud Application Programming ABAP Cloud

to the configured target systems. In An event consumption and event


addition, the Destination service generates provisioning is also natively supported and
and is able to renew X.509 client integrated into the ABAP RESTful
certificates issued by the SAP Cloud PKI. Application Programming Model (RAP).

In addition, the SAP Destination Service can


also be used to re-use destinations for CAP
applications. See SAP Destination Service.

Application Programming Interface SAP Business Accelerator Hub

Follow API guidelines and use the SAP Business Accelerator Hub.

User Interface (Web) SAP Fiori Elements

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.

User Interface (Mobile) SAP Mobile Development Kit

SAP BTP SDK for Android

SAP BTP SDK for iOS

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

Capability Cloud Application Programming ABAP Cloud

point for all SAP Fiori applications to


administer the ABAP system.

SAP Build Work Zone, standard edition


offers a unified end-user experience across
several systems for federation scenarios.

Integration SAP Event Mesh

SAP Cloud Application Event Hub

SAP Integration Suite, advanced event mesh

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

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.

SAP Integration Suite

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

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.

Observability SAP Cloud ALM SAP Cloud ALM

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

Capability Cloud Application Programming ABAP Cloud

For your CAP-based applications on SAP Real User Monitoring


BTP, SAP Cloud ALM provides a central,
Health Monitoring
personalized and unified operations user
experience. Specifically for Java and Synthetic User Monitoring
Node.js custom-built applications in SAP
BTP, Cloud Foundry runtime, there are the Integration Monitoring
Data Collection Instrumentation Libraries
Job and Automation Monitoring
based on Open Telemetry designed to
enable the data collection infrastructure in Data Forwarding to SAP Focused
SAP Cloud ALM. With these libraries, you RUN
can collect data for many observability use
cases, such as: For Health Monitoring, you could extend the
delivered content with your own custom
Real User Monitoring metrics.

Real User Monitoring SAP BTP, ABAP Environment strictly


distinguishes between platform monitoring
Health Monitoring
and application monitoring. The platform
Integration and Exception monitoring, like availability monitoring, is
Monitoring ensured by the service itself.

For application monitoring, which is in your


SAP Alert Notification service for SAP BTP responsibility, respective tools are offered.
Use the Technical Monitoring Cockpit to
Local expert tool that allows you to
analyze and optimize the application on-
subscribe to events from the platform –
stack:
such as from used services, from your
custom-built apps, or from the System workload
infrastructure – and to consume them via
your channel of choice (such as by receiving Resource consumption and

notifications via email or in your preferred capacity

chat application). Can be integrated into


Detailed statistics captured for
central alerting of SAP Cloud ALM.
single requests

SAP Cloud Logging Outbound communication

SAP Cloud Logging allows you to analyze SQL statements


your SAP BTP workloads in great detail
regarding performance, errors, usage, and
other characteristics.

It covers processing of logs, metrics, traces


across SAP BTP, Cloud Foundry runtime
and SAP BTP, Kyma runtime with flexible
storage, alerting, and dashboarding.

Customer Landscape Discovery Unified Customer Landscape Landscape Portal

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

Capability Cloud Application Programming ABAP Cloud

added to the list in one of the following


ways:

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>

Specifies that the system has been


added through a subscription in
SAP BTP cockpit associated with a
given subaccount. The subscription
has been discovered and added
automatically through the
subaccount.

Manually-Added

Specifies that the system has been


added to the list manually by the
global account administrator, using
the Add System button and
completing the wizard. The system
has been associated with the global
account in SAP BTP.

Extensibility and Integration Side-by-Side Extensibility with Unified On-Stack Extensibility by Extending SaaS
Customer Landscape: Applications

Register Systems In addition to the standard side-by-side


approach for core applications such as SAP
Create Formations
S/4HANA, SAP BTP, ABAP Environment
SAP SuccessFactors Extensibility also offers two extensibility options within

Service the product itself:

SAP S/4HANA Cloud Extensibility With developer extensibility, you

Service can extend partner solutions which


are installed in your customer
Use Unified Customer Landscape service system, for example by adding
that offers customer landscape custom fields, custom nodes and
management capabilities for your SAP business logic.
S/4HANA, SAP Ariba, SAP SuccessFactors,
and other SAP and third-party systems in With key user extensibility, you can

one single experience. extend a multitenancy SaaS


application offered by a partner. The
In the SAP BTP cockpit, you get a supported extensibility features to
comprehensive overview of all your systems
This is custom documentation. For more information, please visit the SAP Help Portal 22
10/23/24, 6:57 PM

Capability Cloud Application Programming ABAP Cloud

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.

Data Privacy SAP Data Privacy Integration

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.

Workflow SAP Task Center

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

SAP Build Process Automation provides a simpler and faster way to adapt, improve, and
innovate business processes with drag-and-drop simplicity.

The solution combines workflow management, SAP Intelligent Robotic Process


Automation (SAP Intelligent RPA) functionality, decision management, process visibility,
and embedded AI capabilities into one intuitive low-code experience.

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.

Job Scheduling SAP Job Scheduling Service Application Jobs

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

Capability Cloud Application Programming ABAP Cloud

Manage jobs and tasks and manage


schedules with a web-based user interface.

Application Logs Application Logs

SAP Task Center helps you integrate tasks


into a central Application Logging is
integrated into the product. Application
Logs can be defined, implemented, and
monitored.

Analytics SAP Analytics Cloud SAP Analytics Cloud

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.

SAP Datasphere SAP Datasphere

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 SAP Document Management Service

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.

Document Management Service, Application Option is a standalone, ready-to-use web


application that provides document management capabilities for your enterprise content.

Object Store on SAP BTP

Object Store service on SAP BTP lets you


store and manage objects, which involves
creation, upload, download, and deletion.
This service is specific to the
Infrastructure-as-a-Service layer such as
Azure Blob Storage, Amazon Web Services,
and Google Cloud Platform.

Low Code/No Code SAP Build

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

Capability Cloud Application Programming ABAP Cloud

Service Management SAP Service Manager

SAP Service Manager service allows you to


consume platform services in any
connected runtime environment, track the
creation and management of service
instances, and share services and service
instances between different environments.

Authentication SAP Authentication and Trust Management Access Management


Service
User authorizations are managed and can
The SAP Authentication and Trust be aggregated into business roles locally in
Management service lets you manage user SAP BTP, ABAP environment.
authorizations and trust to identity
providers. Identity providers are the user
base for applications.

We recommend that you use an Identity


Authentication tenant, an SAP on-premise
system, or a custom corporate identity
provider. User authorizations are managed
using technical roles at the application
level, which can be aggregated into
business-level role collections for large-
scale cloud scenarios.

Identity Authentication Identity Authentication

The Identity Authentication service The Identity Authentication service


provides you with controlled cloud-based provides you with controlled cloud-based
access to business processes, applications, access to business processes, applications,
and data. It simplifies your user experience and data. It simplifies your user experience
through authentication mechanisms, single through authentication mechanisms, single
sign-on, on-premise integration, and sign-on, on-premise integration, and
convenient self-service options. convenient self-service options.

Technical users for system-to-system


communication are managed locally in the
SAP BTP, ABAP environment. SAP BTP,
ABAP environment supports mTLS and
basic authentication as authentication
options for technical users.

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

Read Access Logging (RAL) is used to


monitor and log read access to sensitive
data. This data may be categorized as
sensitive by law, by external company
policy, or by internal company policy.

This is custom documentation. For more information, please visit the SAP Help Portal 25
10/23/24, 6:57 PM

Capability Cloud Application Programming ABAP Cloud

Security SAP Credential Store Communication Management

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.

Identity Management Identity Provisioning Identity Provisioning

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.

Technical Оps Аutomation Terraform Provider for SAP BTP

The Terraform provider for SAP BTP


enables you to automate the provisioning,
management, and configuration of
resources on SAP BTP.

SAP Automation Pilot

SAP Automation Pilot allows to reduce


operational efforts to run your cloud
applications on SAP BTP by automating
them. For this, it brings catalogs of
automated commands, such as around
database and application lifecycle
management tasks for the different
runtimes of SAP BTP. Use these commands
to model and run your custom scenarios,
optionally combined with custom scripts.
Also, you can describe your needs to let the
included Generative AI feature come up
with a command for you. The created
commands can be triggered manually, via
scheduling or externally, such as from SAP
Cloud ALM.

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:

User Experience Design

Technology Design

User Experience Design


Once you have a sufficient understanding of your users’ needs, by successfully completing the Discover phase, you can start
designing the user experience of your application.

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.

A product with good usability gives users a good user experience.

Usability is defined by the degree to which these aspects are provided to a user to get their tasks or jobs done:

Effectiveness

Efficiency

Ease of learning (Intuitiveness)

Error tolerance

Satisfaction

Consistency contributes to ease of learning and efficiency.

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

Deliver a Cloud Application from Concept to a Final Product


The columns in the following graphic show for which use cases using a well-modularized architecture suits best, what is the
motivation, the steps and the benefits.

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

Use the following triggers as a motivation to engage in sophisticated design process:

Renovating, evolving or reimplementing an existing solution

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.

Designing a new Software-as-a-Service solution based on microservices

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.

Considering more asynchronous behavior and event-sourced applications

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.

Designing a Software-as-a-Service application on SAP BTP

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

Follow these steps to ensure smooth implementation of your application:

1. Understand the business domain.

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.

2. Identify the required modules.

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.

3. Define the communication between the modules.

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.

4. Plan the implementation.

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.

Higher likelihood to deliver value to your customers

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.

Understand Modularization in General


This is custom documentation. For more information, please visit the SAP Help Portal 30
10/23/24, 6:57 PM
Modularization is a general programming concept where you separate program functions into independent pieces, called modules.
These modules then act like building blocks, with each block containing all the necessary parts to execute a piece of the
functionality. When the modules are put together, they make up the executable program.

A modular code is:

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.

Understand Modularization in the Context of Microservice-Based Architecture


The right modularization is very important in the context of microservices, because microservices are essentially a form of
modular software development. Microservices aim to create small, focused, and independent services that communicate through
well-defined interfaces and protocols. Each service is responsible for a specific functionality or domain, and can be developed,
deployed, and scaled independently from other services. This way, microservices enable a high degree of modularity, flexibility, and
agility in software development.

However, not all modularizations are equally effective or beneficial for microservices. A poor modularization can lead to problems
such as:

High coupling and low cohesion

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.

Service sprawl and fragmentation

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.

Lack of alignment and consistency

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:

Maintain modules easily

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.

Have clear and well-defined interface and responsibility of each service

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.

Modify or extend each service to meet changing requirements or customer needs

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.

Learn Why Domain-Driven Design Is an Adequate Approach


Domain-driven design is a major software design approach, focusing on modeling software to match a domain according to input
from that domain's experts. Under domain-driven design, the structure and language of software code (class names, class
methods, class variables) should match the business domain.

Domain-driven design helps achieving the traits of a good modularization by:

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.

Learn About the Domain-Driven Design Starter Modeling Process

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.

Check How Complex Your Scenario Is


Check which requirements your scenario has and sum up the points for the respective requirement. If your score is 7 or higher, you
should evaluate how to leverage the concept and tools of the domain-driven design in your project.

We also recommend that you follow the domain-driven design modeling process.

See Domain-Driven Design Starter Modeling Process .

Scenario Requirements Points Comments

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.

However, having many methods or


functions doesn't always mean high
complexity. They might be simple and well-
structured. It's when a class or module has
many responsibilities, indicated by methods
or functions that perform widely varying
tasks, that complexity becomes a
challenge.

This is custom documentation. For more information, please visit the SAP Help Portal 33
10/23/24, 6:57 PM

Scenario Requirements Points Comments

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

Programming Model Specifics

There are sample applications presented in tutorials and end-to-end scenarios, called missions:

Tutorials for ABAP Cloud

Tutorials for SAP Cloud Application Programming Model

Set Up
Configuring the landscape setup in its essence is an administrative task described in detail in the SAP BTP Administrator's Guide.

Set Up Your Account Model

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.

Manage Users and Members

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

Cloud Foundry Kyma ABAP

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

Support for CAP – an Managed infrastructure: day-2


opinionated business app operations, security patches,
development framework and updates

Full administrator access

Refined horizontal and vertical


automatic scalability

Dedicated application runtime

Zero downtime infrastructure


setup by default

This is custom documentation. For more information, please visit the SAP Help Portal 35
10/23/24, 6:57 PM

Cloud Foundry Kyma ABAP

Support for CAP – an


opinionated business app
development framework

Support for on-premise


connectivity

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)

Out-of-the-box consumption of SAP and hyperscaler services

Built on industry standards and open technology

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

Applications built with CAP

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

Any major programming


language

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.

For best practices, guidelines and step-by-step instructions, see Development.

Defining Development Guidelines

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.

SAP provides the following official guidelines:

SAPUI5 Guidelines

SAP Fiori Design Guidelines

SAP BTP and Third-Party Cookies


The deprecation of third-party cookies by browser manufacturers might impact applications running on SAP BTP. For example,
logon scenarios in your application might fail due to session management and authentication issues.

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 .

Programming Models, Programming Languages, Tools, and APIs


Using Multitarget Applications to Manage Dependencies
One challenge of moving into the cloud is deploying applications that consist of multiple interconnected components.
Adding Authentication and Authorization
As part of application development, developers create a role template during design time, which consists of scopes and
attributes. Once the application is deployed, an administrator can create a role from this role template, which can then be
assigned to a role collection.
Security Considerations for Applications
When building applications, use the security features of SAP BTP, such as protection from web attacks. We recommend
that your developers configure and deploy application-based security artifacts containing authorizations, and
administrators assign these authorizations using the cockpit. SAP BTP offers platform roles that help you ensure a
segregation of duties, such as between app development and administration.
Developing Resilient Applications
Our best practices about resilient application design help you to make your applications running on SAP BTP stable and
highly available.
Extending Existing SAP Solutions Using SAP BTP
SAP BTP offers services, tools, and capabilities to develop, extend, or integrate business applications in the cloud. You can
implement additional workflows or modules on top of existing solutions, which lets you benefit from out-of-the-box
security, inherited data access governance, user interface embedding, and so on.
Performing UI, Usability, and Unit Tests
You should always conduct careful testing to ensure that your application is of high quality. Create a release candidate to
propagate throughout your landscape.

This is custom documentation. For more information, please visit the SAP Help Portal 37
10/23/24, 6:57 PM

Programming Models, Programming Languages, Tools, and APIs


SAP BTP provides two programming models, ABAP Cloud and SAP Cloud Application Programming Model (CAP). ABAP Cloud
uses the ABAP programming language, while CAP supports various programming languages.

SAP BTP provides numerous tools for your development project, no matter which programming model and programming language
you have chosen.

The following subsections give you more information about:

Programming Models

Programming Languages

Continuous Integration and Delivery (CI/CD)

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.

SAP Cloud Application Programming Model (CAP)


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.

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):

Built-in best practices

Support for Visual Studio Code and SAP Business Application Studio tools

Safeguarded application development investments

No runtimes lock-in

Reuse and integration of SAP BTP application services

Latest UX and themes

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.

Environment More Information

Cloud Foundry runtime See Development in the Cloud Foundry Environment

ABAP environment See Development in the ABAP Environment

Kyma runtime See Development in the Kyma Environment

Related Information
SAP BTP, Serverless Runtime - Development

Continuous Integration and Delivery (CI/CD)


Configure and run predefined continuous integration and delivery (CI/CD) pipelines that automatically build, test, and deploy your
code changes to speed up your development and delivery cycles.

 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

Continuous Integration Basic Flow

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:

SAP Cloud Application Programming Model

Configure a CI/CD pipeline for the development of applications that follow the SAP Cloud Application Programming Model
in the Cloud Foundry runtime.

Configure an SAP Fiori in the Cloud Foundry Environment

Configure a CI/CD pipeline for the development of SAPUI5/SAP Fiori applications in the Cloud Foundry runtime.

Configure an SAP Fiori in the Neo Environment

Configure a CI/CD pipeline for the development of SAPUI5/SAP Fiori applications in the Neo environment.

Configure an SAP Fiori for the ABAP Platform

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 an SAP Integration Suite ArtifactsSAP Integration Suite Artifacts

Configure a CI/CD pipeline for the development of SAP Cloud Integration artifacts in the Cloud Foundry runtime.

Configure a Container-Based Applications

Configure a CI/CD pipeline for the development of container-based applications.

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.

Get Started with CI/CD


SAP Continuous Integration and Delivery provides an easy, UI-guided way to set up the service and configure and run your
pipelines, without hosting your own Jenkins instance.

To set up SAP Continuous Integration and Delivery:

1. Enable the service in the SAP BTP cockpit.

2. Assign either the Administrator or Developer role to your user.

3. Enable the API usage to connect SAP Continuous Integration and Delivery to other services, if necessary.

To configure SAP Continuous Integration and Delivery:

 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).

2. Add your repository.

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 .

Learn and Get Certified


Depending on your learning goals and level of expertise, you can choose from the following offerings:

Efficient DevOps with SAP

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).

Continuous Integration and Delivery Introduction Guide

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.

Tools Available for SAP BTP Multi-Cloud Foundation

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.

kubectl The Kubernetes command line tool to communicate with a


Kubernetes cluster's control plane, using the Kubernetes API.

kubelogin A kubectl plugin for Kubernetes OpenID Connect (OIDC)


authentication.

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

business sites with drag-and-drop simplicity.

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.

API Offerings on SAP BTP


SAP BTP enables you to consume APIs and publish your own ones through the following offerings:

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

Using Multitarget Applications to Manage Dependencies


One challenge of moving into the cloud is deploying applications that consist of multiple interconnected components.

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

Are written in different programming languages using multiple development tools

Might involve different products

May be deployed to multiple target runtimes

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

Can be delivered, transported, linked to SAP software components, and deployed

The process can be automated in a continuous integration pipeline

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.

We recommend that you use multitarget applications in the following cases:

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 Business Application Studio, see MTA Development.

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.

Establishing a Provider/Subscriber Scenario Using Multitenancy


The provider/subscriber approach is one of the important scenarios that are supported with multitarget application.

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

Developing Multitenant Applications in the Cloud Foundry Environment

Develop a Multitenant Extension Application in SAP BTP, Kyma Runtime

Adding Authentication and Authorization


As part of application development, developers create a role template during design time, which consists of scopes and attributes.
Once the application is deployed, an administrator can create a role from this role template, which can then be assigned to a role
collection.

For more information about the relevant security aspects and how to set those up, see Adding Authentication and Authorization.

Security Considerations for Applications


When building applications, use the security features of SAP BTP, such as protection from web attacks. We recommend that your
developers configure and deploy application-based security artifacts containing authorizations, and administrators assign these
This is custom documentation. For more information, please visit the SAP Help Portal 45
10/23/24, 6:57 PM
authorizations using the cockpit. SAP BTP offers platform roles that help you ensure a segregation of duties, such as between app
development and administration.

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:

CAP Security Guide

Giving Access Rights to Platform Users

SAP BTP Security Recommendations

Developing Resilient Applications


Our best practices about resilient application design help you to make your applications running on SAP BTP stable and highly
available.

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.

Developing Resilient Applications in Cloud Foundry

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

Developing Resilient Applications in Kyma


Learn how to develop stable Kubernetes and microservice-based applications, as well as Istio-related resiliency tips with Deploy
Resilient Applications in the Kyma Runtime.

Related Information
Resilience, High Availability, and Disaster Recovery (Cloud Foundry, ABAP and Kyma Environments)

Extending Existing SAP Solutions Using SAP BTP


SAP BTP offers services, tools, and capabilities to develop, extend, or integrate business applications in the cloud. You can
implement additional workflows or modules on top of existing solutions, which lets you benefit from out-of-the-box security,
inherited data access governance, user interface embedding, and so on.

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:

SAP S/4HANA Cloud In-App Extensibility

SAP SuccessFactors Extension Center: In-App Extensions

Side-by-side extensions: allows you to integrate with your SAP solution additional business functionality deployed in SAP
BTP.

The advantages of the side-by-side extensions can be grouped in these categories:

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.

Operations: you can share the extensions

When planning your extension, consider these recommendations:

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.

Extensions with Automated Configurations

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.

The following SAP solutions currently support the automated configurations:

SAP S/4HANA Cloud

SAP SuccessFactors

SAP Cloud for Customer

SAP Commerce Cloud

SAP Field Service Management

Use Cases
The extension use cases include but are not limited to:

Extending the user interface of your SAP cloud solution.

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:

SAP App Center

SAP BTP cockpit

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.

SAP S/4HANA Cloud

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)

SAP Extensibility Explorer for SAP S/4HANA Cloud

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)

SAP Customer Experience (CX) products

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)

Extend SAP SuccessFactors on SAP BTP (Mission in Discovery Center)

Build Resilient Cloud Native Applications (Mission in Discovery Center)

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

Performing UI, Usability, and Unit Tests


You should always conduct careful testing to ensure that your application is of high quality. Create a release candidate to
propagate throughout your landscape.

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.

Testing in SAP Web IDE


SAP Web IDE empowers developers to test and evaluate the functionality and performance of their apps:

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.

Run and Scale


There are two things you have to take into account to ensure your application is working properly, and bringing value:

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.

See Operating with SAP Cloud ALM.

Operating with SAP Cloud ALM


SAP Cloud ALM, where ALM stands for application lifecycle management, is included in your SAP Cloud Service subscription
containing Enterprise Support, cloud editions, in SAP Enterprise Support and in Product Support for Large Enterprises.

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.

Health Monitoring: Gain insights on application health based on technical metrics.

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

Application help for SAP Cloud ALM for Operations

SAP Cloud ALM for operations (SAP Support Portal)

Expert Portal for SAP Cloud ALM Operations (SAP Support Portal), with detailed configuration instructions

Related Information
Operate

Programming Model Specifics


Each programming model has certain aspects that are unique to it, such as the programming language but also other aspects
related to the different run-times. In the following two sections, we provide concrete guidance for each of the two programming
models:

ABAP Cloud

SAP Cloud Application Programming Model (CAP)

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

The ABAP RESTful Application Programming Model (RAP)

The cloud-optimized ABAP language for the business logic

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 development model has two additional key differentiators:

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.

Use Cases for Developing with ABAP Cloud


With ABAP Cloud, you can cover a variety of use cases for different scenarios. The development path is structured according to the
consumers: Either the consumer is a user or system, meaning either you want to create an app to manipulate or display data or
you want to exchange data between systems with different protocols to create business processes with system-to-system
communication.

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

Tutorials for ABAP Cloud


The ABAP Cloud best practices are documented in the form of step-by-step tutorials for learning how to develop and deploy full-
stack transactional and analytical applications using the ABAP RESTful Application Programming Model (RAP) and embedded
analytics.

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]

Get to Know the ABAP RESTful Application Programming Model

Create Database Table and Generate UI Service

Enhance the Business Object Data Model and Enable OData Streams

Enhance the Business Object Behavior with Unmanaged Internal Numbering

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

Enhance the Business Object Behavior with Validations

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]:

Enhance the Business Object Behavior with Instance Actions

Enhance the Business Object Behavior with Factory Action

Enhance the Business Object Behavior with Dynamic Feature Control

Write an ABAP Unit Test for the RAP Business Object

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 Design Principles

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:

Efficiency increase and scalability

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.

Adaptability and maintenance

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.

Benefits of the Model-Driven Approach


A standardized architecture approach saves you time and scales easily with multiple apps or services. In case of ABAP Cloud, also
ensures the separation of concerns between data model behavior, and service exposure ensuring interoperability between
different use cases, so that you can reuse data models for different purposes like analytical reports and transactional apps at the
same time.

Transactional Consistency Across Applications and Services


Interoperability is guaranteed because all implementations adhere to the same technical rule set, and the framework determines
the technical contracts and process flows. This enables you to design end-to-end processes without having to worry about how to
implement an authorization or locking concept for only for one specific part of the process. Instead, you make process design
decisions that incorporate the technological advantages of the different ABAP Cloud technologies, frameworks, and building
blocks in each step of a process. For more details about transactional consistency, see Transactional Consistency.

Related Information
Design a Transactional Application
Design an Analytical Application
Design an Integration Service

Design a Transactional Application


Transactional applications and services implement use cases where read, create, update, or delete operations on the data set are
required.

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.

Design an Analytical Application


Analytical Applications implement use cases where multi-dimensional data models are queried to analyze business data and
derive business KPIs. The main focus is on creating data models to analyze business data in embedded or cross-system setups
and to visualize the data in dashboards or as part of apps.

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.

Design an Integration Service


Integration Services implement system-to-system communication use cases to enable data or process integration between
systems across a range of different protocols and frameworks.

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

Design a Multitenant Application


You can use the multiclient architecture of the ABAP system for multitenancy enablement and list the design principles to reach
multitenancy.

Store tenant-related data in client-dependent tables of type A, C, or L.

Store system-related data in client-independent tables of type S.

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:

Tenant Content (client-dependent)

Tenant configuration data – tables with delivery class “C”

Tenant application data – tables with delivery class “A”

Tenant temporary data – tables with delivery class “L”

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.

During tenant deletion, the content of all client-dependent tables is removed.

The delivery class must be “C”, “A”, or “L”.

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.

See Multitenancy Development Guideline.

Develop

Develop Applications, Extensions and Services with ABAP Cloud


You can develop new apps and services from scratch or extend existing SAP or custom services in an upgrade-safe way. To create a
new app and services, you implement the domain-specific implementation including the respective data model and business logic
according to the selected use case. All domain-specific data models based on RAP architecture blueprint bring extensibility as a
built-in quality. Generally, extensibility is based on an opt-in approach, meaning that the original data model or service must be
enabled for the different extensibility use cases.

See:

Develop a Transactional Application

Develop an Analytical Application

Develop an Integration Service

Develop a Multitenant Application

Develop a Transactional Application


Transactional applications in ABAP Cloud provide a robust and scalable solution for managing business processes and data. The
ABAP RESTful Application Programming Model (RAP) defines how transactional applications are built. The following graphic
shows the big picture:

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.

Develop Authorization Control

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.

Develop Concurrency Control


Concurrency control prevents concurrent and interfering database access of different users. This ensures that data can only be
changed if data consistency is assured. In RAP, you can either implement optimistic or pessimistic concurrency control:

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).

Develop User Interfaces

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 BTP, ABAP Environment UI Development

SAP Fiori Element Feature Showcase Application for the ABAP RESTful Application Programming Model

Develop Events or Include Reuse Services


With RAP, you can implement asynchronous process integration using remote or local events. Events allow you to implement a
publisher – subscriber pattern with different consumers. Reuse services offer general capabilities that are required by multiple
services, applications, and business areas. You can choose from a variety of reuse services that are ready-to-run, ranging from
applications jobs over logging, forms, and emails up to change documents or the workflow.

For more information, see Business Events for Process Integration.

Define or Develop Extensions for a RAP Business Object


RAP offers the possibility to develop semantically rich, upgrade-safe, and lifecycle-stable extensions for business objects. An
original business object developed by an extensibility-enabler is extended with additional functionality to extend the functional
scope of the original RAP business object. Using well-defined extension points enabled in the original business object, an
extension provider can then extend the original data model and behavior in accordance with the business requirements or create
their own business service based on an RAP business object interface.

Extensibility Use Case Extensibility Persona More Information

Data Model Extension Extensibility-Enabler


For more information about
Build full-stack data model extensions by Adds annotations and extension include enabling full-stack data
adding new fields and associations structures to the original RAP business extensibility, see Extensibility-
including corresponding behavior object to enable data model extensions. Enablement for CDS Data Model
characteristics and authorization control. Extensions.

For an implementation example,


see Enabling Data Model
Extensions.

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.

Behavior and Field-Related Behavior Extensibility-Enabler


For more information about
Extensions
Enables data model extensibility and enabling your business object for
Build additional behavior like new behavior extensibility on the original RAP behavior extensions,
validations, determinations, or actions business object. see Extensibility-Enablement for
including dynamic feature control and other Behavior Extensions.
field-related behavior.
For an implementation example,
see:

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

Extensibility Use Case Extensibility Persona More Information

Enabling Standard Behavior


Extensions

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.

Node Extensibility Extensibility-Enabler


For more information about node
Build additional business object nodes with Enables node extensibility on the original extensibility enabling,
own behavior and data model with node RAP business object. see Extensibility-Enablement for
extensibility. Node Extensibility.

For an implementation example,


see Enabling Node Extensions.

Extension Provider For more information about how to develop


node extension, see Node Extensions.
Extend the original business object with
new nodes that have their own data model
and behavior.

Develop Tests

Develop Unit Test for the Transactional Services

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.

For an example, see:

Developing Unit Tests for a CDS View

Developing Unit Tests for a Behavior Implementation

Develop Integration Tests for Transactional Services

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 an example, see:

EML Integration Tests

OData Integration Tests

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

Develop an Analytical Application


Embedded analytics allows you to build complex analytical data models to evaluate and analyze business data in your ABAP
system. In embedded analytics, the ABAP analytical engine is part of the software stack and operates on the same data
persistence as the transactional applications. The analytical queries operate directly on the business data without data replication
to an external data warehouse system. Instead, the real-time business data is queried to always evaluate the most recent changes
and trends in your business data.

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.

Calculate Measures and KPIs


Calculating KPIs for forecasts or decision-making is an integral task for analytical reports. To calculate numeric fields like
measures or KPIs you can aggregate data based on different rule sets, like, for example, sum or average. In ABAP Cloud, the
standard aggregation behavior is summation (SUM), minimum (MIN), and maximum (MAX).

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.

For more information, see:

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

Define or Develop Extensions for Analytical Applications


In an analytical data model, each part of the data model can be extended individually using predefined extension points in the
original analytical data model. As extensibility-enabler, you can make your own analytical data models extensible. All parts of the
analytical provider can be extended. You can, for example, add new dimensions to a cube to enhance the reporting depth or you
can add additional hierarchies to enable additional navigation throughout the data set. The following graphics show you where
analytical data models can be enabled for extensibility.

Extensibility Use Case Extensibility Tasks

Dimension Extension Extensibility-Enabler

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 hierarchy

To extend a dimension with a new hierarchy, create a new


hierarchy and add it as an association to the corresponding
dimension.

Add new field extension

Extend the original dimension with additional fields.

Cube Extension Extensibility-Enabler

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 dimension

To extend a cube with a new extension, create a new


dimension, or use a predelivered SAP dimension and add it
as an association to the corresponding dimension.

Add new field (measure)

Extend the original cube with additional measures for new


calculations.

Analytical Query Extensions Extensibility-Enabler

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

Add new fields to extend the scope of the data analysis.

This is custom documentation. For more information, please visit the SAP Help Portal 66
10/23/24, 6:57 PM

Extensibility Use Case Extensibility Tasks

Service Definition Extension Extensibility-Enabler

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

Create a custom UI based on a released UI to adapt the UI


to your business requirements.

Add a new query to a service definition to extend the


original service definition with additional queries.

Develop Unit Test for the Analytical Applications


You can use the CDS test double framework to implement unit tests for the multidimensional data model and the standard
aggregations. For the analytical query, manual tests ensure that all additional calculations and measures work as expected.

For an example, see Developing Unit Tests for a CDS View.

Develop UIs for Analytical Applications


Analytical services use the Analytics Details annotations to specify the analytical query layout and to specific aggregation and
planning behavior of the data.

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.

For more information, see AnalyticsDetails Annotations.

Develop an Integration Service


Integration services allow you to create connections to other systems using different protocols. This enables seamless
communication and data exchange between services and applications, as well as the ability to build end-to-end business
processes across system boundaries. ABAP Cloud supports integration with various integration partners such as SAP cloud
products, SAP BTP services, customer extensions, and external services.

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.

Process and Data Integration


ABAP Cloud offers various possibilities to integrate with other systems using the OData, SOAP, HTTP, RFC, and SQL protocols. In
addition, you can use the SAP Event Mesh to expose and consume business events:

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.

ABAP Cloud supports two main integration use cases:

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.

For more information, see:

Develop Integration Services

Decide on Integration Use Case: a use case overview

Choose and Integration Protocol and Communication Pattern: a protocol and communication pattern overview

Expose Integration Services


ABAP Cloud enables the exposure of business services to other systems via inbound communication. To make an integration
service externally available, you must:

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.

Set up communication management

Prepare administrative setup for the administrator by creating, for example, a communication scenario.

Develop Integration Services for Process Integration


ABAP Cloud supports various protocols like HTTP, remote function calls or services published via service bindings, such as OData
for process integration.

Develop OData Web APIs


An OData API is an OData service whose metadata doesn't entail any UI-specific annotations that are defined for the data model.
An OData API facilitates the exchange of business information between an application and any client. OData APIs are defined with
the ABAP RESTful Application Programming Model.

For more information, see Develop Web APIs.

Develop HTTP Services


You can develop an HTTP service by creating an HTTP service object. The required handler class to handle the HTTP request is
automatically created with the HTTP service object. The interface IF_HTTP_SERVICE_EXTENSION with HTTP request/response
parameters, enables you to build an HTTP service with full flexibility.

For more information, see:

HTTP Service Development

Working with the HTTP Service Editor (ABAP Development Tools: User Guide)

Develop RFC Services


You can create an RFC service based on a remote-enabled functions module. You've full flexibility regarding the implementation
details.

For more information, see RFC - Inbound Communication.

Develop SQL Services for Data Integration


You can access CDS view entities in an ABAP system using SQL and the open database connectivity (ODBC), a standard API for
accessing databases. As a result, you can use SQL statements in external analytical tools to access data in database tables that
reside in an ABAP system.

For an example, see:

Developing and Exposing an SQL Service in the ABAP System

Exposing the SQL Service for Privileged Access

Exposing the SQL Service for Business User Access

This is custom documentation. For more information, please visit the SAP Help Portal 69
10/23/24, 6:57 PM

Setting up the Communication Management for Inbound Communication


You have to create a communication scenario with inbound services for the exposed endpoints of the communication partner. This
enables the administrator of the system to set up the integration, for example, by creating credentials for the authentication of the
communication partner and assigning corresponding authorizations to the communication user in the Communication
Management applications.

For more information, see Consuming Services in the Context of API with Communication Users (Inbound).

Consume Integration Services


Not all data that is consumed in ABAP Cloud is read from the SAP HANA database. Instead, data can be consumed using outbound
communication via many protocols from remote integration partners, both from cloud services and from the on-premise
landscape. For outbound communication, you must:

Implement the business service consumption

Create a proxy class to create the request and process the response by the communication partner.

Set up the communication management

Prepare integration setup for the administrator by creating, for example, a communication scenario.

Consume Services for Process Integration


To simplify the implementation of a remote call, you can create a service consumption model for the external service. The service
consumption model creates proxies for the remote service. That way, you can access the service in a strictly typed manner without
the need to compile requests and parse responses.

Consume OData Services


The OData client proxy is the interface between the client (consumer of a service) and the service implementation (data
provisioning) in the OData service consumption in ABAP. The OData client proxy enables you to create an OData-typed proxy to
run OData requests in your ABAP implementation.

For more information, see OData Services.

Consume HTTP Services


You can implement free-style integrations without generated proxies via the HTTP client library.

For more information, see Enable HTTP Communication in Your ABAP Code.

Consume Remote Function Call Services


You can generate a typed-proxy for calling one or more remote-enabled function modules (RFMs) using a service consumption
model or directly use the CALL FUNCTION...DESTINATION statement.

For more information, see:

RFC

Generating Proxies for Remote Function Call (RFC)

This is custom documentation. For more information, please visit the SAP Help Portal 70
10/23/24, 6:57 PM

Consume SOAP Services


You can generate a service consumption model that is based on a Web service description language (WSDL) file describing your
service.

For more information, see SOAP.

Consume SQL Services for Data Integration


After installing the ODBC driver for ABAP, the SQL service and the ODBC driver can be used to provide data access from external
ODBC-based clients.

For more information, see Consumption of the SQL Service and the ODBC Driver for ABAP.

Set Up Communication Management for Outbound Services


You've to create a communication scenario with outbound services for the endpoints of the communication partner. This enables
the administrator of the system to set up the integration by maintaining the credentials for authentication at the communication
partner in the Communication Management apps, see Consuming Services in the Context of API with Communication Users
(Outbound).

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.

Develop Event-Based Integration


Event-driven architecture enables asynchronous communication between an event provider and an event consumer in use cases
where no direct response from the event consumer is required. Events represent a significant change of state that is relevant for
follow-up processes, for example, if a new travel is created and you want to enable consuming applications to trigger additional
workflows.

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.

Expose Business Events


The development of business events is natively integrated with the ABAP RESTful Application Programming Model. An event, that
is defined in an RAP behavior definition, can be exposed to remote consumers by assigning an event binding. The event binding
defines the topic of the event.

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.

For more information, see:

Business Events

Develop Business Events

Checking Channel Binding

Extend Business Events


This is custom documentation. For more information, please visit the SAP Help Portal 71
10/23/24, 6:57 PM
You can customize the payload of an event with derived events. A derived event is defined with reference to an already
implemented event and allows the definition of a payload that deviates from one of the referenced business events. When the
referenced event is raised, the derived event is raised as well, and the custom payload is applied. For more information, see Derived
Business Events.

Consume Business Events


To consume events from other systems remotely, you can generate an Event Consumption Model based on the AsyncAPI
metadata of the event. The Event Consumption Model generates a typed handler class to process the event.

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.

For more information, see:

Business Event Consumption

Generating an Event Consumption Model

Develop a Multitenant Application


Multitenancy in the SAP BTP, ABAP environment enables independent software vendors or partners, which are the
application providers, to develop and operate ABAP solutions as software as a service (SaaS). It leverages the SAP BTP
infrastructure while hosting several consumers on the same ABAP system. The resources on SAP BTP consumed by the solution
are paid for by the application provider.

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.

For more information, see:

Software Components

Manage Software Components

ABAP Environment Pipeline

Additional Considerations for Partners


There are two different models for offering and deploying your solution.

1. As a multitenant SaaS solution:

You offer a cloud service

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 installation will be possible via Landscape Portal on customer side

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

SAP Cloud Application Programming Model (CAP)

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:

On top of open-source technologies, CAP mainly adds:

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.

See Grow as You Go in the CAP documentation.

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

Tutorials for SAP Cloud Application Programming Model


The Incident Management sample application is a showcase of the SAP Cloud Application Programming Model (CAP) and adheres
to the development recommendations set out in the SAP BTP Developer’s Guide. Best practices are documented in step-by-step
tutorials based on the Incident Management application for learning how to develop, deploy, and operate a full-stack application
using CAP and SAP Fiori. The tutorials also show how to use a set of important SAP BTP services in a CAP application.

When going through the sample application, you can choose from two options to try its services and runtimes before you purchase
them:

Free tier for SAP BTP is best for productive projects:

Access a productive account

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.

SAP BTP trial is best for learning purposes:

Gain instant and full access to a trial environment

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

See Start your free 90-days trial .

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:

Starter Mission: Develop a Full-Stack CAP Application

Mission: Develop a Side-by-Side CAP-Based Extension Application

Mission: Implement Observability in a Full-Stack CAP Application

Mission: Develop an Enterprise-Grade CAP 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

Starter Mission: Develop a Full-Stack CAP Application


The starter mission is called Develop a Full-Stack CAP Application Following the SAP BTP Developer’s Guide and contains
tutorials grouped in the following way:

The Develop a Full-Stack CAP Application group of tutorials covers the following steps for developing the Incident
Management sample application:

Setting up the development environment.

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.

Using SAP Build Work Zone, standard edition.

Setting up continuous integration and delivery pipeline in SAP BTP.

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:

Deploying the application in a productive account in SAP BTP, Kyma runtime.

Using SAP Build Work Zone, standard edition.

Setting up continuous integration and delivery pipeline in SAP BTP.

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.

Mission: Develop a Side-by-Side CAP-Based Extension


Application

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:

Connect to a remote service

Option 1a: SAP BTP, Cloud Foundry runtime and mock server

Option 2a: SAP BTP, Cloud Foundry runtime and SAP S/4HANA Cloud

Option 3a: SAP BTP, Kyma runtime and mock server

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 3b: SAP BTP, Kyma runtime and mock server

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.

Mission: Implement Observability in a Full-Stack CAP Application


This is custom documentation. For more information, please visit the SAP Help Portal 79
10/23/24, 6:57 PM
You can add observability to the Incident Management application. Observability helps make informed decisions using real-time
data like logs, metrics, traces, and events. It provides insights into SAP and customer systems to improve efficiency, scalability,
resilience, and availability.

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

Mission: Develop an Enterprise-Grade CAP Application


You can develop enterprise-grade CAP applications and deploy them in SAP BTP. The Develop an Enterprise-Grade CAP
Application Following the SAP BTP Developer’s Guide mission includes options for tracking changes, adding audit logs, and
uploading attachments.

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.

Mission: Develop a Multitenant CAP Application

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.

With tenant-aware applications, you can:

Separate data securely for each tenant

Save resources by sharing them among tenants

Update applications efficiently, in a single step

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

CAP Design Principles


SAP Cloud Application Programming Model (CAP) focuses on the domain of the application, by capturing domain knowledge and
intent instead of imperative coding. This means:

Close collaboration of developers and domain experts in domain modeling.

Out-of-the-box implementations for best practices and recurring tasks.

Platform-agnostic approach to avoid lock-ins, hence protecting investments.

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:

Platform-specific deployment approaches and techniques

Platform-specific identity providers and authentication strategies

Onboarding and offboarding of tenants in Software-as-a-Service (SaaS) solutions and tenant isolation

Synchronous protocols like REST, OData, or GraphQL

Asynchronous channels and brokers like SAP Event Mesh, Message Queue, or Kafka

Different database technologies including SQL and NoSQL

These abstractions allow CAP to quickly adapt to new emerging technologies or platforms, without affecting the application code.

Open and Opinionated Design

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.

Out-of-the-box support for SAP Fiori and SAP HANA.

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)

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 .

Development of user interface

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 .

Localization, and internationalization

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

To learn how to test a CAP application, see Testing with cds.test .

Runtimes

Cloud Foundry Kyma

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

Cloud Foundry Kyma

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.

Development Options Overview


The following graphic is designed to help you find the information you need for your programming purposes. The bottom row
represents the tools, frameworks, services, and deployment options recommended by SAP. If you want full flexibility you can also
bring your own development tools and languages, as shown in the top row.

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.

The Recommended Path


This development approach offers guidance for important development decisions and features proven best practices
recommended by SAP. You can follow a model path for application and service development that is based on the Cloud Application
Programming Model (CAP). When working with CAP, we recommend using Java and Node.js because they receive the highest level
of tool support and are well suited for most use cases. This path provides you with a list of key aspects to consider, but the order
shown in these steps isn't mandatory. You can adapt the steps as you wish to better fit your use case.

Tutorials and End-to-End Scenarios

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.

Develop the User Interface


This is custom documentation. For more information, please visit the SAP Help Portal 87
10/23/24, 6:57 PM
There are three approaches to develop the UI using SAP Fiori:

Freestyle SAPUI5

SAPUI5 with SAP Fiori elements

Freestyle SAPUI5 with flexible programming model

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.

See Developing Apps .

SAPUI5 with SAP Fiori Elements

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.

See Developing Apps with SAP Fiori Elements .

Freestyle SAPUI5 with Flexible Programming Model

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.

When to Use What


To make the right decision out of these three options, it's important for you as an application developer to understand their
features and limitations. The overall recommendation would be to use as much SAP Fiori elements as possible, as much SAPUI5
freestyle as needed.

This is custom documentation. For more information, please visit the SAP Help Portal 88
10/23/24, 6:57 PM

When UI Design Requirements Match SAP Fiori Elements Floorplans

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.

Deploy in Cloud Foundry Runtime


After completing the functional implementation of the CAP application by following the best practices, you can deploy your
application in the cloud for productive usage. The essential steps are illustrated in the following graphic:

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

Deploy in Kyma Runtime

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.

In consequence, two kinds of artifacts are needed to run applications on Kubernetes:

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, storage, and analysis of application logs, metrics, and traces

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

Configurable data retention management

Fine-grained access and content management

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

You might also like