Architectural Reference Blueprint • Module 04

SAP RAP Architecture Deep-Dive: Managed vs Unmanaged vs Draft

👤 Andrea Antonio Perrelli (SAP Certified Solution Architect) 📅 October 2026 ⏱ 9 min read 🌎 ABAP RESTful Application Programming Model

Choosing the wrong implementation type in the ABAP RESTful Application Programming Model (RAP) is the single most expensive architectural mistake in S/4HANA migrations. In this guide, explore the exact technical differences between Pure Managed, Managed with Unmanaged Save, Late Numbering, and Draft-Enabled business objects.

1. The Four Implementation Archetypes

In SAP RAP, the Behavior Definition (BDEF) defines the contract between the runtime orchestrator and your persistence layer. Architects must choose between four distinct archetypes:

Archetype Persistence Layer CRUD Responsibility Clean Core Tier
Pure Managed Custom transparent tables 100% Framework Managed Tier-1 ABAP Cloud
Managed with Unmanaged Save Standard legacy BAPIs / FMs Framework buffers; Class saves Tier-2 Quarantine Wrapper
Managed + Late Numbering Custom tables + SNRO Framework CRUD; Class numbers Tier-1 ABAP Cloud
Pure Unmanaged Complex legacy function pools 100% Custom Saver Class Legacy Migration Only

2. Managed with Unmanaged Save: The Tier-2 Lifesaver

In Clean Core architecture, you frequently need to build a modern SAP Fiori Elements application that ultimately creates a standard S/4HANA business document (e.g. Sales Order, Purchase Order) for which SAP has not yet provided a C1-released RAP business object.

Attempting to write a Pure Unmanaged RAP BO requires hundreds of lines of boilerplate code to handle transactional locking, transactional read buffers, and message mapping.

Instead, the Managed with Unmanaged Save archetype provides the ultimate balance:

/* Managed Behavior Definition with Unmanaged Save */ managed implementation in class zbp_r_purchaseorder unique; strict ( 2 ); with unmanaged save; define behavior for ZR_PurchaseOrder alias PurchaseOrder lock master authorization master ( instance ) late numbering { create; update; delete; field ( readonly ) PurchaseOrder; }

3. The Draft Lifecycle: Optimistic Concurrency

In stateless enterprise web applications, users frequently close their browser tab, lose Wi-Fi connectivity, or need hours to complete a complex requisition.

Enabling Draft (with draft;) in your BDEF creates an automatic shadow table (draft table _d) that decouples user input from the live database:

4. Early Numbering vs Late Numbering

Allocation of semantic document identifiers must align with strict audit rules:

Early Numbering (UUID): Keys are generated at the moment of creation (e.g., via cl_system_uuid). Ideal for greenfield cloud applications where semantic sequential numbering is not mandated by tax or legal authorities.
Late Numbering (Number Range Objects): Keys are assigned during the final save sequence (in method adjust_numbers). Guaranteed gapless sequential numbers for invoices, purchase orders, and financial vouchers.
Need to choose your RAP archetype?
Use our free browser-based SAP RAP Architecture Decision Wizard.
Launch RAP Wizard →
COMPLETE ENTERPRISE ARCHITECTURE SUITE

Master Enterprise Clean Core on S/4HANA & SAP BTP

Get all 15 modules, 40 Retina architecture diagrams, 61 production-grade code snippets, editable DOCX specifications, and the SAP BTP AI Companion.

Get Enterprise Suite €9.80 (80% Off) Order on Amazon ($19.99)