You are on page 1of 104

ABAP Platform in

SAP S/4HANA 2023


Overview and product
highlights

ABAP Platform Product Management, SAP SE


November 2023

PUBLIC
Agenda
ABAP PLATFORM OVERVIEW

ABAP CLOUD DEVELOPMENT MODEL

ABAP PLATFORM 2023 PRODUCT HIGHLIGHTS


ABAP development tools
ABAP language today
SAP HANA-centric optimizations
ABAP RESTful Application Programming Model
ABAP analytics
ABAP code analysis tools
Custom code adaptation for SAP S/4HANA and ABAP Cloud
Integration, connectivity and security

SAP SAP S/4HANA EXTENSIBILITY

SAP BUSINESS TECHNOLOGY PLATFORM (BTP)


ABAP ENVIRONMENT

SUMMARY

Public 2
ABAP PLATFORM OVERVIEW
ABAP Platform – Some keys and figures

ABAP PLATFORM
Foundation for SAP’s ERP applications
Be it on-premise or cloud

Build, operate and support mission critical business solutions and extensions
for SAP, customers and partners

> 100.000 productive SAP systems based on ABAP


~ 20.000 custom ABAP objects per average SAP ERP system 1
~ 670 certified ABAP partner solutions 2
~ 250 million ABAP lines of code in SAP S/4HANA 3
~ 5 million registered ABAP developers
~ 5000 SAP ABAP developers work on new SAP S/4HANA versions

1 Early Watch Alert data from 33.000 ECC and SAP S/4HANA systems
2 Certified ECC, SAP NW and SAP S/4HANA partner add-ons
Public 3 Lines of code: SAP S/4HANA Architecture Cockpit 4
ABAP Platform – Foundation of SAP’s ERP applications

SAP SAP SAP SAP ABAP Cloud based


BUSINESS S/4HANA S/4HANA S/4HANA SAP BTP solutions &
SUITE any premise Cloud, Cloud, extensions
& SAP NetWeaver products private public
like SAP BW, SAP PI, … edition edition

RISE with SAP GROW with SAP INTEGRATE

ABAP Platform 2023 ABAP Platform SAP BTP ABAP


SAP NetWeaver Cloud Environment
No new releases, only patches Every 2 years a new release Half-yearly releases
Any database Quarterly releases
SAP HANA only SAP HANA only SAP HANA Cloud only

Improvements ONE COMMON ABAP PLATFORM INNOVATION CODELINE

Maintenance ends
Maintenance until 2040
2027/2030
Public 5
ABAP Platform 2023 at a glance
ABAP Cloud development model to build cloud-ready business apps, services or extensions

High developer efficiency with enhanced ABAP language and ABAP Development Tools in Eclipse

Easy usage of advanced native SAP HANA capabilities using ABAP Core Data Services and ABAP-managed database Procedures and
functions, incl. SQL-based and analytical scalar functions, and CDS types

ABAP RESTful Application Programming Model for the efficient development of SAP HANA-optimized, transactional SAP Fiori applications
and Web APIs, incl. business events, hierarchical tree views, side effects, and end-to-end extensibility options

Development of multidimensional analytical business apps and services using ABAP analytics

Efficient quality assurance tools supporting custom code migration to SAP S/4HANA, adoption of ABAP Cloud for new developments and
adaptation of existing custom code for ABAP Cloud

Enterprise event enablement of SAP S/4HANA with local event consumption and remote event consumption via SAP Event Mesh on
SAP BTP, including advanced SAP Event Mesh for SAP Integration Suite
SQL services for consumption via ODBC based clients

One common SAP S/4HANA extensibility model for all SAP S/4HANA cloud and on-premise editions using ABAP Cloud as development
model and supporting key user extensibility, on-stack developer extensibility and side-by-side extensibility options

Public 6
THE ABAP CLOUD DEVELOPMENT MODEL
ABAP Cloud

… is the ABAP development model to build cloud-ready


business apps, services or extensions

… compliant with clean core principles

… comes with SAP BTP and SAP S/4HANA

… works with public or private cloud, and even on-premise

Public 8
The evolution to ABAP Cloud

2012 2015 2018 09/10.2022

ABAP Cloud

Public * SAP Business Technology Platform 9


ABAP Cloud – What’s in it?

DEVELOPMENT
MODEL
ABAP Cloud

TRANSACTIONAL REUSE SERVICES AND LIBRARIES

ANALYTICAL BUILT-IN QUALITIES

INTEGRATION LIFECYCLE MANAGEMENT

PROGRAMMING MODEL TOOLS

CONTAINING

BUSINESS SERVICE EXPOSURE

DOMAIN-SPECIFIC IMPLEMENTATION

DATA ACCESS

Public More in the blog post ABAP Cloud - What does it comprise? 10
ABAP Cloud – High-level abstraction model

BUSINESS UI SERVICES INTEGRATION SERVICES

Output Management, Jobs, SAP Workflow Mgmt, XCO,...

Git based code management with gCTS and abapGit


SERVICE OData and SAP Information Access (InA) OData, Events, HTTP, RFC, SQL
EXPOSURE for SAP Fiori and analytical clients for application and data integration

Cloud-readiness, IAM3, BC4, extensibility,...

ADT5, BAS6, Key User & Monitoring Tools


REUSE SERVICES AND LIBRARIES

LIFECYCLE MANAGEMENT
BUILT-IN QUALITIES
DOMAIN-SPECIFIC MODELS
CDS1 entity, RAP2 Business Object, CDS analytical provider

TOOLS
DOMAIN-SPECIFIC
IMPLEMENTATION
DOMAIN-SPECIFIC LOGIC
ABAP, CDS

BUSINESS INTEGRATION SERVICES


DATABASE SAP HANA SERVICE OData, SOAP, Events, HTTP, RFC
SQL and SQLScript CONSUMPTION for application integration

1 Core Data Services 3 Identity 5 ABAP


Public & Access Management Development Tools 11
2 ABAP RESTful application programming model 4 Business 6 SAP
Configuration Business Application Studio
ABAP Cloud – One development model for SAP S/4HANA and SAP BTP

SAP S/4HANA SAP S/4HANA Cloud, SAP S/4HANA Cloud, SAP BTP,
any premise 1 private edition 1 public edition 2 ABAP Environment

ABAP Cloud development model


to build cloud-ready business apps, services, and extensions

Classic ABAP development model

1 SAP S/4HANA any premise or SAP S/4HANA Cloud, private edition release ≥ 2022
2 SAP S/4HANA Cloud, public edition release ≥ 2208, 3-system landscape required

Public 12
ABAP PLATFORM 2023
PRODUCT HIGHLIGHTS
ABAP DEVELOPMENT
TOOLS IN ECLIPSE
Efficient ABAP development in Eclipse

HIGH DEVELOPER PRODUCTIVITY ON-PREMISE AND IN THE CLOUD

MODERN DEVELOPMENT TOOLSET


Fully eclipse-based
Syntax check, code completion
Navigation, search, quick fixes
Full support for the ABAP RESTful
Application Programming Model and CDS

QUALITY ASSURANCE
Static code checks (ATC, CVA) with
remote and local scenarios
Unit testing incl. isolation frameworks
Test seams and injections

SUPPORTABILITY
Debugging, profiling, tracing
Static and dynamic logging
Runtime monitoring and analysis

Public 15
Modern ABAP development in Eclipse – ABAP Platform 2023 feature scope

DEVELOPMENT
Enhancements for RAP, ABAP CDS and SAP HANA
New Object Set Playground View
Reworking the ABAP Object Search (Ctrl + H)
New Table Index editor and Extension Index editor: to create and edit database table indexes and extension indexes
Data Preview: view specific columns and set filters to restrict the entries, editor: copy contents of columns and cells
ABAP Formatter: format VALUE statements
New Custom Fields display editor (Key User extensibility)
Compare two different objects of the same type in the Project Explorer (in the same project or across different projects)
Improvements in Element Information: display appends for tables and structures, display primary and secondary keys for internal tables and RAP types

