SAP System Landscape & Architecture
Each dialog step gets a work process only for its duration; user context is rolled in and out.
2.1 Three-tier architecture
┌────────────────────────────┐
│ Presentation layer │ SAP GUI, Fiori Launchpad (browser), ADT (Eclipse)
└──────────────┬─────────────┘
│ DIAG / HTTP(S) / RFC
┌──────────────▼─────────────┐
│ Application layer (AS ABAP) │ dispatcher, work processes (DIA, BTC, UPD, UP2, ENQ, SPO),
│ │ ABAP runtime, ICM (HTTP), gateway (RFC), buffers
└──────────────┬─────────────┘
│ Database interface (ABAP SQL → native SQL)
┌──────────────▼─────────────┐
│ Database layer │ SAP HANA (S/4HANA); Oracle, DB2, MS SQL, MaxDB (ECC)
└────────────────────────────┘2.2 Work process types
Interactive user requests, RFC calls BTC (background) Asynchronous update tasks (V1 / V2) Lock management (enqueue server) Spool (printing)
Each dialog step gets a work process only for its duration; user context is rolled in and out. This is why long-running dialog steps hit a time limit (profile parameter rdisp/max_wprun_time, often 600 s) and why background jobs exist.
2.3 Clients
A client (Mandant, 3-digit, e.g. 100) is a self-contained business unit within one system. Most tables are client-dependent (first key field MANDT / CLIENT); ABAP SQL filters by the logon client automatically. Repository objects (programs, classes, DDIC) are cross-client.
SAP reference client Copy of 000 (sometimes) EarlyWatch (obsolete in newer releases)
Customer clients: development, customizing, unit test
2.4 The system landscape
Changes are recorded in transport requests (e.g. DEVK900123) containing tasks per developer.
Workbench requests carry repository objects (cross-client); customizing requests carry client-specific configuration.
Transactions: SE09/SE10 (Transport Organizer), STMS (Transport Management System), SE03 (tools).
Objects belong to a package (formerly development class, e.g. ZFI_REPORTS); $TMP is the local, non-transportable package.
Customer objects must start with Z or Y (or a registered namespace like /ACME/).
DEV (development) ──transport──► QAS (quality/test) ──transport──► PRD (production)
│ changes made here │ UAT, integration test │ business use only2.5 Repository and runtime
ABAP source lives in the database (table REPOSRC). On first execution the source is compiled to a load cached in the program buffer. Activation makes a new version visible; inactive versions are visible only to the developer.