Skip to content

RAP vs. abap2UI5

Architecture, Communication & Developer Experience

This page provides a technical comparison between RAP and abap2UI5, focusing on architecture, state management, developer workflow, and communication models.

1. Architectural Paradigms

AspectRAP (Fiori Elements)abap2UI5
Backend StackCDS Views, Behavior Definitions, OData V4 servicesABAP Classes generating XML Views and JSON ViewModels
Frontend StackUI5 Fiori Elements SPAStatic UI5 Freestyle App
RenderingClient interprets metadata and builds UI dynamicallyXML View send by backend, rendered in frontend
UI DefinitionAnnotations in CDS & metadataXML Views created directly in ABAP
CommunicationOData V4 (metadata, data, actions)Simple HTTP requests (Over-the-Wire)
Runtime ControlLogic partly changeable via RAP ImplementationFull control over UI and logic in backend
ModelDefined at designtime via CDSDesigned at Designtime or Runtime via Internal Tables
DraftsManaged via RAP drafts on Model LevelManaged via Serialization on App level

2. Developer Workflow

AspectRAP (Fiori Elements)abap2UI5
Languages/ArtifactsCDS, BDEF, UI annotations, UI5 appABAP class for both View and logic
Frontend DeploymentUI5 Fiori Elements runtime app deployed separatelyShared static UI5 Shell (no app-specific deployment)
Tooling RequirementsADT, Fiori Tools, metadata layersAny ABAP IDE (including SE80), no additional tools
TransportSeparate transport for backend and frontendSingle backend deployment via transport or abapGit
Development StyleDeclarative, metadata-drivenProgrammatic, ABAP-centric
ComplexityHigh: multiple layers & technologiesLow: one language, one layer

3. Client–Server Communication

RAP

plaintext
Browser (Fiori Elements SPA)
  ├──> OData $metadata request
  ├──> OData entity requests
  ├──> Renders UI from metadata
  ├──> Triggers OData actions (CRUD, validation)
Backend (RAP Services)
  └──> Processes requests, returns data/actions

abap2UI5

plaintext
Browser (Static UI5 Shell)
  ├──> HTTP request: Load XML View + ViewModel
  ├──> Renders UI5 controls as defined by backend
  ├──> Sends event requests on interaction via HTTP
Backend (ABAP Class)
  └──> Processes event, updates ViewModel, returns changes

4. Flexibility & Runtime Capabilities

AspectRAP (Fiori Elements)abap2UI5
UI CustomizationLimited to what annotations supportFully flexible via ABAP logic
Runtime Model DynamicsStatic, metadata-boundDynamic via RTTI and runtime logic
Use Case FitIdeal for standard CRUD applicationsSuitable for dynamic, backend-driven UIs
Learning CurveSteep (new concepts, multiple layers)Flat (ABAP-only, no metadata tooling)

5. Cloud Readiness & Compliance

FeatureRAPabap2UI5
ABAP Cloud Compliant✅ Yes✅ Yes
CDS/OData Dependency✅ Required❌ Not used
Clean Core Compliance✅ Yes✅ Yes
Runtime Flexibility❌ Rigid, design-time focus✅ Fully runtime-capable

🔒 Both frameworks are cloud-ready and clean-core compliant. abap2UI5 achieves this without CDS or OData, relying solely on released ABAP APIs.

Conclusion

  • RAP (Fiori Elements) is best suited for standardized, metadata-driven applications using CDS, OData, and annotations.
  • abap2UI5 provides runtime flexibility, backend control, and lower complexity — ideal for dynamic UIs and fast iterations.

Summary Table

CategoryRAP (Fiori Elements)abap2UI5
UI ArchitectureMetadata-based SPABackend-driven Over-the-Wire
Data & ActionsOData V4Simple HTTP
UI CustomizationLimited by annotationsFully dynamic
ToolingADT, Fiori ToolsAny ABAP IDE
Cloud Readiness✅ Yes✅ Yes
Clean Core✅ Yes✅ Yes
Use Case FitStandardized CRUD AppsDynamic, backend-controlled UIs
Learning CurveHighLow
DeploymentSplit backend/frontendPure ABAP backend class