TRANSPORTS
Transport Organizer View Configure tree hierarchy
View Action Logs in the transport Request editor or from the Transport Organizer View
Transport Editor: group the ABAP objects in the transport by object type

QUALITY AND TROUBLESHOOTING


abapGit support of ABAP test cockpit objects
New ABAP Memory (Debugger) View to display memory consumption of a debugged ABAP program
Analysis of ABAP dumps is now only possible if a user is assigned the authorization object S_ABAPDUMP

Public 16
ABAP Development Tools for Eclipse (1)

ENHANCEMENTS FOR RAP, ABAP CDS AND SAP HANA DEVELOPMENT

Relation Explorer, BO context: navigation to the base behavior definition


BDEF extensions are now shown in the Element Information popup
Migrate CDS-based BOPF BO to RAP BO using the migration wizard
Migrate CDS DDIC-based views to CDS View Entities

Extend BDEF extensions and abstract BDEFs


ABAP Cross Trace: display the record stack (condensed list of the parent procedures) of a trace result in the Properties View
Configure the new RAP Contract Check Violations feed query to display all contract check violations found by the RAP runtime

Public 17
ABAP Development Tools for Eclipse (2)
NEW OBJECT SET PLAYGROUND VIEW

New Object Set Playground view to create and combine object sets with the goal to perform different
actions on the contained objects.
Creating, editing, and deleting different kinds of object sets
Displaying the list of objects defined by an object set
Displaying object relations of two object sets
Performing mass operations on the objects from an object set (e.g. running ABAP test cockpit checks or ABAP unit tests)

Public More details in SAP Help Documenation Object Set Playground 18


ABAP Development Tools for Eclipse (3)

REWORKING ABAP OBJECT SEARCH

Improvements in ABAP Object Search (Ctrl + H)


Additional filter options in the Property Filter
More options to sort and group results in the Search View
Additional object types (e.g. behavior definitions) are supported and can be found

Public 19
ABAP Development Tools for Eclipse (4)

NEW CUSTOM FIELDS EDITOR (KEY USER EXTENSIBILITY)

Custom Fields editor to display custom fields which have been created with the
Custom Fields and Logic app

Public More details in SAP Help Documenation Working with Custom Fields 20
ABAP Development Tools for Eclipse (5)

abapGit SUPPORT OF ABAP TEST COCKPIT OBJECTS

Export and import of ATC check objects, ATC check variants and ATC check categories across on-premise and
cloud ABAP systems

Check out: Export and import ATC objects across on-premise and cloud ABAP systems

NEW ABAP MEMORY (DEBUGGER) VIEW

Investigate changes in the memory consumption of your ABAP application while debugging it

More details in SAP Help Documenation ABAP Memory (Debugger) View

Public 21
ABAP LANGUAGE TODAY
Declarative and expression-oriented ABAP language

Simple and concise ABAP code through new language features


such as inline declarations, constructor expressions

Extensively expression-oriented syntax

Advanced table operations such as CORRESPONDING( ) operator,


grouping, and filtering

Cloud-optimized ABAP language version available for


cloud-ready development in the cloud and on-premise

Entity Manipulation Language (EML) to control the transactional business


object behavior in the RAP context and raising RAP events

JSON support in sXML library

Inline code documentation with ABAP Doc,


Development object documentation with knowledge transfer objects

Unit testing with ABAP Unit using test doubles and test seams More information:
ABAP Keyword Documentation

Public 23
The Entity Manipulation Language (EML) at a glance

Entity Manipulation Language

EXTENSION OF THE ABAP LANGUAGE CONTROL THE TRANSACTIONAL BO


with an SQL-like syntax BEHAVIOR IN RAP CONTEXT

DATA CONSISTENCY ENSURED BY DATABASE LUW


DIRECT API-BASED ACCESS TO RAP BOs
COMMIT operation required to persist changes

STANDARD EML API GENERIC EML API


for type-safe read and modifying access to RAP BOs generic framework integration of RAP BOs

Public
More in this blog post 24
ABAP language – ABAP Platform 2023 feature scope

ENHANCED ASSIGNEMENTS IN ABAP [link]


RETURN statement can be used in functional methods to assign the result of an expression expr to the return value when
terminating the method
DEFAULT as new addition to the CORRESPONDING operator to assign values to a target component based on an expression

NEW ABAP SYSTEM CLASSES [link]


New class CL_ABAP_BIGINT provides methods for calculations with arbitrary integer sizes
New class CL_ABAP_RATIONAL provides methods for calculating with rational numbers without loss of precision
New class CL_ABAP_DIFF compares the content of internal tables and return information about any differences found

NEW METHODS FOR EXISTING ABAP SYSTEM CLASSES [link]


CL_ABAP_TSTMP provides several new methods to round down the fractional seconds of long timestamps, instead
of the commercial rounding of the existing methods
CL_ABAP_BEHV_AUX provides the new method GET_CURRENT_PHASE to get information about the current RAP transactional
phase at runtime

ABSOLUTE TYPE NAMES FOR LINE TYPES [link]


New specification \LINE allows the line type of an internal table to be specified in an absolute type name.
\LINE can be followed by -comp to specify the type of a component of the line type

Public 25
SAP HANA CENTRIC
OPTIMIZATIONS
ABAP development for SAP HANA – Mainstream and code breakouts

MAINSTREAM
ABAP managed code pushdown

ABAP Core Data Services (CDS)


ABAP SQL

ABAP Managed Database Procedures


and Functions (AMDP)
CDS Table Functions and Hierarchies
SAP HANA BREAKOUTS

Public 27
ABAP CDS – Next generation data modeling and access

COMMON DATA MODEL

Semantically rich
Declarative

ABAP
Close to conceptual thinking

IMPROVED PROGRAMMING MODEL


CORE For all application domains

DATA
Rich set of built-in functions
Code pushdown capabilities
Declarative access control

SERVICES CAPTURE BUSINESS INTENT


Reduced complexity
Extending SQL

Public 28
ABAP CDS data models

NATIVE CONSUMPTION SERVICE CONSUMPTION


Web
ABAP SQL CDS AMDP EML SAP Fiori UI Analytical client SQL Events
APIs
CONSUMPTION

SERVICE BINDING

Extensions, includes, AMDP, Service definition extends


SERVICE DEFINITION

BUSINESS SERVICE PROJECTIONS AND INTERFACES


SERVICE
EXPOSURE

EXTENSIBILITY
CDS projection views
& DATA ACCESS

TUNING OBJECTS CDS DATA MODELS

ABAP tuning objects Domain specific data models


CDS access
CDS types
DATA CDS table functions for SAP HANA native
controls
SAP HANA tuning objects CDS modeling entities
MODELING objects (procedures, functions)

Public 29
ABAP CDS – Overview of supported CDS entity types
Category ABAP CDS Entity Type ABAP CDS Statement

Standard view building CDS View Entity DEFINE VIEW ENTITY


CDS Projection View DEFINE VIEW ENTITY AS PROJECTION ON
CDS Projection View – Analytical Query DEFINE TRANSIENT VIEW ENTITY AS PROJECTION ON
CDS DDIC-based View (deprecated) DEFINE VIEW

Type definition CDS Simple Type * DEFINE SIMPLE TYPE


CDS Enumerated Type * DEFINE TYPE ENUM

Advanced view building – SAP HANA breakout CDS Table Function DEFINE TABLE FUNCTION
CDS Hierarchy DEFINE HIERARCHY
CDS Scalar Function * DEFINE SCALAR FUNCTION

Advanced view building – External implementation CDS Custom Entity DEFINE CUSTOM ENTITY
CDS Abstract Entity DEFINE ABSTRACT ENTITY

