Appearance
How This Course Fits into the SAP S/4HANA Development Landscape
The technologies in this course are not separate topics.
They fit together as part of SAP's modern approach to building and extending business applications around SAP S/4HANA.
The simplest way to think about it is:
text
SAP S/4HANA
=
SAP's standard business processes and business data
ABAP Cloud
=
the modern ABAP development model used to build
upgrade-stable applications and extensions
CDS + RAP
=
the main building blocks for modeling data
and transactional business objects
OData + Fiori
=
ways to expose and consume those business objects1. The big picture
SAP S/4HANA already contains business objects and processes such as:
text
Business Partner
Sales Order
Purchase Order
Material / Product
Journal Entry
Billing Document
Production OrderAs an ABAP developer, you normally do not rebuild these from scratch.
Instead, you may:
text
extend an SAP process
build a new custom business object
create a new application
integrate S/4HANA with another systemA modern SAP extension should use supported, released interfaces rather than depend directly on internal SAP implementation details.
That is one of the main ideas behind:
text
ABAP Cloud
Clean Core
released APIs
RAP2. How the technologies from this course connect
A typical custom RAP application looks like this:
text
User / External System
│
▼
Fiori / API Client
│
▼
OData V4
│
▼
RAP Business Service
│
▼
RAP Business Object
├─ actions
├─ validations
├─ determinations
├─ authorization
└─ feature control
│
▼
CDS
│
▼
Persistence / SAP API
│
▼
SAP HANAEach course topic has a place in that picture.
| Course concept | What it does |
|---|---|
| ABAP | Implements application and business logic |
| ABAP SQL | Reads and writes data you are allowed to access |
| CDS | Models business data and relationships |
| RAP | Adds transactional business-object behavior |
| EML | Lets ABAP code consume RAP Business Objects |
| Validation | Prevents invalid business state |
| Determination | Calculates or defaults data automatically |
| Action | Represents a named business operation such as Approve or Cancel |
| Authorization | Controls what a user is allowed to do |
| OData | Exposes the business service to other consumers |
| Fiori | Provides the user interface |
| SAP HANA | Stores the underlying data |
The important idea is:
CDS describes the business data. RAP controls how that business data may be changed.
3. Where SAP S/4HANA fits
In the course, you create your own objects such as:
text
ZRESV_###
ZR_RESERVATION_###That is useful because you control the complete example.
In a real S/4HANA project, there are two common situations.
Situation A — your application owns the data
For example, your company needs a completely new internal Risk Review object.
You may create:
text
Custom Persistence
↓
Custom CDS
↓
Custom RAP BO
↓
OData Service
↓
Fiori AppThis is very similar to the Reservation application built in the course.
Situation B — S/4HANA already owns the data
For example:
text
Sales Order
Purchase Order
Business Partner
MaterialYou should normally work through an SAP-released API, CDS entity, RAP interface, or extension point.
Conceptually:
text
Your Extension
↓
Released SAP Interface
↓
S/4HANA Business Object
↓
SAP-managed dataYou should not think:
text
"I found the SAP database table,
so I will update it directly."The SAP business object may contain important:
text
validations
status logic
authorization
document flow
accounting logic
events
side effectsthat a direct table modification would bypass.
4. On-stack vs side-by-side development
This is one of the most important distinctions to understand.
On-stack developer extensibility
Your ABAP Cloud extension runs inside the S/4HANA ABAP environment.
text
┌──────────────────────────────┐
│ SAP S/4HANA │
│ │
│ Standard SAP Business Logic │
│ │ │
│ Released SAP APIs │
│ │ │
│ Custom ABAP Cloud │
│ CDS / RAP Extension │
└──────────────────────────────┘This is useful when the extension belongs closely to the S/4HANA process.
Side-by-side extensibility
Your application runs separately on SAP BTP.
text
┌──────────────────────┐
│ SAP S/4HANA │
│ │
│ Standard Processes │
└──────────┬───────────┘
│
Released API
or Event
│
▼
┌──────────────────────┐
│ SAP BTP │
│ │
│ ABAP Cloud App │
│ CDS / RAP │
│ Custom Persistence │
└──────────────────────┘The two systems have separate lifecycles.
They communicate through supported integration contracts.
5. Where your BTP Trial fits
The SAP BTP ABAP Trial used in this course is not an S/4HANA system.
It is its own ABAP environment.
When you create:
text
ZRESV_###you are creating a table in your BTP ABAP environment.
You are not adding a table to S/4HANA.
What Trial gives you is the ability to learn the same important development model:
text
ABAP Cloud
CDS
RAP
EML
OData
ADTSo the skills transfer.
The difference in a real S/4HANA project is mainly:
text
where your code runs
and
how it reaches SAP business data6. Two real-world examples
Example 1 — custom quality review inside S/4HANA
A manufacturer needs a small custom quality-review application connected closely to an existing manufacturing process.
A possible architecture is:
text
S/4HANA Manufacturing Data
│
▼
Released SAP Interface
│
▼
Custom ABAP Cloud Code
│
▼
Custom RAP BO
│
▼
OData V4
│
▼
Fiori AppHere, the extension runs on the S/4HANA stack.
The techniques from this course apply directly:
text
CDS
RAP
validations
actions
authorization
OData
FioriExample 2 — supplier application on SAP BTP
A company wants a supplier-facing application that uses Purchase Order information from S/4HANA but also stores its own:
text
supplier comments
review status
external documents
approval informationA possible architecture is:
text
SAP S/4HANA
Purchase Order
│
▼
Released API / Event
│
▼
SAP BTP ABAP Environment
│
├─ Custom Persistence
├─ CDS
├─ RAP
└─ Business Logic
│
▼
OData / ApplicationIn this case:
text
S/4HANA owns the Purchase Order
BTP owns the extension-specific dataThat separation is important.
7. Where Clean Core fits
Clean Core does not mean:
text
no custom codeIt means custom development should avoid unnecessary dependencies on SAP internals.
A simplified comparison is:
text
Tightly coupled approach
Custom Code
↓
Internal SAP Table / Internal Objectversus:
text
Clean Core-oriented approach
Custom Extension
↓
Released SAP API / Extension Point
↓
SAP S/4HANAReleased contracts make it easier for SAP to change internal implementation without breaking customer extensions.
That is why modern SAP development places so much emphasis on:
text
released APIs
ABAP Cloud
RAP
extension points
side-by-side applications8. How your course progression maps to a real application
The course gradually builds this architecture:
text
Database / Persistence
↓
CDS
↓
RAP Business Object
↓
Behavior
├─ CRUD
├─ validations
├─ determinations
├─ actions
├─ authorization
└─ draft
↓
Projection
↓
Service Definition
↓
Service Binding
↓
OData V4
↓
Fiori / API ConsumerIn a real S/4HANA project, the bottom of the diagram may change.
If you own the data:
text
RAP
↓
your custom persistenceIf SAP owns the data:
text
your extension
↓
released SAP interface
↓
S/4HANA business objectThat is the connection between the training environment and real SAP development.
9. The main idea to remember
You do not need to memorize every SAP product and layer.
Remember this:
text
SAP S/4HANA
=
the core ERP business system
ABAP Cloud
=
the modern ABAP development model
CDS
=
the business data model
RAP
=
the transactional business-object model
EML
=
ABAP-to-RAP consumption
OData
=
service exposure
Fiori
=
the user experience
SAP BTP
=
a platform where side-by-side extensions
and integrations can runAnd the most important architectural rule is:
Work through stable business contracts rather than coupling custom code directly to SAP's internal implementation.
That is how the technologies taught in this course fit together in the SAP S/4HANA development landscape.