Skip to content

RAP vs. abap2UI5

Architecture, Communication, and Developer Experience

This page offers a structured technical comparison of 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 producing XML Views and JSON ViewModels
Frontend StackUI5 Fiori Elements SPAStatic UI5 Freestyle App
RenderingClient interprets metadata and builds the UI dynamicallyBackend sends XML View, frontend renders it
UI DefinitionAnnotations in CDS and 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 design time via CDSDefined at design time 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 extra tools
TransportSeparate transport for frontend and backendSingle backend deployment via transport or abapGit
Development StyleDeclarative, metadata-drivenProgrammatic, ABAP-centric
ComplexityHigh: multiple layers and 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 defined by the backend
  ├──> Sends event requests on interaction over HTTP
Backend (ABAP Class)
  └──> Processes event, updates ViewModel, returns changes

4. Flexibility and 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 FitBest for standard CRUD applicationsBest for dynamic, backend-driven UIs
Learning CurveSteep (new concepts, multiple layers)Flat (ABAP-only, no metadata tooling)

5. Cloud Readiness and 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 does this without CDS or OData, relying only on released ABAP APIs.

Conclusion

  • RAP (Fiori Elements) fits best for standardized, metadata-driven applications with CDS, OData, and annotations.
  • abap2UI5 offers runtime flexibility, backend control, and lower complexity — fitting well for dynamic UIs and fast iteration.

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 frontend/backendPure ABAP backend class