Modification-free extension CDS Metadata Extension ANNOTATE VIEW


CDS View Extension (deprecated) EXTEND VIEW
CDS View Entity Extension EXTEND VIEW ENTITY
CDS Abstract Entity Extension EXTEND ABSTRACT ENTITY
CDS Behavior Extension EXTEND BEHAVIOR

Transactional behavior definition of business objects built CDS Behavior Definition (and Projection) DEFINE BEHAVIOR
with the ABAP RESTful Application Programming Model

Access control CDS Access Control DEFINE ROLE

Public * Available starting with ABAP Platform 2023 30


ABAP CDS – ABAP Platform 2023 feature scope (1)

SIMPLE TYPES [link]


Define custom scalar types with domain-specific metadata via CDS annotations
Combine the main features of DDIC data elements and DDIC domains

ENUMERATED TYPES [link]


Define enumerated types natively in ABAP CDS
Can be used in CDS data definition for typing, casting, or as an operand in different positions in CDS data definition,
ABAP SQL, and ABAP code

SQL-BASED AND ANALYTICAL CDS SCALAR FUNCTIONS [link]


Custom SQL-based scalar functions for the SAP HANA SQL runtime can be created by customers and partners
Analytical scalar functions created by SAP can be used in ABAP CDS

Public 31
ABAP CDS – ABAP Platform 2023 feature scope (2)

NEW CARDINALITY SYNTAX FOR ASSOCIATIONS AND JOINS IN ABAP CDS [link]
A new syntax allowing the specification of a source and a target cardinality to improve the query performance

ENHANCEMENTS FOR PROJECTION VIEWS


Define WHERE conditions in CDS transactional interfaces to restrict the result set
Use typed literals in WHERE condition of CDS projection views and in ON condition of CDS associations
Use analytical dimension views as data source of analytical CDS projection views

NEW AND ENHANCED FOR CDS ANNOTATIONS


Use the new @Environment.sql.passValueForClient annotation to specify whether a placeholder ? or a literal
value is passed to the database in an ABAP SQL condition when the client field is compared with a host variable. [link]
Use @Environment.sql.passValue also for CDS parameters in CDS view entities, CDS projection views, and CDS
hierarchies. [link]

Public More information in the ABAP Keyword documentation 32


ABAP CDS – ABAP Platform 2023 feature scope (3)

OBSOLETE TOPICS
ABAP annotation @AbapCatalog.preserveKey has become obsolete and now behaves differently. [Learn more]

NEW ACCESS RULES FOR CDS TRANSACTIONAL QUERIES


New type of access rules for CDS projection views of type CDS transactional query, i.e. with provider contract
TRANSACTIONAL_QUERY

NEW CDS DCL FUNCTIONS


New function SWITCH_RUNTIME_STATE to retrieves the runtime state of a switch in the Switch Framework, except for
switches of type Feature Toggle.
New function TOGGLE_RUNTIME_STATE to retrieves the runtime state of a switches of type Feature Toggle.

Public More information in the ABAP Keyword documentation 33


ABAP SQL – ABAP Platform 2023 feature scope

ABAP SQL EXPRESSIONS ON THE RIGHT SIDE


Define ABAP SQL expressions on the right side of a condition enclosed in parentheses

NEW CARDINALITY SYNTAX FOR JOINS IN ABAP SQL


New syntax allowing the specification of a source and a target cardinality in joins to improve the query performance

ACCESS TO MULTIPLE INTERNAL TABLES


It is now possible to process multiple internal tables accessed with FROM @itab within one ABAP SQL statement
Current restrictions: Only applicable to joins of internal tables where no database tables are involved

NEW ADDITION FOR A PRIVILEGED ACCESS TO CDS-BASED DATA MODELS


With the new addition PRIVILEGED ACCESS, CDS access control can be disabled for a complete SELECT statement

Public More information in the ABAP Keyword documentation 34


ABAP RESTFUL
APPLICATION
PROGRAMMING MODEL
Evolution of the ABAP programming model

ABAP PLATFORM ≤ 7.5 ABAP PLATFORM ≥ 7.5 SAP BTP


ABAP ENVIRONMENT
SAP S/4HANA CLOUD
SAP S/4HANA ≥ 1909

CLASSIC ABAP ABAP PROGRAMMING ABAP RESTful


PROGRAMMING MODEL FOR APPLICATION
SAP FIORI PROGRAMMING
MODEL (RAP)

CDS, CDS-based BOPF, SEGW


Best practice freestyle ABAP / @OData annotation with CDS, Behavior Definition &
programming, (Web) Dynpro, Referenced Data Source, Implementation, Business
CDS1 SAP Fiori, SAPUI5 Services, SAP Fiori, SAPUI5
1 starting with release 7.4 SPS 05

Safe investments!

Public 36
ABAP RESTful Application Programming Model (RAP)
At the heart of ABAP Cloud for transactional scenarios

SAP Fiori UI services


RAP – FOR EFFICIENT ENTERPRISE
Web APIs and local APIs
GRADE APPLICATION DEVELOPMENT
Events

CONCEPTS SERVICE DEVELOPMENT

TOOLS
Greenfield development

LANGUAGES Brownfield development

FRAMEWORKS UNIVERSALLY USABLE PROGRAMMING MODEL

BEST PRACTISES SAP BTP ABAP Environment

SAP S/4HANA, cloud and on-premise editions

AVAILABLE IN THE CLOUD AND ON-PREMISE

Public 37
ABAP RESTful Application Programming Model (RAP) – The big picture

UI SERVICES INTEGRATION SERVICES


UI services for SAP Fiori OData Web APIs, Business Events
BUSINESS based on OData
SERVICE
EXPOSURE
SERVICE BINDING
Service Projection, Service Definition, Event Binding

DOMAIN-SPECIFIC DATA MODELING


CDS1 Entity, RAP2 Business Object (BO)
DOMAIN MODEL &
IMPLEMENTATION
DOMAIN-SPECIFIC PROGRAMMING
ABAP, CDS

BUSINESS APPLICATION INTEGRATION


DATA SAP HANA SERVICE HTTP / REST, WebSocket RFC,
ACCESS SQL and SQLScript CONSUMPTION Business Events, OData, SOAP

Public 1 Core Data Services More information on the RAP Community page 38
2 ABAP RESTful application programming model
RAP extensibility options

SERVICE BINDING

SERVICE DEFINITION
Modification-free extension of RAP BOs

EXTENSION
SERVICE PROJECTION
and business services

EXTENSION
RAP BO INTERFACE
BUSINESS BO projection view BO projection view RAP extension points possible for …
SERVICE Behavior projection Behavior projection
EXPOSURE ❖ Data model extension
❖ BO behavior extension
❖ BO node extension

RAP BUSINESS OBJECT ❖ Service definition extension

EXTENSION
Data model Exposed in RAP based UI services and
Behavior definition
Web APIs
DOMAIN MODEL &
Learn more in the RAP Extensibility Guide
IMPLEMENTATION

DATA SAP HANA


ACCESS database, stored procedures and functions, etc.

Public 39
RAP – ABAP Platform 2023 feature scope (1)

TREE VIEWS IN SAP FIORI ELEMENTS [link]


Modeling and displaying hierarchical data defined with CDS hierarchies as read-only tree views in SAP Fiori elements
based applications

SIDE EFFECTS IN SAP FIORI ELEMENTS [link]


Modelling of side effects in RAP BO behavior definitions to trigger reloads based on user input in draft-enabled
SAP Fiori elements based UIs

SAP FIORI ELEMENTS SHOWCASE APP [link]


Enhancement of the SAP Fiori elements feature showcase app for RAP and ABAP CDS around actions, actions
parameters, front-end validations, quick views, and more

EVENTS [link]
Local consumption of business events built and raised with RAP, in addition to remote consumption via SAP Event
Mesh on SAP BTP

SAP OBJECT TYPES


