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 verstehenINTERFACE 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.
" VererbungCLASS zcl_base DEFINITION ABSTRACT. PUBLIC SECTION. METHODS process ABSTRACT.ENDCLASS.
CLASS zcl_child DEFINITION INHERITING FROM zcl_base. PUBLIC SECTION. METHODS process REDEFINITION.ENDCLASS.
" PolymorphismusDATA(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:
- Implementieren Sie eine Interface-basierte Strategie (z.B. verschiedene Discount-Berechnungen)
- Erstellen Sie eine abstrakte Basisklasse mit Vererbung
- 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:
# 1. Eclipse installieren# https://tools.hana.ondemand.com/#abap
# 2. ABAP Development Tools PluginHelp → Install New Software→ https://tools.hana.ondemand.com/latest
# 3. ABAP-Projekt erstellenFile → New → ABAP Project→ System: [Ihr S/4HANA oder BTP System]Must-Know Shortcuts:
Ctrl+Space Auto-CompletionCtrl+1 Quick FixF3 Navigate to DefinitionCtrl+Shift+G Find ReferencesCtrl+Shift+F Format CodeCtrl+/ Comment/UncommentF8 ActivateCtrl+F11 RunLernressourcen:
- 🎥 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:
- 📚 Artikel: /cds-views/
- 🎥 openSAP: “Building Apps with the ABAP RESTful Application Programming Model”
- 🖥️ Hands-on: developers.sap.com/mission.cp-starter-extensions-abap.html
Übungen:
- Erstellen Sie CDS Views für Ihre Lieblingstabellen (VBAK, EKKO, etc.)
- Implementieren Sie Assoziationen (1:n, n:m)
- 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:
- 📚 Artikel: /abap-unit-testing/
- 🎥 SAP Teched: “ABAP Unit Testing Best Practices”
Übungen:
- Schreiben Sie Tests für existierende Klassen
- Üben Sie TDD: Test first, dann Implementation
- 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
-
Tag 1: Datenmodell
- Tabellen: ZTRAVEL, ZBOOKING
- CDS Views: ZI_TRAVEL, ZI_BOOKING
-
Tag 2: Behavior Definition
- CRUD Operations
- Field Properties (readonly, mandatory)
- Associations
-
Tag 3: Validations & Determinations
- validateDates
- validateCustomer
- setInitialStatus
- calculateTotal
-
Tag 4: Actions
- acceptTravel
- rejectTravel
-
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:
" READREAD ENTITIES OF zi_travel ENTITY Travel ALL FIELDS WITH VALUE #( ( TravelId = '00001' ) ) RESULT DATA(lt_travel).
" CREATEMODIFY ENTITIES OF zi_travel ENTITY Travel CREATE FIELDS ( AgencyId CustomerId ) WITH VALUE #( ( %cid = 'CID_1' AgencyId = '001' CustomerId = '042' ) ) MAPPED DATA(mapped).
COMMIT ENTITIES.
" UPDATEMODIFY ENTITIES OF zi_travel ENTITY Travel UPDATE FIELDS ( Status ) WITH VALUE #( ( TravelId = '00001' Status = 'A' ) ).
COMMIT ENTITIES.
" DELETEMODIFY ENTITIES OF zi_travel ENTITY Travel DELETE FROM VALUE #( ( TravelId = '00001' ) ).
COMMIT ENTITIES.Lernressourcen:
- 📚 Artikel: /eml-entity-manipulation-language/
Übungen:
- Implementieren Sie alle CRUD-Operationen
- Nutzen Sie EML in einem Report
- 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 Binding2. Binding Type: OData V4 - UI3. Service Definition: ZUI_TRAVEL_O44. Publish5. Preview → Fiori Elements App öffnetLernressourcen:
- 📄 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:
- 📄 SAP Fiori Design Guidelines: experience.sap.com/fiori-design
- 🎥 openSAP: “Developing Web Apps with SAPUI5”
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 ActionsProjekt 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)
# 1. SAP BTP Trial registrieren (kostenlos für 90 Tage)https://cockpit.hanatrial.ondemand.com
# 2. ABAP Environment (Steampunk) provisionierenBTP Cockpit → Services → ABAP Environment → Create Instance
# 3. Eclipse ADT verbindenNew 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
-
openSAP (kostenlos!)
- “Building Apps with RAP”
- “ABAP Platform Introduction”
- “ABAP RESTful Application Programming Model”
-
SAP Developers YouTube (kostenlos!)
- RAP Tutorials
- ABAP Cloud Basics
- Hands-on Videos
-
SAP Community (kostenlos!)
- community.sap.com/topics/abap
- Blogs, Tutorials, Q&A
Bücher (Investment)
-
“ABAP RESTful Application Programming Model” (SAP Press, ~€70)
- Must-Have für RAP
-
“Core Data Services for ABAP” (SAP Press, ~€70)
- Vertiefung CDS Views
-
“ABAP to the Future” (SAP Press, ~€50)
- Moderne ABAP-Patterns
Communities & Netzwerk
- LinkedIn: SAP ABAP Community Groups
- GitHub: github.com/SAP-samples
- Stack Overflow: Tag
[abap]+[sap-cloud-platform] - Discord/Slack: SAP Developer Groups
Karriere & Gehalt
ABAP Cloud Gehälter (Deutschland, 2025)
| Level | Erfahrung | Gehalt (Median) |
|---|---|---|
| Junior | 0-2 Jahre | €50.000 - €60.000 |
| Mid-Level | 2-5 Jahre | €60.000 - €80.000 |
| Senior | 5-10 Jahre | €80.000 - €100.000 |
| Lead/Architect | 10+ Jahre | €100.000 - €130.000+ |
| Freelance | variabel | €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
- ABAP Cloud Definition: /abap-cloud-definition/
- RAP Basics: /rap-basics/
- Clean Core Strategie: /clean-core-strategie/
- Migration Classic → Cloud: /migration-classic-zu-abap-cloud/
- VS Code für ABAP Cloud: /vscode-abap-cloud/