Clean-Core Redesign: ECC Custom Code to RAP
Modernizing a legacy ECC custom solution to a Clean Core compliant RAP application on S/4HANA Private Cloud, utilizing OData v4 and Fiori Elements.
Role
Lead Architect
Period
2024
Tech Stack
ABAP RAP, OData v4, Fiori Elements, CDS Views
Key Outcomes
Problem
Business Challenge
Ein Energieversorgungsunternehmen stand vor der S/4HANA-Migration, aber eine geschäftskritische Z-Transaktion für Complex Procurement Requests (CPR) blockierte den Upgrade-Pfad. 450+ Anwender nutzten täglich dieses Custom Development für Beschaffungen mit Sondergenehmigungen (>€100k, strategische Lieferanten, Rahmenverträge).
Technical Debt
- 12 User Exits tief integriert in Standard Purchase Requisition Logic
- 3 Modifications an SAP-Standard-Dynpro-Screens
- 15.000 Lines of Code in einer monolithischen Z-Transaction
- Zero Test Coverage: Manuelle Tests für jedes Support Package
- Upgrade Blocker: SAP Code Inspector zeigte 347 kritische Findings
Business Impact
- Stuck on ECC: S/4HANA Upgrade seit 2 Jahren blockiert
- Rising Maintenance Costs: 3x höhere Support-Kosten für alte ECC-Version
- Security Risks: Veraltete System-Version ohne Security Patches
- Lost Innovation: Neue S/4HANA Features (Embedded Analytics, ML) nicht verfügbar
- Cloud Transformation Blocked: Private Cloud Transition nicht möglich
Solution
Strategic Approach: Clean-Sheet Redesign
Statt "Lift-and-Shift" entschieden wir uns für einen kompletten Neuaufbau mit ABAP RESTful Application Programming Model (RAP) und strikte Clean Core Compliance.
Architecture Principles
- Zero Modifications Policy: Kein Customizing am Standard SAP Code
- Released APIs Only: Ausschließlich freigegebene Interfaces (I_PurchaseRequisitionTP)
- Tier 1 First: Vorrangig Key User Extensibility, nur bei Unmöglichkeit auf Developer Extensibility
- Fiori Elements: Standard-Floorplan statt Custom UI Development
Technical Solution
RAP Business Object
Wir erstellten ein Custom RAP Business Object ZI_ComplexProcurementRequest:
define behavior for ZI_ComplexProcurementRequest
implementation in class zbp_i_cpr unique
persistent table zcpr_header
lock master
{
create;
update;
delete;
association _Items { create; }
determination determineApprovalLevel on modify { field TotalAmount; }
validation validateSupplier on save { field Supplier; }
action approve result [1] $self;
action reject result [1] $self;
}Integration with Standard
Vorher: User Exits manipulierten Standard Purchase Requisition Nachher: RAP Business Object nutzt Released API
" Integration via Released API
DATA(lo_pr) = cl_bapi_pr_api=>get_instance( ).
lo_pr->create_pr(
EXPORTING
it_items = lt_items
iv_custom_object_id = lv_cpr_id " Link to CPR
).Extensibility Strategy
| Requirement | Solution | Tier |
|---|---|---|
| Custom Fields | Key User Extensibility | Tier 1 |
| Approval Workflow | Flexible Workflow (via BTP) | Tier 2 |
| Complex Validations | BADI Implementation | Tier 2 |
| Reporting | Embedded Analytics CDS | Tier 1 |
UI Modernization
Vorher: Dynpro Transaction mit 15 Subscreens Nachher: Fiori Elements List Report + Object Page
- List Report: Übersicht aller CPRs mit Faceted Search
- Object Page: Multi-Tab Layout (Header, Items, Approvals, Attachments)
- Draft Pattern: Automatisches Speichern während Bearbeitung
- Annotations: 90% UI via CDS Annotations, 10% Extension Points
Result
Business Outcomes
- S/4HANA Upgrade Enabled: Upgrade erfolgreich durchgeführt (8 Monate nach Go-Live)
- 40% Maintenance Cost Reduction: Von 3 FTE auf 1.8 FTE für Support
- Private Cloud Ready: Migration zu S/4HANA Private Cloud vorbereitet
- Future-Proof: Vorbereitet für zukünftige Upgrades ohne Code-Anpassungen
- Innovation Unlocked: Embedded Analytics, Fiori 3.0, SAP AI Business Services jetzt nutzbar
Technical Achievements
- 100% Clean Core Compliant: Zero Modifications, Zero User Exits im Standard
- 12.000 Lines of Code Eliminated: Von 15k auf 3k LoC reduziert
- 85% Code Coverage: Vollständige Unit Tests für RAP Behavior
- < 300ms Response Time: Performante CDS Views mit HANA Optimization
- Zero Downtime Deployment: Blue-Green Deployment für Updates
Quantifiable Impact
| Metric | Before (ECC Z-Code) | After (RAP Clean Core) | Improvement |
|---|---|---|---|
| Maintenance FTE | 3.0 | 1.8 | 40% reduction |
| Upgrade Readiness | Blocked (347 Findings) | Ready (0 Findings) | 100% |
| Code Volume | 15.000 LoC | 3.000 LoC | 80% reduction |
| Test Coverage | 0% | 85% | Full automation |
| User Training Time | 2 days | 4 hours | 75% faster |
| Response Time | 800ms | <300ms | 62% faster |
User Experience Impact
- Modern UI: Fiori 3.0 statt Dynpro - mobile-tauglich, responsive
- User Satisfaction: NPS von 42 auf 78 gestiegen
- Training Effort: Von 2 Tagen auf 4 Stunden reduziert (Fiori ist intuitiv)
- Mobile Access: 30% der User nutzen jetzt iPad/Tablet für CPR-Genehmigungen
Clean Core Benefits Realized
Upgrade Path Cleared
- Before: Jedes Support Package erforderte 40h Test-Aufwand
- After: Upgrades ohne Custom Code Testing (nur Integrationstests)
- Result: S/4HANA Upgrade von 2 Jahren Verzögerung auf On-Time
Reduced TCO
| Cost Category | Annual Before | Annual After | Savings |
|---|---|---|---|
| Maintenance | €180k | €108k | €72k |
| Support | €120k | €60k | €60k |
| Upgrades | €200k | €80k | €120k |
| Total | €500k | €248k | €252k |
ROI: Initial Investment €400k, Break-Even nach 19 Monaten
Key Success Factors
Change Management
- User Champions: 5 Power User in Redesign-Prozess eingebunden
- Pilot Phase: 2 Monate Beta mit 50 Early Adopters
- Communication: Wöchentliche Updates an 450+ End User
Technical Excellence
- ABAP Unit Tests: 85% Code Coverage verhindert Regressions
- CDS Performance: HANA-optimierte Views (300ms statt 800ms)
- Documentation: Arc42-Light Architektur-Dokumentation im Git
Lessons Learned
Clean-Sheet vs. Lift-and-Shift
Die Entscheidung, komplett neu zu bauen statt zu migrieren, war richtig. Alte Technical Debt mitzunehmen hätte Upgrade-Fähigkeit nicht gesichert.
Released APIs sind ausreichend
Vorbehalte, dass Released APIs nicht alle Anforderungen abdecken, haben sich nicht bestätigt. 95% der Use Cases waren abdeckbar.
Fiori Elements Adoption
Anfängliche User-Skepsis ("Wir wollen unsere alte Transaktion") löste sich auf. Nach 2 Wochen Nutzung wollte niemand zurück zu Dynpro.
RAP Maturity
RAP auf S/4HANA Private Cloud ist production-ready. Performance, Stabilität und Tooling-Support sind exzellent.
Diese Case Study zeigt, wie Clean Core Transformation echten ROI liefert: €252k jährliche TCO-Reduktion, S/4HANA Upgrade-Fähigkeit wiederhergestellt und moderne User Experience mit Fiori Elements.