Use of SAP Object Types to semantically relate and group RAP development artifacts

Public 40
RAP – ABAP Platform 2023 feature scope (2)

ASYNCHRONOUS PROCESSING [link]


Use the Background Processing Framework for asynchronous processing in the background without breaking the
RAP Logical Unit of Work (LUW)

EASY INTEGRATION OF BTP WORKFLOW SERVICES [link]


Develop applications with workflow capabilities for process integration by integrating services of SAP Workflow
Management on SAP BTP into RAP BOs

SERVICE DEFINITION ENABLEMENT [link]


Support for service definition enablement for modification-free extension – for the end-to-end modification-free
extension of OData services built with RAP

TOOLS SUPPORT FOR MIGRATION OF CDS-BASED BOPF BOs [link]


Migration wizard in ADT to plan, prepare, perform, and validate the migration of CDS-based BOPF business objects
to BOPF-based RAP business objects. (BOPF: Business Object Processing Framework)

ENHANCED SUPPORT FOR abapGit PLUGIN [link]


Push and pull of all RAP related development objects with the abapGit plugin from on-prem SAP S/4HANA systems

Public For more 2023 updates, see What’s New in RAP 41


Guidance for RAP usage in SAP S/4HANA, private cloud and on-premises
SAP S/4HANA 1909
FIRST RAP DELIVERY WITH LIMITED FEATURE SET
Managed scenario for greenfield development not supported
No draft support for SAP Fiori elements development

GUIDANCE
Delivery with SAP S/4HANA 1909 ✏︎ Use the ABAP Programming Model for SAP Fiori

SAP S/4HANA 2020


BASIC RAP DELIVERY
Incl. managed scenario (with major limitations regarding key layout and numbering)
Draft support for managed or unmanaged BOs to build transactional SAP Fiori apps
OData V4 support for Web APIs and SAP Fiori UIs
GUIDANCE
If limitations are crucial ✏︎ Use the ABAP Programming Model for SAP Fiori
If limitations are not critical ✏︎ Use RAP

SAP S/4HANA ≥ 2021


MASS ADOPTION READY RAP DELIVERY
Managed scenario now supports various key layouts
Late numbering for a managed BO (with or without draft)
Enhanced testability, documentability and supportability support
Various extensibility options, easy exposure of business events, and more delivered with edition 2022
Side effects, read-only tree views, integration of BTP workflow services, asynchronous processing, and more delivered with edition 2023

GUIDANCE
✏︎ Exclusively use RAP
Public 42
ABAP ANALYTICS
Motivation for embedded analytics

Transactional Simple Analytics Multi Dimensional Embedded Analytics

Daily business tasks


Intention Daily business tasks Fast and easy insights Interactive analysis Fast insights & access to
interactive analysis

Interactivity Linear Static Highly dynamic On demand

Low Low-medium High


Complexity Mixed
Single data sets Aggregating single sets Lots of data sets

Dynamic: different types on


Aggregations Very few Yes All
different levels

Simple requests One request Each interaction may


Requests Both
Few data Complexity varies trigger a complex request

Request Types CRUD Read Read Both

Live data Replicated data


Data Sources Live data Live data
May be precalculated & live data

Public 44
ABAP Analytics – The big picture
At the heart of ABAP Cloud for embedded analytics

UI SERVICES
UI services for analytical clients based on InA1
BUSINESS
SERVICE
EXPOSURE
SERVICE BINDING
Service Definition, Service Projection

DOMAIN-SPECIFIC DATA MODELING


CDS2 analytical provider
DOMAIN MODEL &
IMPLEMENTATION
DOMAIN-SPECIFIC PROGRAMMING
ABAP, CDS

BUSINESS INTEGRATION SERVICES


DATA SAP HANA SERVICE HTTP / REST, WebSocket RFC,
ACCESS SQL and SQLScript CONSUMPTION Business Events, OData, SOAP

1 Information access
Public 2 Core Data Services 45
Standard development flow

= X = X

SERVICE CONSUMPTION
Clients

Multi-dimensional analysis SAC-Story


In Multi-Dimensional Analytical Clients O O

SAP Fiori Ext. usage


InA Service

SERVICE BINDING
BUSINESS SERVICE EXPOSURE
For Information Access Protocol (InA) SERVICE DEFINITION

Query
ABAP CDS

DOMAIN-SPECIFIC MODEL Dimension Dimension

Analytical star schema in ABAP CDS Cube


Dimension Dimension

Public 46
ABAP CODE ANALYSIS
TOOLS
ABAP Code Analysis Tools

ADVANCED QUALITY ASSURANCE

ABAP Test Cockpit for static quality checks and unit tests

SQL Monitor for runtime SQL performance analysis in productive ABAP-based


systems

Classic performance monitoring and trace tools


(SQL Trace, ABAP runtime analysis/Profiler…)

Public 48
Technical infrastructure for custom code analysis

Central Check System


CENTRAL ATC SYSTEM TO ANALYZE CUSTOM CODE
in whole system landscape
ABAP Test Cockpit (ATC)
REMOTE stubs return a model from custom code Simplification
DB
CHECK LOGIC is executed on central system
RESULT is analyzed in central system RFC RFC RFC
INTEGRATED in development environment
MOST CUSTOM CODE is supported (incl. modifications and
enhancements, Adobe Forms, Smart Forms, SAP Queries)
SUPPRESS false-positive findings with pseudo-comments
e.g. for MATNR findings Checked Checked Checked
System A System B System C
INSTALL simplification DB via note 2241080 (>=7.00) (>=7.00) (>=7.00)

ESSENTIAL for custom code migration to SAP S/4HANA, SAP BTP, Customer Customer Customer
ABAP environment, ABAP Cloud Code Code Code

Remote Stubs

Public Check out Remote code analysis with ATC 49


ATC statistics view for better analysis of findings

ATC statistics view with simplification item information


USE STATISTICS VIEW with display criteria
SAP Note number
Referenced Object
Application component

USE DOUBLE-CLICK NAVIGATION from ATC result


Navigate to SAP Notes, Referenced Objects, ATC findings

USE SAP S/4HANA SIMPLIFICATION INFORMATION in ATC


result with filtering and sorting capabilities
SAP Note number incl. title
Referenced object
Application component

Public 50
Baseline in ATC – Focus on findings in new or recently changed code

BASELINE MANAGEMENT

BASELINE CONCEPT
Take over individual ATC results into the baseline
Options:
– suppress all findings (exclude from the ATC result)
– indicate the findings as exempted
– assign the low priority to the findings
The baseline is effective as long as the related code sections remain
unchanged

BASELINE ACTIVITIES
Adding/Removing individual check results
Deleting baseline (reset the test system to original state)

Public Check out Working with Baseline in ATC 51


Using ATC as developer
Run ATC in ABAP Development Tools in Eclipse

ABAP TEST COCKPIT (ATC) Quick fixes in the ATC problems view
Tightly integrated in development (`Run As…` menu)
Browse all ATC check runs of the system (filter by users) using
ATC Result Browser
For custom code migration to SAP S/4HANA conversion:
Simplification Item information (e.g., SAP Notes,
Referenced Objects)
Integrate checks in your on-going development activities, e.g.,
during transport release

AUTOMATIC CODE ADAPTATIONS


Quick Fixes to minimize adaptation efforts Quick Fixes in the source code editor
Examples: No Order-Check

Public 52
Performance tuning using SQL monitor

PERFORMANCE DATA FOR ALL SQLs executed in your


productive system
What are the most expensive and most frequently executed SQLs?
Which SQL reads/writes millions of records?
What is the SQL profile of transaction VA01?

LINK the MONITORED SQLs TO the driving TRANSACTION

AVAILABLE FOR SAP NETWEAVER >= 7.00

SQL MONITOR DOES NOT HARM YOUR BUSINESS PROCESSES


(performance overhead < 3%)

