ABAP Cloud Entwickler werden: Der komplette Lernpfad 2025

kategorie
General
Veröffentlicht
autor
Johannes

ABAP Cloud Entwickler sind ab 2025 extrem gefragt – aber der Skill-Gap zwischen Classic ABAP und ABAP Cloud ist beträchtlich. Dieser Lernpfad zeigt Ihnen Schritt für Schritt, wie Sie in 6-12 Monaten vom klassischen ABAP-Entwickler zum gefragten Cloud-Experten werden.

Wo stehen Sie? (Skill-Level Assessment)

Level 1: ABAP-Neueinsteiger

Aktueller Stand:

  • ❌ Keine oder minimale Programmiererfahrung
  • ❌ Keine SAP-Kenntnisse

Was Sie lernen müssen:

  • Programmier-Grundlagen (Variablen, Schleifen, Funktionen)
  • ABAP-Syntax und Grundkonzepte
  • SAP-Grundlagen (Customizing, Transaktion, Mandant)
  • OOP-Prinzipien (Klassen, Interfaces, Vererbung)

Zeitaufwand: 12-18 Monate bis ABAP Cloud

Level 2: Classic ABAP Entwickler

Aktueller Stand:

  • ✅ ABAP-Syntax (SELECT, LOOP, IF/CASE)
  • ✅ Reports, Dynpro, Module Pool
  • ✅ Function Modules, Includes
  • ❌ Kaum OOP-Kenntnisse
  • ❌ Keine Cloud-Erfahrung

Was Sie lernen müssen:

  • Objektorientiertes ABAP (Klassen, Interfaces)
  • CDS Views (Core Data Services)
  • RAP (RESTful ABAP Programming)
  • Eclipse ADT (ABAP Development Tools)
  • Clean Core & Released APIs

Zeitaufwand: 6-12 Monate bis ABAP Cloud

Level 3: Moderne ABAP-Entwickler

Aktueller Stand:

  • ✅ OOP ABAP (Klassen, Interfaces)
  • ✅ CDS Views Grundlagen
  • ✅ Eclipse ADT
  • ✅ HANA-Optimierung
  • ❌ Kein RAP
  • ❌ Keine S/4HANA Cloud / BTP

Was Sie lernen müssen:

  • RAP (Behavior Definitions, EML)
  • Fiori Elements Basics
  • SAP BTP (ABAP Environment)
  • Clean Core Strategie
  • OData Services

Zeitaufwand: 3-6 Monate bis ABAP Cloud

Der 6-Monats-Lernpfad (für Level 2)

┌─────────────────────────────────────────────────────────┐
│ Monat 1-2: Grundlagen festigen │
├─────────────────────────────────────────────────────────┤
│ - OOP ABAP vertiefen │
│ - Eclipse ADT meistern │
│ - CDS Views & Annotationen │
│ - ABAP Unit Testing │
└────────────┬────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ Monat 3-4: RAP Core │
├─────────────────────────────────────────────────────────┤
│ - RAP Managed Scenario │
│ - Behavior Definitions (BDEF) │
│ - EML (Entity Manipulation Language) │
│ - Determinations & Validations │
│ - Actions │
└────────────┬────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ Monat 5: Integration & UI │
├─────────────────────────────────────────────────────────┤
│ - OData V4 Services │
│ - Fiori Elements Basics │
│ - Service Bindings │
│ - UI Annotationen │
└────────────┬────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ Monat 6: Praxis & Zertifizierung │
├─────────────────────────────────────────────────────────┤
│ - Eigenes RAP-Projekt (siehe unten) │
│ - SAP Learning Hub (optional) │
│ - Community-Beiträge (Blog, GitHub) │
│ - SAP Zertifizierung (optional) │
└─────────────────────────────────────────────────────────┘

Phase 1: Grundlagen festigen (Monat 1-2)

1.1 Objektorientiertes ABAP

Warum wichtig? ABAP Cloud ist 100% OOP. Ohne OOP kein RAP.

Was lernen:

" Klassen & Interfaces verstehen
INTERFACE zif_calculator.
METHODS add IMPORTING iv_a TYPE i iv_b TYPE i RETURNING VALUE(rv_result) TYPE i.
ENDINTERFACE.
CLASS zcl_calculator DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_calculator.
ENDCLASS.
CLASS zcl_calculator IMPLEMENTATION.
METHOD zif_calculator~add.
rv_result = iv_a + iv_b.
ENDMETHOD.
ENDCLASS.
" Vererbung
CLASS zcl_base DEFINITION ABSTRACT.
PUBLIC SECTION.
METHODS process ABSTRACT.
ENDCLASS.
CLASS zcl_child DEFINITION INHERITING FROM zcl_base.
PUBLIC SECTION.
METHODS process REDEFINITION.
ENDCLASS.
" Polymorphismus
DATA(lo_calc) = CAST zif_calculator( NEW zcl_calculator( ) ).
DATA(lv_result) = lo_calc->add( iv_a = 5 iv_b = 3 ).

