The ABAP RESTful Programming Model in
SAP Cloud Platform ABAP Environment and SAP S/4HANA
Carine Tchoutouo Djomo, SAP
February 25, 2020
PUBLIC
Disclaimer
The information in this presentation is confidential and proprietary to SAP and may not be disclosed without the permission of SAP.
Except for your obligation to protect confidential information, this presentation is not subject to your license agreement or any other service
or subscription agreement with SAP. SAP has no obligation to pursue any course of business outlined in this presentation or any related
document, or to develop or release any functionality mentioned therein.
This presentation, or any related document and SAP's strategy and possible future developments, products and or platforms directions and
functionality are all subject to change and may be changed by SAP at any time for any reason without notice. The information in this
presentation is not a commitment, promise or legal obligation to deliver any material, code or functionality. This presentation is provided
without a warranty of any kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a
particular purpose, or non-infringement. This presentation is for informational purposes and may not be incorporated into a contract. SAP
assumes no responsibility for errors or omissions in this presentation, except if such damages were caused by SAP’s intentional or gross
negligence.
All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ materially from
expectations. Readers are cautioned not to place undue reliance on these forward-looking statements, which speak only as of their dates,
and they should not be relied upon in making purchasing decisions.
© 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 2
Agenda
Overview
Business Objects
Business Services
Demo
Outlook & Summary
© 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 3
Overview
Evolution of the ABAP programming model
SAP Cloud Platform ABAP Environment /
ABAP Platform ≤ 7.5 ABAP Platform ≥ 7.5
SAP S/4HANA ≥ 1909
CLASSIC ABAP PROGRAMMING MODEL ABAP RESTful
ABAP PROGRAMMING FOR SAP FIORI PROGRAMMING MODEL1
Floorplan Manager / WDA, SEGW / @OData
Business Service
BSP, Dynpro,… Referenced Data Source
Best practice freestyle Core Data CDS-based Core Data Behavior Definition
ABAP programming Services (CDS) BOPF Services & Implementation
Current best practice in SAP S/4HANA Future direction
Dos and Don’ts
for greenfield implementations for greenfield2 and brownfield implementations
Be prepared for the new
Getting Started Getting Started
programming models
Documentation Documentation
Safe investments! Integration path planned
1 aka ABAP RESTful Application Programming Model
2 Greenfield implementations not yet supported on SAP S/4HANA 5
© 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
ABAP RESTful Programming Model – Support for ABAP developers
The ABAP RESTful PROGRAMMING MODEL
is a framework of …
SAP Fiori UI services
OData service
CONCEPTS development
Web APIs
TECHNOLOGIES
Extensions
Universally usable
programming model
TOOLS New developments
BEST PRACTISES
SAP S/4HANA®
Available on premise
and in the cloud SAP Cloud Platform,
ABAP environment
… for the efficient development of
ENTERPRISE GRADE APPLICATIONS
© 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 6
ABAP RESTful Programming Model – The key players
ABAP Development Tools in Eclipse for all development tasks
Easy developer onboarding
End-to-end development flow
Languages: ABAP and CDS
Standard implementation tasks via typed APIs supporting
static code checks, auto-completion, element info
Powerful frameworks
Take over technical implementation tasks
Business logic added in code exits on protocol agnostic layers
© 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 7
ABAP RESTful Programming Model – The big picture
SERVICE SAP Fiori UI Web API
CONSUMPTION Consume OData UI services Consume OData Web APIs
SERVICE BINDING – Bind to protocol version and scenario
SERVICE DEFINITION – Define scope to be exposed
BUSINESS
SERVICES
BUSINESS OBJECT PROJECTION
PROVISIONING
CDS: Projection views
BDEF: Behavior projection
ABAP: Behavior implementation*
BUSINESS OBJECTS QUERIES
DATA MODELING CDS: Data modeling CDS: Data modeling
& BEHAVIOR
BDEF: Behavior definition
ABAP: Behavior implementation
© 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC * Not yet supported 8
Business Objects
What is a business object?
Behaviour
CRUD, Actions, Functions
Locks, eTag
Authorizations, Feature Control
Data Model Draft
R
2
COMPOSITION 1 3
TREE Runtime Implementation
(root, parent and child nodes)
INTERACTION PHASE
TX buffer
SAVE SEQUENCE
© 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 10
Business objects – BO runtime implementation types
REUSE EXISTING CODE ➔ UNMANAGED
For brownfield developments with available application code for
SAVE interaction phase, transactional buffer and save sequence.
INTERACTION
SEQUENCE
PHASE
➔ Developers in charge of BO runtime: CRUD operations
Read, modify,
Validate, ➔ Adapters needed to integrate the existing code
adjust, save,
lock
clean up
START FROM SCRATCH ➔ MANAGED*
Transactional For greenfield developments with standard implementation.
buffer (opt. unmanaged appl. components: DB tables, lock/PFCG object, update task FM)
SAP HANA ➔ Standard CRUD operations works out-of-the-box
➔ Developers add BO specific business logic
BUSINESS OBJECT (BO) RUNTIME
© 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC * Currently only available on SAP Cloud Platform ABAP Environment 11
ABAP RESTful Programming Model – Development flow
AUNIT
Scenario & integration test
AUNIT
Unit test
ADD IMPLEMENT
BEHAVIOR BEHAVIOR
Authority object CDS role
QUERY
DATA ACCESS CDS BASED CDS BEHAVIOR
CONTROL DATA MODEL DEFINITION ABAP CODE
AUTHORITY-CHECK
Lock object
© 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 12
Business Services
What is a business service
Web API Lifecycle
Service Binding
Release
Protocol: OData V2 or OData V4?
Versioning
Scenario: Web API or UI?
Deprecation
2
3
1 Tool support
UI: SAP Fiori Elements preview
4 Web API: Swagger UI preview
Service Definition: which entities? R
BO Projection View: which elements?
Behavior Projection: which behavior?
© 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 14
ABAP RESTful Programming Model – Development flow
DEFINE ROLES
Role
SERVICE
BINDING PREVIEW
BIND to SCENARIO and PROTOCOL
SERVICE
AUNIT DEFINITION
Scenario & integration test
DEFINE SCOPE
ADD
BEHAVIOR
AUNIT
Unit test
DATA MODEL BEHAVIOR
PROJECTION PROJECTION
PROJECT ELEMENTS & ENRICH PROJECT BEHAVIOR
ADD IMPLEMENT
BEHAVIOR BEHAVIOR
Authority object CDS role
QUERY
DATA ACCESS CDS BASED CDS BEHAVIOR
CONTROL DATA MODEL DEFINITION ABAP CODE
AUTHORITY-CHECK
Lock object
© 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 15
Demo
Building a SAP Fiori elements UI service with the managed BO runtime implementation
Modern ABAP development in Eclipse
ABAP DEVELOPMENT TOOLS (ADT)
MODERN DEVELOPMENT TOOLSET
Fully eclipse-based
Syntax check, Code completion
Syntax highlighting, Pretty printing
Navigation, Search, Quick Fixes
QUALITY ASSURANCE
Static code checks (CVA, ATC) with
remote and local scenarios
Unit testing incl. isolation frameworks
Test seams and injections
SUPPORTABILITY
Debugging, profiling
Static and dynamic logging
Runtime monitoring and analysis
© 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 17
Outlook & Summary
Outlook – Next steps planned*
Goals
2020
SAP CLOUD PLATFORM
ABAP ENVIRONMENT
SAP S/4HANA
Enhanced managed scenario Managed scenario for supporting greenfield
(e.g. early numbering based development with draft support and early
on UUIDs, draft support) numbering based on UUIDs
Markdown editor for documentation Enhanced unmanaged scenario
of behavior definitions
OData V4 support
OData V4 support
Read more in the ABAP Platform Road Map
* This is the current state of planning and may be changed by SAP at any time.
© 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 19
Summary – Key takeaways
The ABAP RESTful Programming Model is available starting with SAP Cloud Platform
01 ABAP Environment 1808: Cloud-first delivery.
The ABAP RESTful Programming Model is available on-premise starting with
01 SAP S/4HANA 1909 – with reduced feature scope: UNMANAGED BO IMPLEMENTATION.
The feature scope of the ABAP RESTful Programming Model is enhanced on a quarterly
02 basis in SAP Cloud Platform ABAP Environment and on-premise on a yearly basis in
SAP S/4HANA.
The ABAP Programming Model for SAP Fiori WITH DRAFT SUPPORT is available as of
03 AS ABAP 7.51 and remains the current best practice for greenfield implementations in
SAP S/4HANA.
© 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 20
With the
ABAP RESTful
Programming Model
© 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 21
Further information
► Getting Started with the ABAP RESTful Programming Model
► Get started with ABAP Core Data Services (CDS)
► Evolution about the ABAP Programming Model
► Be prepared for the new ABAP Programming Models
► ABAP Development Community
► SAP Cloud Platform, ABAP Environment
► SAP Developer Center
► SAP TechEd Online (e.g. session CAA103, CAA100 and CAA101)
► SAP Training & Certifications Opportunities
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Thank you.
Contact Information:
Carine Tchoutouo Djomo
Product Manager for ABAP Platform
SAP SE
[email protected]