Public Check out SQL Monitor Guide and Best Practices 53


SQL Monitor – example
BUSINESS PROCESS LIST RANKED BY TOTAL DB TIME

DRILL DOWN

SQL PROFILE OF REPORT ZSQLM_TEST3 RUNNING AS BATCH JOB (6 SQL STATEMENTS)

CODE

NAVIGATE

Public 54
CUSTOM CODE
ADAPTATION FOR
SAP S/4HANA AND
ABAP CLOUD
Custom code analysis with Custom Code Migration app

SOLUTION OVERVIEW
Available in an SAP S/4HANA >=1809 system or in SAP BTP ABAP Environment
Technically based on remote ABAP test cockpit
Analysis of custom code for SAP S/4HANA, SAP BTP, ABAP Cloud, classic ATC use cases
Simplified custom code remediation
Obsolete custom code removal based on usage data
Identification of custom code candidates for back-to-standard and redesign
Evaluation of custom code for semi-automated adaptation
(quick fixes in ABAP development tools for Eclipse)

HIGH LEVEL FEATURES


SCOPING ANALYSIS

Public 56
Custom code analysis use cases with Custom Code Migration app

SAP S/4HANA CONVERSION


For tightly coupled custom code extensions
Analysis of custom code for migration to SAP S/4HANA (link)

SAP BTP MIGRATION


For loosely coupled custom code extensions
Analysis of custom code for migration to SAP BTP ABAP Environment (link)

CLOUD ATC
Custom Code Migration app on SAP BTP for analysis of on-premise systems
Analysis of code using classic ATC check variants, e.g. security CVA checks (link)

NEW USE CASE: ABAP CLOUD MIGRATION


For analysis of custom code for ABAP Cloud in SAP S/4HANA on-premise and SAP S/4HANA Cloud, private edition systems
Provide recommendations (based on Cloudification Repository)
which released APIs and cloud-like SAP successor objects to use

Public 57
Scoping of custom code for SAP S/4HANA in Custom Code Migration app

Aggregate usage data in SUSG transaction

I. COLLECT usage data for your custom code with ABAP Call Monitor
(transaction SCMON)

II. AGGREGATE usage data in your productive system with SUSG


transaction (without SAP Solution Manager *)

III. UPLOAD usage data to Custom Code Migration app


to define initial custom code migration scope Scoping in Custom Code Migration app

IV. ADJUST custom code migration scope manually (if needed)

V. CREATE deletion transport for unused code

VI. REMOVE unused code during the SAP S/4HANA conversion automatically
with SUM or backup it using gCTS

* Custom code evaluation with CCLM/UPL tools of SAP Solution Manager is still possible

Public Check out Custom code backup with gCTS 58


Complexity analysis of custom code in Custom Code Migration app

CLEAN CORE DASHBOARD


Spot the top TCO drivers in your custom code
Identify candidates for redesign to save adaptation effort and future maintenance costs
Remove complex development packages from scope

REEVALUATE FUNCTIONALITY
Remove old and orphaned business logic
Evaluate SAP and partner solutions
BACK-TO-STANDARD
Clean up modifications and enhancements
Reset as much as possible to SAP standard

KEY USER EXTENSIBILITY SCOPE


Small low-/no-code extensions

SIDE-BY-SIDE EXTENSIBILITY SCOPE


Loosely coupled extensions and apps

LIFT AND SHIFT


Tightly coupled extensions and apps
Optimize and modernize

Public 59
Check out Custom Extensions in SAP S/4HANA Implementations – A Practical Guide for Senior IT Leadership
Custom Code Migration app – Support for replatforming projects

DEPENDENCY ANALYSIS OF CUSTOM CODE WITH SAP STANDARD FOR SAP BTP TRANSFORMATION

Calls of SAP application APIs in custom code DB accesses to SAP tables in custom code

Public 60
Analysis of custom code findings in Custom Code Migration app
Analysis results
USE PREDEFINED FILTERS
Findings by SAP note
In which SAP S/4HANA simplification areas you
get the most findings?
Findings by scope
How many findings are in the custom code you
take over to SAP S/4HANA or SAP BTP?
Findings by priority
What are the most important (urgent) findings?
Findings by Quick Fix availability
Which findings can be fixed automatically?

AGGREGATION OF FINDINGS Check out SAP Fiori App Custom Code Migration

FOCUS ON USED CUSTOM CODE


Findings Burndown chart
FINDINGS BURNDOWN CHART

DETAILED ANALYSIS OF A FINDING

DOWNLOAD OF ANALYSIS RESULTS


(e.g., for SAP Readiness Check 2.0)

Public 61
Semi-automatic custom code adaptation in ABAP Development Tools
Quick Fixes in the Source Code Editor

QUICK FIXES for SAP S/4HANA


Order By
MATNR and Amount Field Length Extension
Field length extension of field VBTYP (SD document category) and elimination of
field VBTYP_EXT
Reduce findings for VBRK and VBRP
Data Model Changes, e.g. Mass-enabled Quick Fixes in the ATC Problems View
KONV
VBUK/VBUP
BSEG

QUICK FIXES for cloud


Adapt to ABAP for Cloud Development language version
Adapt to usage of released objects
API calls instead of direct access to SY fields

MASS-ENABLED Quick fixes to adapt whole work packages


in one step

Check out: Semi-automatic custom code adaptation for SAP S/4HANA


Semi-automatic custom code adaptation for cloud

Public 62
How to adapt custom code for ABAP Cloud in SAP S/4HANA >=2022 system

Use ABAP development tools for Eclipse for custom code analysis and
adaptation Quick Fixes in ADT in Eclipse

Run ABAP Test Cockpit with ABAP_CLOUD_READINESS check variant

Use mass-enabled Quick Fixes in ABAP development tools for Eclipse


Adapt to ABAP for Cloud Development language version
Adapt to usage of released objects
API calls instead of direct access to SY fields
Examples:
Replace Data Element by released Data Element (->ABAP_BOOLEAN) Successor released API in the ATC
Replace syntax element by new syntax element (e.g. MOVE) result

Adapt to usage of Released APIs


Use successor APIs displayed in the details of ATC analysis results
For missing publicly released APIs implement your custom wrappers:
How to mitigate missing released SAP APIs – The new ABAP Cloud API enablement guide
Mitigate missing released SAP API – Developer Tutorial (step-by-step) ABAP custom code
Missing publicly released APIs can be also requested at the SAP Influence campaign
SAP S/4HANA Cloud & SAP S/4HANA for On-stack API

Public Check out How to make your custom code cloud-ready and upgrade-stable 63
Check custom code for ABAP Cloud in SAP S/4HANA < 2022

Cloudification Repository as input for cloud readiness checks

For custom code analysis of SAP S/4HANA on-premise and SAP S/4HANA Cloud,
private edition systems of lower (< 2022) releases and ERP systems
Provide custom code adaptation recommendations
(which released APIs and cloud-like SAP successor objects to use)
Use in Custom Code Migration app on SAP BTP
(with a Custom Code Analysis project)
Also possible to use with Custom Code Migration app on-premise or
SAP GUI ATC (in the SAP S/4HANA system >= 2020) after implementation of the
SAP Note 3284711 - ATC Check for Released Objects (Cloudification Repository)

Check out How to check your custom code for ABAP Cloud

Public 64
Custom code analysis options
Custom Code Migration app
Remote ATC with SAP GUI Custom Code Migration app
in SAP BTP

SAP BTP
Required system Central ATC check system 1 Central ATC check system 2
ABAP Environment

System location in customer landscape in customer landscape cloud

Remote connectivity via RFC via RFC via RFC and SAP Cloud Connector

Technical configuration manual manual with CIAS

3, 4
Analyze cloud findings

Analyze SAP S/4HANA findings

Simplification information
in ATC result
Filter results by scope and Quick Fix
availability
Define custom code migration
scope based on usage data
Remove unused code during system
conversion via SUM