Lernressourcen:

  • 📚 Buch: “ABAP Objects” (Horst Keller, SAP Press)
  • 🎥 YouTube: SAP Developers Channel – “OOP in ABAP”
  • 🖥️ Hands-on: openSAP Course “Object-Oriented Programming in ABAP”

Übungen:

  1. Implementieren Sie eine Interface-basierte Strategie (z.B. verschiedene Discount-Berechnungen)
  2. Erstellen Sie eine abstrakte Basisklasse mit Vererbung
  3. Nutzen Sie Design Patterns (Factory, Singleton)

1.2 Eclipse ADT

Warum wichtig? ABAP Cloud wird NUR in Eclipse ADT entwickelt (nicht SE80).

Was lernen:

  • ADT Installation & Setup
  • ABAP-Projekt anlegen
  • Quick Fixes (Ctrl+1)
  • Refactoring-Tools
  • Shortcuts

Setup:

Terminal window
# 1. Eclipse installieren
# https://tools.hana.ondemand.com/#abap
# 2. ABAP Development Tools Plugin
Help Install New Software
https://tools.hana.ondemand.com/latest
# 3. ABAP-Projekt erstellen
File New ABAP Project
System: [Ihr S/4HANA oder BTP System]

Must-Know Shortcuts:

Ctrl+Space Auto-Completion
Ctrl+1 Quick Fix
F3 Navigate to Definition
Ctrl+Shift+G Find References
Ctrl+Shift+F Format Code
Ctrl+/ Comment/Uncomment
F8 Activate
Ctrl+F11 Run

Lernressourcen:

  • 🎥 SAP Developers YouTube: “ABAP Development Tools Tutorial”
  • 📄 SAP Help: help.sap.com/adt

1.3 CDS Views

Warum wichtig? CDS Views sind das Datenmodell in RAP. Ohne CDS kein RAP.

Was lernen:

