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 only

2.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.