1 SAP_BASIS 7.52 3 Only SAP S/4HANA >=1909


Public 2 SAP S/4HANA >=1809 4 Released SAP S/4HANA APIs only SAP S/4HANA >=2020 65
Get started

SAP Discovery Center Mission Use SAP Fiori Custom Code Migration app to analyze your ABAP custom code for SAP S/4HANA
Custom Code Migration app in SAP BTP ABAP Environment
Automated setup and configuration with CIAS guided workflow
Step-by-step guided custom code analysis

CIAS Workflow for Custom Code Migration app

Public 66
Custom code analysis tools – ABAP Platform 2023 feature scope

CUSTOM CODE MIGRATION APP

Custom code analysis for ABAP Cloud (based on Cloudification Repository)


Application log: display information and errors which might occur during an analysis run in the Log tab

REMOTE ABAP TEST COCKPIT: REPLICATION OF EXEMPTIONS

Remote ABAP test cockpit: replication of exemptions from the central check system to the checked systems
using the program SATC_REPLICATE_EXEMPTIONS | More in here
Display processing times by object and check of ABAP test cockpit check runs | More in here

Public 67
Custom code analysis tools

CUSTOM CODE MIGRATION APP

Custom code analysis for ABAP Cloud of the systems < SAP S/4HANA 2022 using the Cloudification Repository
on GitHub, which provides the list of released application APIs

Public Check SAP Community blog: How to check your custom code for ABAP Cloud 68
INTEGRATION,
CONNECTIVITY AND
SECURITY
ABAP Cloud programming model aspects - Integration

BUSINESS INTEGRATION SERVICES


SERVICE OData, Events, HTTP, RFC, SQL
EXPOSURE for application and data integration

DOMAIN MODEL & DOMAIN-SPECIFIC PROGRAMMING


IMPLEMENTATION ABAP, CDS1

BUSINESS INTEGRATION SERVICES


DATA SAP HANA SERVICE HTTP / REST, WebSocket RFC,
ACCESS SQL and SQL Script CONSUMPTION Business Events, OData, SOAP

Public 1 Core Data Services 70


Real-time monitoring and Industrial IoT with ABAP channels

SENSORS /
USER INTERFACE MACHINES
ABAP PUSH CHANNELS – CONNECTING THE WORLD
Direct communication with sensors/machines
Push sensor data directly to UIs or to the Cloud
ABAP Push Direct TCP/IP
Extended protocol support:
Channel communication
WebSocket
native TCP/IP protocols (AS ABAP 7.50)
MQTT (ABAP Platform 1809)

ABAP Messaging
User session Channel (pub/sub) User session
ABAP MESSAGING CHANNEL – COLLABORATION
Transport sensor data across ABAP sessions
Publish sensor data to bound WebSocket connections immediately Application Application
Server Server
ABAP SYSTEM

Public Check out ABAP Connectivity 71


Supportability and security for ABAP channels

SUPPORTABILITY TCP log

Standard ABAP supportability tools for debugging, runtime


analysis and performance, kernel trace
Transaction SMWS shows active WebSocket, TCP Socket and
MQTT subscriptions on each app server
Supportability tools integrated into SAPC, SMWS transactions
TCP log

SECURITY
SMWS

Virus scan profile for messages, authorization for involved


addresses and domains
Secure communication using SSL (TCPS for TCP Sockets and
WSS for WebSockets)

Public 72
ABAP daemons
Always available ABAP sessions to handle real-time events

Implement a daemon application


FEATURES
Daemon session with event handling capabilities
Similar to Windows Services or Linux cron jobs
Long-lived: once started, there is no limit for the lifetime
Robust against errors (E/A/X messages)
Event-driven programming model (ABAP Channels like)
Monitoring & Supportability

USAGE EXAMPLES
Events scheduling
Monitor active daemons with SMDAEMON
Tracing & Logging
Health Check, clean up of resources, synchronization
of caches and error handling
Proxy-Session for external communication

Public Check out ABAP Daemons 73


WebSocket RFC

RFC IS READY FOR INTERNET USE WebSocket RFC


WebSocket RFC uses standard HTTP infrastructure: Reverse
proxies, HTTP routers, etc. instead of proprietary SAP router
VPN tunneling no longer needed for RFC connections across
business networks
Same CALL FUNCTION statement for RFC over WebSocket and
CPIC
Use new destination type “W” for RFC calls via WebSocket
Security: HTTPS enforced and UCON protection for WebSocket
RFC with dedicated allowlist to make Function Modules
accessible from the internet.
Limitations by WebSocket RFC: RFC callbacks
and calling function modules that open SAP GUI-based user
interfaces not supported

Public Check out WebSocket RFC 74


AMQP support
AMQP-based message exchange via a broker

AMQP SUPPORT IN ABAP


API to implement AMQP Clients
(AMQP specification 1.0)
Communication
Point-to-point or publish-and-subscribe (via a message broker)
ABAP to ABAP, ABAP to non-ABAP
Based on ABAP Push Channel technology
Connection types: WebSocket and TCP Socket
Event-driven programming model System-internal RFC function module
(ABAP Channels like)
APC Security and Supportability

SYSTEM-INTERNAL RFC FUNCTION MODULES


Develop RFC function modules for purely system-internal use

Public 75
Enterprise event enablement

Event-driven architecture natively supported thru enablement of business event


exchange between SAP S/4HANA and SAP Event Mesh on SAP BTP

Native exposure and consumption of business events on the ABAP platform

Event Consumption Model is used to enable the event consumption between


SAP S/4HANA and SAP Event Mesh on SAP BTP (more…)

Developers can easily define and raise business events in RAP business objects in
SAP S/4HANA (more…)

Local consumption: consume events in the same system as they are raised (with
Local Event Handler) (more…)

Public 76
SQL service in ABAP Cloud

The SQL service in ABAP Cloud provides


SQL clients with access to exposed CDS view
entities of an ABAP system.

SQL clients can be any ODBC-based client,


such as Microsoft Excel on a customer’s end-
user client PC, or an SAP HANA database (in
the cloud).

Public For more information, see the developer guide Accessing the ABAP-managed Data from External ODBC-based Clients | Tutorial: https://developers.sap.com/tutorials/abap-environment-abap-sql.html 77
Integration, connectivity and security – ABAP Platform 2023 feature scope

ENTERPRISE EVENT ENABLEMENT