-- Interface View (I_*): Datenmodell
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Customer - Interface View'
define view entity ZI_Customer
as select from kna1
association [0..*] to ZI_SalesOrder as _SalesOrders
on $projection.CustomerId = _SalesOrders.SoldToParty
{
key kunnr as CustomerId,
name1 as CustomerName,
ort01 as CityName,
land1 as Country,
@Semantics.user.createdBy: true
ernam as CreatedBy,
@Semantics.systemDateTime.createdAt: true
erdat as CreatedOn,
// Association
_SalesOrders
}
-- Consumption View (C_*): UI-spezifisch
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Customer - Consumption View'
@Metadata.allowExtensions: true
@UI: {
headerInfo: {
typeName: 'Customer',
typeNamePlural: 'Customers',
title: { value: 'CustomerName' }
}
}
define view entity ZC_Customer
as projection on ZI_Customer
{
@UI.facet: [{ position: 10, type: #IDENTIFICATION_REFERENCE }]
key @UI.lineItem: [{ position: 10 }]
@UI.identification: [{ position: 10 }]
CustomerId,
@UI.lineItem: [{ position: 20 }]
@UI.identification: [{ position: 20 }]
CustomerName,
@UI.lineItem: [{ position: 30 }]
CityName,
@UI.lineItem: [{ position: 40 }]
Country,
_SalesOrders : redirected to composition child ZC_SalesOrder
}

Lernressourcen:

Übungen:

  1. Erstellen Sie CDS Views für Ihre Lieblingstabellen (VBAK, EKKO, etc.)
  2. Implementieren Sie Assoziationen (1:n, n:m)
  3. Nutzen Sie Annotationen (@Semantics, @ObjectModel)

1.4 ABAP Unit Testing

Warum wichtig? Testing ist essentiell in ABAP Cloud. TDD (Test-Driven Development) ist Best Practice.

Was lernen:

CLASS ltc_calculator DEFINITION FINAL FOR TESTING
DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
DATA mo_cut TYPE REF TO zcl_calculator. " CUT = Class Under Test
METHODS:
setup,
teardown,
test_add_positive FOR TESTING,
test_add_negative FOR TESTING,
test_add_zero FOR TESTING.
ENDCLASS.
CLASS ltc_calculator IMPLEMENTATION.
METHOD setup.
CREATE OBJECT mo_cut.
ENDMETHOD.
METHOD test_add_positive.
" Arrange
DATA(lv_a) = 5.
DATA(lv_b) = 3.
" Act
DATA(lv_result) = mo_cut->add( iv_a = lv_a iv_b = lv_b ).
" Assert
cl_abap_unit_assert=>assert_equals(
exp = 8
act = lv_result
msg = '5 + 3 should equal 8'
).
ENDMETHOD.
METHOD test_add_negative.
DATA(lv_result) = mo_cut->add( iv_a = -5 iv_b = 3 ).
cl_abap_unit_assert=>assert_equals( exp = -2 act = lv_result ).
ENDMETHOD.
METHOD test_add_zero.
DATA(lv_result) = mo_cut->add( iv_a = 0 iv_b = 0 ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_result ).
ENDMETHOD.
METHOD teardown.
CLEAR mo_cut.
ENDMETHOD.
ENDCLASS.

Lernressourcen:

Übungen:

  1. Schreiben Sie Tests für existierende Klassen
  2. Üben Sie TDD: Test first, dann Implementation
  3. Nutzen Sie Test Doubles für DB-Zugriffe

Phase 2: RAP Core (Monat 3-4)

2.1 RAP Grundkonzepte

Was lernen:

┌────────────────────────────────────────┐
│ Fiori UI (Browser) │
└───────────────┬────────────────────────┘
▼ OData V4
┌────────────────────────────────────────┐
│ Service Binding │
│ (ZUI_TRAVEL_O4) │
└───────────────┬────────────────────────┘
┌────────────────────────────────────────┐
│ Service Definition │
│ expose ZC_Travel as Travel │
└───────────────┬────────────────────────┘
┌────────────────────────────────────────┐
│ Projection Layer (C_*) │
│ ZC_Travel (Consumption View) │
│ + Projection Behavior │
└───────────────┬────────────────────────┘
┌────────────────────────────────────────┐
│ Business Object Layer (I_*) │
│ ZI_Travel (Interface View) │
│ + Behavior Definition (BDEF) │
│ + Behavior Implementation (ABAP) │
└───────────────┬────────────────────────┘
┌────────────────────────────────────────┐
│ Database (ZTRAVEL) │
└────────────────────────────────────────┘

Lernressourcen:

  • 📚 Artikel: /rap-basics/
  • 🎥 openSAP: “Building Apps with RAP” (kostenlos!)
  • 📖 SAP Press: “ABAP RESTful Application Programming Model”

2.2 Hands-On: Travel App (4-5 Tage)

Projekt: Travel Booking App

  1. Tag 1: Datenmodell

    • Tabellen: ZTRAVEL, ZBOOKING
    • CDS Views: ZI_TRAVEL, ZI_BOOKING
  2. Tag 2: Behavior Definition

    • CRUD Operations
    • Field Properties (readonly, mandatory)
    • Associations
  3. Tag 3: Validations & Determinations

    • validateDates
    • validateCustomer
    • setInitialStatus
    • calculateTotal
  4. Tag 4: Actions

    • acceptTravel
    • rejectTravel
  5. Tag 5: UI

    • Projection Views (ZC_*)
    • UI Annotationen
    • Service Definition & Binding
    • Fiori Elements Preview

Tutorial: developers.sap.com/mission.cp-starter-extensions-abap.html

2.3 EML (Entity Manipulation Language)

Was lernen:

" READ
READ ENTITIES OF zi_travel
ENTITY Travel ALL FIELDS WITH VALUE #( ( TravelId = '00001' ) )
RESULT DATA(lt_travel).
" CREATE
MODIFY ENTITIES OF zi_travel
ENTITY Travel CREATE FIELDS ( AgencyId CustomerId )
WITH VALUE #( ( %cid = 'CID_1' AgencyId = '001' CustomerId = '042' ) )
MAPPED DATA(mapped).
COMMIT ENTITIES.
" UPDATE
MODIFY ENTITIES OF zi_travel
ENTITY Travel UPDATE FIELDS ( Status )
WITH VALUE #( ( TravelId = '00001' Status = 'A' ) ).
COMMIT ENTITIES.
" DELETE
MODIFY ENTITIES OF zi_travel
ENTITY Travel DELETE FROM VALUE #( ( TravelId = '00001' ) ).
COMMIT ENTITIES.

Lernressourcen:

Übungen:

  1. Implementieren Sie alle CRUD-Operationen
  2. Nutzen Sie EML in einem Report
  3. Fehlerbehandlung mit FAILED/REPORTED üben

Phase 3: Integration & UI (Monat 5)

3.1 OData Services

Was lernen:

-- Service Definition
@EndUserText.label: 'Travel Service'
define service ZUI_TRAVEL_O4 {
expose ZC_Travel as Travel;
expose ZC_Booking as Booking;
}
Service Binding:
1. Eclipse ADT → New → Service Binding
2. Binding Type: OData V4 - UI
3. Service Definition: ZUI_TRAVEL_O4
4. Publish
5. Preview → Fiori Elements App öffnet

Lernressourcen:

  • 📄 SAP Help: “OData V4 in RAP”
  • 🎥 SAP Developers: “Building OData Services with RAP”

3.2 Fiori Elements Basics

Was lernen:

  • List Report (Übersichtsliste)
  • Object Page (Detailansicht)
  • UI Annotationen (@UI.lineItem, @UI.facet)
  • Value Helps (@Consumption.valueHelpDefinition)
  • Actions in UI

Beispiel:

@UI: {
headerInfo: {
typeName: 'Travel',
typeNamePlural: 'Travels',
title: { value: 'Description' },
description: { value: 'TravelId' }
}
}
define view entity ZC_Travel
as projection on ZI_Travel
{
// Facets (Tabs auf Object Page)
@UI.facet: [
{ position: 10, type: #IDENTIFICATION_REFERENCE, label: 'General' },
{ position: 20, type: #LINEITEM_REFERENCE, label: 'Bookings', targetElement: '_Bookings' }
]
// List Report Columns
key @UI.lineItem: [{ position: 10 }]
@UI.identification: [{ position: 10 }]
@UI.selectionField: [{ position: 10 }]
TravelId,
@UI.lineItem: [{ position: 20 }]
@UI.identification: [{ position: 20 }]
AgencyId,
// Action Buttons
@UI.lineItem: [
{ type: #FOR_ACTION, dataAction: 'acceptTravel', label: 'Accept' },
{ type: #FOR_ACTION, dataAction: 'rejectTravel', label: 'Reject' }
]
Status
}

Lernressourcen:

Phase 4: Praxis & Zertifizierung (Monat 6)

4.1 Eigenes Projekt: 3 Ideen

Projekt 1: Equipment Management (leicht)

Datenmodell:
- Equipment (ID, Name, Type, Status, PurchaseDate, Cost)
- Maintenance (ID, EquipmentId, MaintenanceDate, Cost, Notes)
Features:
- CRUD für Equipment & Maintenance
- Validation: MaintenanceDate nicht in Zukunft
- Determination: Auto-Status basierend auf letzter Wartung
- Actions: markAsDefect, markAsRepaired
- UI: Fiori Elements (List Report + Object Page)

Projekt 2: Leave Request App (mittel)

Datenmodell:
- Employee (ID, Name, Department, VacationDays)
- LeaveRequest (ID, EmployeeId, StartDate, EndDate, Type, Status, Approver)
Features:
- CRUD für LeaveRequest
- Validations:
- EndDate nach StartDate
- Genug Urlaubstage verfügbar
- Keine Überschneidungen mit anderen Requests
- Determinations:
- Auto-calculate LeaveDays
- Update Employee.VacationDays bei Approval
- Actions:
- approve, reject, cancel
- Draft-enabled (Zwischenspeichern)
- Email-Benachrichtigung (via save_modified Hook)
- UI: Fiori Elements mit Custom Actions

Projekt 3: Expense Management (schwer)

Datenmodell:
- ExpenseReport (ID, EmployeeId, TripDate, TotalAmount, Status)
- ExpenseItem (ID, ReportId, Date, Category, Amount, Receipt)
- Approval (ID, ReportId, ApproverLevel, Approver, Status, Comments)
Features:
- Composition: Report → Items
- Multi-level Approval-Prozess
- Validations:
- Receipts für Items > 100 EUR
- Budget-Check gegen Kostenstelle
- Determinations:
- Auto-calculate TotalAmount
- Next Approver setzen
- Actions:
- submit, approve, reject, requestChanges
- Business Events: ReportSubmitted, ReportApproved
- Integration: PDF-Generation (Receipt Upload)
- Custom Entity: Currency Conversion (via API)
- Authorization: Nur eigene Reports sehen (DCL)
- UI: Custom Fiori Elements (Freestyle für Receipt Upload)

Timeline:

  • Projekt 1: 1 Woche
  • Projekt 2: 2-3 Wochen
  • Projekt 3: 4-5 Wochen

4.2 SAP BTP Trial Account (KOSTENLOS)

Terminal window
# 1. SAP BTP Trial registrieren (kostenlos für 90 Tage)
https://cockpit.hanatrial.ondemand.com
# 2. ABAP Environment (Steampunk) provisionieren
BTP Cockpit Services ABAP Environment Create Instance
# 3. Eclipse ADT verbinden
New ABAP Project Service Instance URL eingeben
# 4. Eigenes RAP-Projekt entwickeln!
Vollwertiges ABAP Cloud System, kostenlos!

Tutorial: /sap-btp-trial-account-create/

4.3 Zertifizierungen

SAP Certified Development Associate - SAP BTP, ABAP Environment

Themen:

  • ABAP Cloud Language
  • CDS Views
  • RAP (Managed & Unmanaged)
  • OData Services
  • Fiori Elements
  • Unit Testing

Vorbereitung:

  • 📚 SAP Learning Hub (€40/Monat): Offizielle Trainings
  • 📖 SAP Press Bücher: “ABAP RESTful Application Programming Model”
  • 🎯 Exam Prep: SAP Learning Room (Übungsfragen)

Kosten: ~€500 Gültigkeit: Unbegrenzt (aber alle 2-3 Jahre neue Versionen)

Wert: ⭐⭐⭐⭐ (sehr wertvoll auf Arbeitsmarkt)

Kostenlose Ressourcen

Online-Kurse

  1. openSAP (kostenlos!)

    • “Building Apps with RAP”
    • “ABAP Platform Introduction”
    • “ABAP RESTful Application Programming Model”
  2. SAP Developers YouTube (kostenlos!)

    • RAP Tutorials
    • ABAP Cloud Basics
    • Hands-on Videos
  3. SAP Community (kostenlos!)

Bücher (Investment)

  1. “ABAP RESTful Application Programming Model” (SAP Press, ~€70)

    • Must-Have für RAP
  2. “Core Data Services for ABAP” (SAP Press, ~€70)

    • Vertiefung CDS Views
  3. “ABAP to the Future” (SAP Press, ~€50)

    • Moderne ABAP-Patterns

Communities & Netzwerk

  1. LinkedIn: SAP ABAP Community Groups
  2. GitHub: github.com/SAP-samples
  3. Stack Overflow: Tag [abap] + [sap-cloud-platform]
  4. Discord/Slack: SAP Developer Groups

Karriere & Gehalt

ABAP Cloud Gehälter (Deutschland, 2025)

LevelErfahrungGehalt (Median)
Junior0-2 Jahre€50.000 - €60.000
Mid-Level2-5 Jahre€60.000 - €80.000
Senior5-10 Jahre€80.000 - €100.000
Lead/Architect10+ Jahre€100.000 - €130.000+
Freelancevariabel€800 - €1.200/Tag

Premium für ABAP Cloud-Skills: +15-25% vs Classic ABAP

Job-Titel

  • ABAP Cloud Developer
  • SAP BTP ABAP Developer
  • RAP Developer
  • S/4HANA Cloud Developer
  • SAP Fiori / ABAP Full Stack Developer

Remote-Möglichkeiten

Sehr gut (80%+ der Jobs remote-friendly ab 2025)

Wichtige Hinweise / Best Practice

  • Nicht alles auf einmal: Fokus auf einen Bereich (z.B. erst RAP, dann Fiori)
  • Hands-on > Theorie: 80% praktische Übung, 20% Lesen/Videos
  • Trial Account nutzen: SAP BTP Trial ist kostenlos – kein Grund nicht zu üben!
  • Community aktiv nutzen: Fragen stellen, Blogs lesen, vernetzen
  • Eigenes Projekt: GitHub-Repository mit RAP-Projekt = Portfolio für Bewerbungen
  • Continuous Learning: ABAP Cloud entwickelt sich schnell – dranbleiben!
  • Classic ABAP nicht vergessen: Viele Firmen haben Legacy-Code, der migriert werden muss
  • Clean Core verstehen: Nicht nur RAP, sondern auch “Warum” und strategischer Kontext
  • Zertifizierung optional: Praktische Erfahrung > Zertifikat (aber Zertifikat hilft)
  • Geduld: 6-12 Monate sind realistisch – nicht entmutigen lassen!

Weitere Ressourcen