01 PSD WEB 00003900 Webinar English
01 PSD WEB 00003900 Webinar English
Certification Academy
Day 1
Tuesday, 20th February, 2024
or
Session 1 (Today)
• 09:00am – 09:25am Introduction & Academy Overview
• 09:25am – 10:25am Introduction to Clean Core and ABAP Cloud
• 10:25am – 10:30am Break
• 10:30am – 12:00pm CDS Modelling
• 12:00pm – 12:30pm Q&A
Session 2
• 09:00am – 10:25am ABAP RESTful Programming Model
• 10:25am – 10:30am Break
• 10:30am – 11:30am ABAP RESTful Programming Model
• 11:30am – 11:35am Break
• 11:35am – 12:10pm 3-Tier Architecture
• 12:10pm – 12:30pm Q&A
Session 3
• 09:00am – 10:00am New Syntax and Concepts in ABAP
• 10:00am – 10:05am Break
• 10:05am – 11:05am Academy Summary & Certification Guidance
• 11:05am – 12:00pm Q&A
Q&A
• 09:00am – 11:00am FAQ and Q&A
ACADEMY ACADEMY
REGISTRATION COMPLETION
Completion of any Familiarize yourself with any
Academy pre- remaining content of the
requisites Learning Journey
Optionally join the “Ask the
Expert” session
And as a support
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
Question distribution:
Live demo
Day 1
• Academy Overview
• Introduction to Clean Core and ABAP Cloud
• CDS modelling
Day 2
• Introduction to RAP
• 3-Tier-Architecture – concept, setup of
Software Components, access to Standard /
Custom Objects and Wrappers
Day 3
• New Syntax and Concepts in ABAP
• Summary & Certification Guidance
System
Examples
• Tutorials
• RAP Workshops (RAP100 etc.)
• Videos on Tutorials, e.g. from Devtoberfest (also
available in Youtube Playlist)
• Sessions on TechEd or ABAPConf
CLASSIC
SAP BUSINESS CUSTOM ABAP
SUITE SAP OBJECTS
APPLICATIONS DEVELOPMENT
CAN BE MODIFIED
Use and modify all
SAP objects
PRO
No restriction for extensions ✏︎ Extremely flexible and powerful
CON
There is no interface between SAP code and the extension
SAP software changes lead to high test and adaptation efforts
SAP NETWEAVER
✏︎ SAP upgrade effort increases and agility/innovation speed decreases
Automate with standard APIs and Events. Core Establish a binding governance
framework.
Keep competitiveness
while reducing 1 Business processes
A clean core describes a system or a landscape of complexity.
systems that is as close to standard as possible
while running cloud-compliant extensions and Decouple extensions
integrations. from standard. 2 Extensibility
It allows you to adapt your system and system Control data according to
landscape to changing business requirements in latest standards. 3 Data
PUBLIC 21
Decouple extensions from standard
Keep competitiveness
while reducing 1 Business processes
complexity.
Main aspects
Decouple extensions
Avoid extensions when possible
from standard. 2 Extensibility
Set up a strong governance to create decoupled
extensions in a way that they would work in the cloud
(three-tier model) Control data according to
Separate extensions by leveraging released APIs – latest standards. 3 Data
custom extensions do not break an upgrade and
upgrades do not break an extension
Keep the landscape
Leverage the full capabilities of extensibility on the
stack as well as side by side with SAP BTP reliable and flexible. 4 Integration
PUBLIC 23
What makes extensions
clean core compliant? How to achieve
• Establish a governance model – a clearly defined process with high demands to approve any
extension.
What is a “good” extension? – Prefer standard over custom development by leveraging fit-to-standard best practices.
– Avoid custom code where possible. Don’t extend for rarely needed use cases.
– Prefer “clean” extension options over “unclean” ones.
Main aspects – Use SAP Application Extension Methodology and extensibility guidance to identify the best
path in your landscape.
• Avoid extensions when possible
• Set up a strong governance to create • If you need to extend, a clear separation is key.
decoupled extensions in a way that they – Only access standard objects through released and stable APIs (either remote or locally;
access for reading and changing access possible).
would work in the cloud (three-tier
model) – Choose only “clean” tools or environments and extensibility options (in SAP S/4HANA: key
user, developer, or side-by-side extensions).
• Separate extensions by leveraging
released APIs – custom extensions do • Choose extension domain based on requirements only.
not break an upgrade and upgrades do – SAP BTP automatically decouples extension but is not the only “clean” approach.
not break an extension* – Do not extend in the core simply because “we always do so.”
• Leverage the full capabilities of • Enable awareness.
extensibility on the stack as well as side – In on-premise installations, you can actively decide to develop some extensions not clean
by side with core, as long as they are documented and informed decisions (use cases: copy routines; API
SAP BTP not available, and more).
• Create technical debts only as – Mitigate missing APIs in private cloud or on premise by using wrappers as described in
informed decision ABAP Cloud API Enablement Guidelines for SAP S/4HANA Cloud, private edition, and
SAP S/4HANA.
*Ensuring upgrade stability can be a short-term workaround for
transforming a whole application from traditionally developed code into
– Create requests for APIs using a customer influence tool (for public or private cloud
cloud-compliant (Tier 1) extensions. editions).
PUBLIC 24
Benefits of a Clean Core
Benefits of Clean Core
A clean core allows to adapt the system to changing
business requirements and to adopt new capabilities
while ensuring permanent traceability in all areas of the
core. It provides…
…agility
Benefits Clean environments decrease time to value. Additional process
requirements can be implemented faster and business models can
of Clean adapt to short term challenges more easily.
…data to value
Consistent data allows reliable forecasts and precise predictions.
INTERNAL – SAP and Partners Only 32
Relation of SAP S/4HANA transformations and clean core
# Deviation from clean core (= historically grown complexity)
Continue classically
SAP S/4HANA
SAP ERP Move to
Central Component SAP S/4HANA
Classic Extensibility Approaches &
Clean Core Extensibility
User Interface Layer Application Layer Database Layer
Native/extended
Expose data
Secured mobile applications
SAP S/4HANA connectivity
SAP BTP
Key User
User Interface Event driven
Extensibility Core Solution Rules / Workflow Side-by-Side architectures
Create forms “clean”
/ email Extensibility Process / Events Extensibility
Process automation
templates Data Replication
“clean”
Multiple backends/Hub
Add scenarios
application
logic Multi-tenancy partner apps
Classic
Add database Extensibility1
fields / objects
“unclean”
INTERNAL – SAP and Customers Only 1 SAP S/4HANA on premise only; not “clean core”
36
SAP S/4HANA Cloud extensibility patterns
On-stack Side-by-side
New app
remote API
Remote API call, Side-by-side
Public
consume events
LOOSELY coupled
to SAP data, transaction, app
SAP BUILD
SAP S/4HANA New app
local API
Local API
Public
PRO-DEVELOPER TOOLS
Extend an
extension point
SAP Business
SAP S/4HANA Cloud Technology Platform
PUBLIC Loosely coupled Tightly coupled 37
Big Picture of Developing and Extending with ABAP Cloud
ABAP Cloud
SAP S/4HANA SAP S/4HANA Cloud, SAP S/4HANA Cloud, SAP BTP,
any premise1 private edition1 public edition2 ABAP Environment
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 52
Features of Cloud-Optimized ABAP
Language
Extensibility personas
Business expert,
Persona implementation consultant, Persona Developer
key user
Code
Custom ABAP on
SAP S/4HANA Cloud
ABAP development tools in Eclipse
Cloud-optimized ABAP language
Proven ABAP transport management
4. Path Expressions
6. Input Parameters
7. System Fields
CDS
View
Service Definition
Service Binding
}
INTERNAL – SAP and Partners Only 76
Demo
How to create a CDS View based upon a Database Table
Demo system: H01 (BTP ABAP Environment)
Lifecycle
Service Binding
Protocol: Release
• OData V2/V4 Versioning
• InA Information Access
• SQL Access Deprecation
Scenario:
• Web API
• UI
2
3
1 Tool support
4 UI: SAP Fiori Elements preview
Behaviour
CRUD, Actions,
Locks, eTag Authorizations,
Feature Control,
Data Model Draft
R
2
1 3
Runtime Implementation
INTERACTION PHASE
TX buffer
SAVE SEQUENCE
Behavior definition
Behavior implementation
Development
Object
The data of an application is distributed across several database tables. Using ABAP CDS views, you can rearrange the
table fields according to application-specific needs from the ABAP source code of your implementation
A CDS view entity is defined for existing database tables and views, or for other CDS views in the ABAP Dictionary
Associations
An association defines a structural and unidirectional relationship between two CDS views
Associations are used to navigate from a source CDS view to a related target CDS view
cardinality projection
parent entity
COMPOSITION
To define a composition relationship from the
parent to a child entity
child entity
child entity
parent entity
4. Path Expressions
6. Input Parameters
7. System Fields
© 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 100
CDS Modelling - Agenda
4. Path Expressions
6. Input Parameters
7. System Fields
Associations
ABAP CDS uses Associations to define relationships
between CDS view entities.
Foreign Keys
ABAP Dictionary defines a dependency for table fields to
establish a relationship to another database table.
Association Parts
• Association Target
• Association Name
• Association Condition
Cardinality
number of possible data sets in the
association target for one data set in
the association source
© 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 109
CDS Modelling - Agenda
4. Path Expressions
6. Input Parameters
7. System Fields
• Propagate associations
Association Prefix
• backslash (\).
Element Selector
• hyphen (-)
4. Path Expressions
6. Input Parameters
7. System Fields
4. Path Expressions
6. Input Parameters
7. System Fields
4. Path Expressions
6. Input Parameters
7. System Fields
This mechanism only works when accessing the view from within ABAP.
In CDS and on database level, the parameters remain mandatory
parameters
INTERNAL – SAP and Partners Only 136
Values for @Environment.systemField Annotations
4. Path Expressions
6. Input Parameters
7. System Fields
4. Path Expressions
6. Input Parameters
7. System Fields
https://learning.sap.com/learning-journey/acquire-core-abap-skills
© 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 155