Advanced integration with SAP Event Mesh (for large projects where performance is crucial | More in here
Local event consumption | More in here
Maintain context and extension context attributes filters for outbound events | More in here
Monitoring improvement: after processing delete event from the queue after 7 days

SERVICE ENABLEMENT
Outbound SOAP enablement for ABAP Cloud | More in here

SECURITY
Secure-by-Default: User- and Role Maintenance Settings | More in Secure By Default for SAP S/4HANA 2023
Support OpenID Connect (OIDC) authentification in the role of an OIDC Relying Party (RP)
Additional option to regain access to an AS ABAP client after having lost the credentials of all privileged users
Support OAuth Authorization Code with PKCE for Public Clients
Additional TLS properties in SM59 HTTP destinations

Public 78
ABAP PLATFORM FOR
SAP S/4HANA EXTENSIBILITY
One common extensibility model for cloud and on premise

1 KEY USER EXTENSIONS

ON-STACK DEVELOPER
2 EXTENSIONS
SAP
S/4HANA
CLOUD 3
public interfaces

SIDE-BY-SIDE EXTENSIONS

remote API

public interfaces public interfaces

SAP BUSINESS TECHNOLOGY PLATFORM ABAP


SAP S/4HANA CLOUD ABAP ENVIRONMENT ENVIRONMENT

Key-user extensions ABAP custom code or partner extensions Public interfaces released for developer extensibility
low-code/no-code extensions following the cloud extensions model
Public interfaces released for key-user extensibility
Public 80
SAP S/4HANA Cloud extensibility patterns

ON-STACK SIDE-BY-SIDE

EXTEND AN SAP APP NEW APP ON STACK NEW APP SIDE-BY-SIDE

TIGHTLY coupled TIGHTLY coupled LOOSELY coupled


such as to an SAP app such as to SAP data to SAP data, transaction, app
or transaction

Extend SAP code, data


Local API call, SQL join Remote API call, consume events
structure, user interface

public extension point public local API public remote API

SAP S/4HANA Cloud application

SAP S/4HANA Cloud SAP Business Technology Platform

Public 81
ABAP extensibility for SAP S/4HANA
… is crucial for the success of SAP, SAP customers and partners
… provides means for on-stack and side-by-side extensibility
… supports key-user and developer extensibility
… uses ABAP Cloud as development model

ABAP Cloud
… is the ABAP development model to build cloud-ready business apps, services or extensions
… comes with SAP BTP and SAP S/4HANA
… works with public or private cloud, and even on-premise

Public 82
ABAP Cloud on SAP BTP and on SAP S/4HANA

ABAP CLOUD
DEVELOPMENT
ON SAP S/4HANA

SAP S/4HANA
ABAP Cloud
CLOUD ABAP CLOUD is the ABAP development model to build
DEVELOPMENT
cloud-ready business apps, services or
ON SAP BTP
public interfaces

extensions

ABAP Cloud comes with:


remote API
❖ Public SAP APIs and extensions points
❖ Cloud-optimized ABAP language
public interfaces public interfaces ❖ ABAP Development Tools
❖ ABAP RESTful Application
Programming Model

SAP S/4HANA CLOUD ABAP ENVIRONMENT SAP BTP ABAP ENVIRONMENT ❖ ABAP Core Data Services

Public 83
ABAP Cloud – IDE and API examples for on-stack developer extensibility

Custom ABAP on
SAP S/4HANA Cloud
ABAP development tools in Eclipse
Cloud-optimized ABAP language
Proven ABAP transport management

Access to public SAP APIs ONLY


– otherwise, syntax error!
No access to old Dynpro APIs
No direct select on SAP table MARA

Local APIs from SAP S/4HANA


SELECT products from
SAP S/4HANA tables using the public
I_Product CDS view

Public 84
Clean core rules for extensions to support smoother SAP software updates

SAP S/4HANA Cloud private edition,


and on-premise

Expectation management – no magic!


Upgrade projects will not go away
This is not the public cloud

❖ Easier frequent upgrades


GOAL
❖ Future-safe extensions

RULE FOR SMOOTH SOFTWARE UPDATES

Extensions must be clearly separated form SAP code

No modifications to SAP objects Only stable public SAP APIs and SAP
Follow the public cloud extensibility rules
allowed extension points can be used
whenever possible (clean core approach)

MANDATORY IN PUBLIC CLOUD Recommended in private cloud


and on-premise

Public 85
SAP S/4HANA, private cloud and on-premise editions
Reuse the SAP S/4HANA Cloud extensibility model

DEFAULT FOR ALL


NEW EXTENSIONS On-stack extensions Side-by-side extensions
on SAP S/4HANA Cloud on SAP BTP

Business expert SAP S/4HANA CLOUD


SAP Build
Key user KEY-USER TOOLS

SAP S/4HANA CLOUD, SAP Build Code or


Developer ABAP ENVIRONMENT ABAP ENVIRONMENT

INNOVATE OR
MODERNIZE

RETIRE
CLASSIC CUSTOM ABAP CODE
(control and minimize)

Public 86
3-tier extensibility model for SAP S/4HANA private cloud and on-premise

TIER 1 – Cloud extensibility model


SAP S/4HANA SAP Business Technology Platform
Cloud-ready and upgrade-stable development of new
applications and extensions. ABAP Cloud is mandatory –
no classic ABAP in tier 1
TIER 1 ON-STACK TIER 1 SIDE-BY-SIDE
Cloud development Same extensibility model as used in SAP S/4HANA Cloud,
ABAP Cloud
(Java / Node.js / ABAP Cloud) public edition
Default for new extensions and custom apps

TIER 2 TIER 2 – Cloud API enablement


Cloud API enablement
RENOVATE OR Extends and enables tier 1 for private cloud and on-premise
INNOVATE
Mitigates missing public SAP APIs or extension points:
Develop custom wrapper objects for not released SAP
objects to be used in tier 1
Retire wrapper once a released SAP API is available
TIER 3
Classical ABAP development
TIER 3 – Classic ABAP extensions
Legacy/existing custom ABAP code or new on-stack
ADAPT extensions code that cannot follow the rules of tier 1 and 2
RETIRE
Avoid and reduce the content in tier 3

ON-STACK - tightly coupled SIDE-BY-SIDE - loosely coupled

Public 87
3-tier extensibility model for SAP S/4HANA private cloud and on-premise

BENEFITS
SAP S/4HANA SAP Business Technology Platform

TIER 1 ON-STACK TIER 1 SIDE-BY-SIDE


Cloud development
ABAP Cloud
(Java / Node.js / ABAP Cloud) ✓ Clean core compliant using tier 1, with
clear technical guidance, cloud-ready
✓ Upgrade stability for tier 1 extensions
TIER 2 ✓ Exploit rich functional scope of private cloud and
Cloud API enablement
RENOVATE OR
on-premise editions, mitigate missing public APIs
INNOVATE
✓ Controlled violations of clean core principles:
authorizations, ABAP Test Cockpit (ATC)
✓ Enablement of stepwise cloud transformation
✓ Greenfield: Tier 3 empty, only use tier 1 and 2
TIER 3
Classical ABAP development ✓ Brownfield: Legacy in tier 3, new extensions in tier 1
and 2

ADAPT
RETIRE

ON-STACK - tightly coupled SIDE-BY-SIDE - loosely coupled

Public 88
Main principles of development with the ABAP cloud development model

Use only RELEASED EXTENSION


Use only RELEASED APIs from ABAP Utilize SAP HANA by using CDS, AMDP
POINTS (e.g. BAdIs, RAP extensions) to
Platform and SAP S/4HANA solution and ABAP SQL
extend SAP objects

Use of RELEASED APIs is checked by


Use ABAP TEST COCKPIT
ABAP compiler Create CUSTOM APIs (controlled by
to adopt ABAP cloud and
(ABAP FOR CLOUD DEVELOPMENT ATC checks) for not released SAP APIs
make legacy custom code cloud-ready
language version)

ABAP RESTful Application


Programming Model (RAP) and ABAP ABAP DEVELOPMENT TOOLS for
analytics with ECLIPSE as IDE
SAP Fiori Elements

Public 89
SAP S/4HANA, private cloud edition and on-premise
ABAP Cloud development – ABAP language version and public SAP APIs

HOW TO USE ABAP CLOUD IN THE PRIVATE CLOUD AND ON-PREMISE EDITIONS?

Switch on the strict ABAP Cloud syntax check for Use public APIs released by SAP
software component and selected custom ABAP for ABAP Cloud development
objects

Check out ABAP Cloud support in ABAP Development Tools for Eclipse

Public 90
Use ABAP Test Cockpit (ATC) to adopt ABAP Cloud
ATC check variant for ABAP Cloud

Setup ATC
Remote ATC scenario: connect DEV systems to the central ATC check system
Configure ATC to run during development tasks and at transport release
Block Priority 1 and Priority 2 ATC findings for transport tasks and transport requests

Setup ATC check variant


Copy the ATC variant ABAP_CLOUD_DEVELOPMENT_DEFAULT
Add the following checks from the Cloud Readiness category
ABAP Language Version Check
ABAP Language Version of Objects Request an exemption
Allowed Object Types in Cloud Development
Usage of Released APIs

Setup initial ATC baseline for legacy developments


Based on ATC run with ATC check variant ABAP_CLOUD_READINESS

Use exemptions for classic ABAP developments


Request exemptions for developments where ABAP Cloud cannot be applied:
Legacy packages, legacy UI technologies, legacy extension techniques

Public Check out How the ABAP Test Cockpit supports you to adopt ABAP Cloud 91
Important ABAP Cloud related guides

Overview, comparison of
How the old, tier 3 / classic ABAP How to check compliance
extensibility options, introduction How to leverage tier 2 of the
world maps to the new, tier 1 / with the ABAP Cloud and
to ABAP Cloud and 3-tier 3-tier extensibility model.
ABAP Cloud world. 3-tier extensibility model
extensibility model.

Public Further information and blog posts linked at https://community.sap.com/topics/s4hana-cloud-abap-environment and https://community.sap.com/topics/abap 92
Become an ABAP Cloud certified developer
SAP Learning journeys valid for all SAP S/4HANA editions

👩‍🏫 SAP Learning Journey: Practicing Clean Core Extensibility for SAP S/4HANA Cloud
🥇 Become an SAP Certified Associate – ABAP Cloud Back-End Developer

Public 93
SAP BUSINESS TECHNOLOGY PLATFORM (BTP),
ABAP ENVIRONMENT
Vital parts of SAP Business Technology Platform (BTP), ABAP environment

SAP Business Technology Platform, SAP BTP


ABAP environment services
SAP BTP cockpit
SAP Integration suite

SAP Launchpad service


ABAP RESTful application
programming model SAP Workflow service Cloud
Cloud-optimized ABAP language
Analytics
Released APIs
SAP Fiori tools …

WEB
WEB API
API
WEB
WEBAPI
API
Cloud

ABAP development Connectivity


tools in Eclipse

SAP HANA
SAP system
SAP Business
Git code Technology Platform SAP Cloud Connector On premise Non-SAP system
management

Public 95
Extension scenario 1: Cloud ERP
Extend SAP S/4HANA Cloud or other SAP cloud offerings with cloud extensions

SAP BTP ABAP ENVIRONMENT SAP BTP


Services

ABAP EXTENSION IoT

ML

… Use SAP BTP ABAP Environment to extend


SAP S/4HANA Cloud or other SAP cloud solutions
connectivity Analytics

SAP Cloud solutions like SAP S/4HANA Cloud provide


in-app extensibility to extend SAP apps and
SAP HANA processes, but there is no support for classic custom
ABAP development on top of SAP S/4HANA Cloud
SAP BTP SAP BTP is the foundation to develop and run custom
cloud extensions and the ABAP environment shall be
used for ABAP based cloud extensions

CLOUD

Public 96
Extension scenario 2: Innovation Platform
Develop and run innovative ABAP apps on a PaaS in the Cloud

SAP BTP ABAP ENVIRONMENT SAP BTP


Services

ABAP EXTENSION IoT

ML

… Benefit from the newest ABAP Platform and


connectivity
SAP HANA database technologies independent from
Analytics
your existing on-premise system landscape
Build your Fiori apps with the new future proof
ABAP RESTful Application Programming Model
SAP HANA Utilize SAP BTP services like IoT, machine learning etc.
in your cloud extension
SAP BTP Delegate operation of the ABAP PaaS and new
technologies to SAP

SAP CLOUD
CONNECTOR

ON PREMISE ERP

Public 97
Extension scenario 3: Hub-like usage
Decouple ABAP implementations from your core business systems

SAP BTP ABAP ENVIRONMENT SAP BTP


Services

ABAP EXTENSION IoT

ML EXTERNAL USER GROUP


Make your cloud app available to a broader audience

that does not have access to your core business
connectivity Analytics
systems (e.g. consumer apps)
INTEGRATION HUB
Integrate in your cloud extension multiple cloud/on-
premise systems with SAP/non-SAP cloud services
SAP HANA DATA INTEGRATION
Collect data from multiple sources in your cloud
SAP BTP extension for further processing and analysis
DECOUPLED EXTENSION
Cloud extensions use only well defined (remote) APIs
of the Business system. This reduces the risk and effort
SAP CLOUD
CONNECTOR
for business system upgrades

SAP S/4HANA
WEB
WEB API
API
SAP System WEB
WEBAPI
API
ON PREMISE Non SAP System CLOUD

Public 98
SAP BTP ABAP Environment – 2023 main feature scope
INFRASTRUCTURE
System hibernation to save costs whenever systems are not in use
Microsoft Azure support and full coverage of AWS datacenters to gain additional hyperscaler and datacenter flexibility

REUSE SERVICES
Data archiving capabilities to archive data from customer-owned tables
Customer data browser to achieve transparency by using data browsing capabilities via a self-service app

CODE QUALITY
ATC Developer scenario to run code checks from an on-premise system
ATC Exemptions app to request exemptions for findings which cannot be corrected

PARTNER ENABLEMENT
Build Product app to simplify the build and deployment process for add-on solutions
Maintain Solution app to simplify the SaaS registry of solutions

ADMINISTRATION
SAP Fiori Launchpad enhancements to cater for individualization needs and view system context information
Technical Monitoring Cockpit (TMC) enhancements to offer more in-depth monitoring screens and capabilities

Public For an overview of all ~200 delivered features in 2023, visit the What’s New section 99
Learn more

ABAP Environment | SAP Discovery Center

Product Page | sap.com

Roadmap | SAP Help Portal

Trial Announcement

Topic Page | SAP Community

Learning Journey | learning.sap.com

Getting Started Tutorials

ABAP Environment Documentation | SAP Help Portal

Public 100
SUMMARY
Summary – Key takeaways

First class development experience in Eclipse using enriched ABAP language and tools fully supporting
ABAP Cloud

Enhanced ABAP Core Data Services (CDS) and ABAP SQL for advanced data modelling and access on
SAP HANA, and embedded analytics

Enhanced feature set of the ABAP RESTful Application Programming Model (RAP) – incl. hierarchical tree
views, side effects, extensibility options

Highly proficient ABAP tools for advanced code quality assurance fully supporting adaptation of legacy
code to SAP S/4HANA and ABAP Cloud and driving adoption of ABAP Cloud for new developments

Enterprise event enablement of SAP S/4HANA, with local and remote event consumption using SAP Event
Mesh on SAP BTP for the latter, real-time events with ABAP Channels and ABAP Daemons, Industrial IoT,
and M2M communication, WebSocket RFC, MQTT and AMQP support

One common extensibility model for SAP S/4HANA and SAP BTP based on ABAP Cloud including key user,
on-stack developer and side-by-side extensibility options for clean core ready extensions

Public 102
Further Information

SAP HELP PORTAL


❖ What‘s New in ABAP Platform in SAP S/4HANA 2023

SAP COMMUNITY
❖ ABAP Development
https://community.sap.com/topics/abap
❖ ABAP Testing and Analysis
https://community.sap.com/topics/abap-testing-and-analysis
❖ ABAP Connectivity
https://community.sap.com/topics/abap-connectivity
❖ ABAP Extensibility
https://community.sap.com/topics/abap-extensibility
❖ SAP BTP ABAP Environment
https://community.sap.com/topics/btp-abap-environment
❖ SAP S/4HANA Cloud ABAP Environment
https://community.sap.com/topics/s4hana-cloud-abap-environment

RELATED RESOURCES
❖ Tutorials
https://developers.sap.com/tutorial-navigator.html?search=abap

Public 103
Thank you.
Contact information:

Carine Tchoutouo Djomo


Product Management
ABAP Platform, SAP SE
carine.tchoutouo.djomo@sap.com

Olga Dolinskaja
Product Management
ABAP Platform, SAP SE
olga.dolinskaja@sap.com

© 2023 SAP SE or an SAP affiliate company. All rights reserved. See Legal Notice on www.sap.com/legal-notice for use terms, disclaimers, disclosures, or restrictions related to this material.

You might also like