IT CanvassTalk to an advisor
SAP architecture · LessonBy , SAP Solution Architect · Updated

SAP architecture, end to end, in plain English

SAP is not one product, and that is the first thing nobody tells you. It is a database, an application server, an ERP built on top of both, a cloud platform beside it and a portfolio of applications around it. This page walks all thirteen layers, follows a Fiori click all the way down to a row in HANA, and explains the save sequence that answers most of the questions people spend years being confused by. No prior SAP experience assumed.

The whole landscape in sixty seconds

Start here

A business process runs in an application, the application runs on an application server, the application server keeps its data in a database, and everything that is not the application server hangs off a platform beside it. That is SAP. Everything else on this page is detail hung off those four clauses. Once that clicks, the architecture stops feeling like a wall of three-letter names and starts feeling like layers.

Three editions, one set of ideas

SAP Cloud ERP is multi-tenant SaaS that SAP upgrades quarterly. SAP Cloud ERP Private is your own system on a hyperscaler under RISE. On-premise is your own system in your own data centre. The words differ and the extensibility ceiling differs, but HANA, ABAP, CDS views and the Universal Journal mean the same thing in all three.

Six ideas explain most of the data

Client, configuration, organisational structure, master data, transactional data and the CDS virtual data model. Almost every confusing table becomes obvious the moment you can say out loud which of those six you are looking at and which layer above it is meant to read it.

The save sequence is fixed

Authorisation, then logic on a buffer, then the enqueue lock, then COMMIT WORK and an asynchronous update task. Always that order, every time. Most SAP behaviour that looks mysterious is really a misunderstanding of that sequence, which is documented below in full.

The thirteen layers

Click any layer to jump straight into it

L0
Deployment & EditionsThere is no single thing called SAP. There is a family of deployment shapes around one ERP core, and almost every confusing conversation about SAP architecture comes from two people standing in different shapes and using the same words.
L1
SAP HANAHANA is an in-memory, column-oriented relational database that keeps the whole working set in RAM, compresses it heavily, and pushes calculation down into the database so the application layer stops shuttling rows around.
L2
ABAP PlatformThe ABAP platform is the runtime that sits between the database and the business logic: it manages work processes, dispatches user requests, isolates business data by client, and provides the programming language, the object repository and the transport system that everything above it depends on.
L3
S/4HANA Application & Data ModelS/4HANA is the business application: the modules, the documents, the master data and the configuration that turn a database and an application server into something that can run a company.
L4
User Experience & Programming ModelSAP Fiori is the design system and the app portfolio; SAPUI5 is the JavaScript framework the apps are built in; OData is the protocol between them and the server; and RAP is the ABAP-side model that generates most of that plumbing for you.
L5
Clean Core & ExtensibilityClean core is the discipline of putting every change on a released, stable interface instead of inside SAP's own code, so that an upgrade is a scheduled event rather than a regression project.
L6
SAP Business Technology PlatformBTP is SAP's platform as a service: an account model, a set of runtimes to deploy code into, and a catalogue of services covering integration, data, analytics, identity, automation and AI, all consumed through entitlements rather than installed.
L7
IntegrationSAP integration is a stack of protocols that never fully retired anything: IDoc and RFC from the nineties, SOAP and OData from the web era, events and APIs from the cloud era, all mediated in 2026 by SAP Integration Suite.
L8
Data & AnalyticsSAP's analytics story in 2026 is Business Data Cloud: a managed layer that turns SAP application data into governed data products and makes them available to Datasphere, SAP Analytics Cloud, BW and a native Databricks lakehouse without copying them around.
L9
SAP Business AISAP Business AI in 2026 is three layers: a context layer that grounds models in your business data and process knowledge, a build layer for making agents, and a governance layer for knowing which agents exist and what they did.
L10
Security & AuthorizationSAP authorisation is not a permission list. It is a set of authorisation objects with fields, checked in code, bundled into profiles by roles, with an entire discipline built around designing the bundles so that people can work without being able to do everything.
L11
Landscape & LifecycleAn SAP landscape is a chain of systems connected by a transport path, operated through a defined set of tools, upgraded on a published cadence, and changed under a methodology that exists because unmanaged change in an ERP is genuinely dangerous.
L12
The Wider SAP PortfolioMost large SAP estates are not one system. They are an ERP core surrounded by line-of-business cloud applications that SAP acquired or built, each with its own data model, release cycle and integration story.

Five pictures that explain most of the landscape

Architecture diagrams

If you only take five things away from this page, take these. Each diagram is drawn to match how SAP really behaves, not how it is usually drawn in a sales deck, and each one is explained in words underneath so you are never guessing at what a box or an arrow means.

D1

Where your landscape actually is, in 2026

The single most useful picture in SAP architecture. Almost every scoping argument on an SAP programme is really an argument about which of these boxes exists and who is responsible for it.

Scroll the diagram sideways, or tap Enlarge for a bigger view

YOUR NETWORK - BEHIND YOUR FIREWALLSAP on-premise systemsECC, S/4HANA, BWNon-SAP applicationsDatabases and file sharesCorporate identity providerEntra ID, Okta, ADFSLegacy middlewarePI and PO, being retiredEDI, print, devicesLocal infrastructureCLOUD CONNECTORMasterHolds the configShadowFor high availabilityOnly the resource pathsan administrator listedare reachable at all.One instance meanspatching is an outageOUTBOUND 443 ONLYNO INBOUND PORTSTRAFFIC RETURNS DOWNTHE SAME TUNNELHYPERSCALER REGION - YOUR PRIVATE CLOUD ERPSAP Cloud ERP PrivateSingle tenant, your code,your upgrade windowSAP HANAYour database, sized foryour own workloadOperated under RISE with SAPSAP runs infrastructure and the technical managed service. Basis,notes, custom code and the upgrade decision usually stay with you.APIs and eventsSAP CLOUD - PLATFORM AND SAAS APPLICATIONSSAP Business Technology PlatformIntegration Suite, Cloud Identity Services, AI Foundation,Datasphere, application runtimes, your extension appsSAP Cloud ERPPublic editionQuarterly upgradesyou do not deferLine of businessSuccessFactors, Ariba,Concur, Fieldglass,Customer ExperienceBusiness Data CloudDatasphere, AnalyticsCloud, BW, Databricks1There is no single SAP landscape any more. Almost every real estate is a hybrid of on-premise systems, a private cloud ERP on a hyperscaler, and SaaS.2The Cloud Connector is the only SAP component you install to bridge the two. It dials out and holds the tunnel open; nothing dials in.3BTP is the seam. Integration, identity, extensions, data and AI all live there, which is why it is described as the foundation rather than a product.4The first architecture question is always which of these boxes you actually have, and who is contractually responsible for each one.
How to read it. On the left is everything you already run: the on-premise SAP systems, the applications that were never meant to be reachable from the internet, the corporate identity provider, the middleware you are trying to retire. On the right are the two cloud halves. One is a hyperscaler region holding a private cloud ERP that is still your system, still your custom code and still your upgrade window, operated under RISE with SAP. The other is SAP's own cloud: BTP, plus the SaaS applications that were separate companies not very long ago. Between the two sits the Cloud Connector, and the important detail is the direction of travel. The Cloud Connector dials out over 443, holds the tunnel open and exposes only the resource paths an administrator explicitly listed. Nothing from the cloud dials into your network, which is why security teams sign it off, and it is also why running exactly one Cloud Connector turns routine patching into an integration outage. The honest version of this diagram for most organisations has boxes in all three areas at once, which is the real reason SAP architecture is hard.
D2

What is actually running inside an ABAP application server

People treat the application server as a black box for years. It is a small number of named parts, and knowing which is which turns most performance tickets into five-minute diagnoses.

Scroll the diagram sideways, or tap Enlarge for a bigger view

WHAT IS ACTUALLY RUNNING INSIDE AN ABAP APPLICATION SERVERONE APPLICATION SERVER INSTANCEInternet Communication ManagerTerminates HTTP and HTTPS.The web front door of the stack.DispatcherQueues incoming requests andassigns them to free work processes.Work processesDialog, background, update, spool.A finite number, and that is the point.BuffersTable, program and number range.Synchronised on an interval, not instantly.Roll area and shared memoryUser context is rolled in and out between dialog steps, which is exactly why onebadly written report can hold the processes everybody else is queueing for.CENTRAL SERVICESEnqueue serverMessage serverOne of each persystem, not perinstanceEvery save passesthrough the lockWHAT TO WATCHWork process usageEnqueue wait timeUpdate queue depthLong running stepsResponse time splitsinto processing,database, roll waitand enqueueTHE BEHAVIOUR THAT SURPRISES EVERYBODY ARRIVING FROM ANOTHER PLATFORMA dialog work process does not normally write to the database itself. It runs the logic, takes the lock, hands thechange to an update work process and is free to answer the user. The update happens moments later, asynchronously.That is why a transaction can report success on screen and leave no document behind, recorded as an updatetermination rather than an error the user ever saw.When somebody says it saved but the document is not there, look at the update records first. It is almost always this.
How to read it. The ICM terminates HTTP and HTTPS and is the web front door of the whole stack. The dispatcher queues requests and hands each one to a free work process. Work processes come in types, dialog, background, update and spool, and there is a finite number of them; a system that has apparently frozen is very often a system with no free dialog processes. Buffers hold table, program and number range data in the instance's own memory, and they synchronise on an interval rather than instantly, which is exactly why a configuration change can look correct on one application server and stale on another. The roll area holds user context between dialog steps. Two services exist once per system rather than once per instance: the enqueue server, which every save passes through to take its logical lock, and the message server, which the instances use to find each other. The behaviour that surprises everyone arriving from another platform is at the bottom. The dialog process usually does not write to the database itself. It runs the logic, takes the lock, hands the change to an update work process and is immediately free to answer the user. That is why a transaction can report success on screen and leave no document behind, recorded as an update termination rather than as an error the user ever saw.
D3

The thirteen layers, in order

Read it from the bottom. Each layer only makes sense once the one beneath it does, and each layer is somebody's whole job somewhere.

Scroll the diagram sideways, or tap Enlarge for a bigger view

A REQUEST TRAVELS DOWN THE STACK AND THE ANSWER TRAVELS BACK UPINOUTL0Deployment & EditionsWhich SAP you are actually looking at, and who runs itL1SAP HANAThe database that made the rest of it possibleL2ABAP PlatformThe application server that has run SAP for thirty yearsL3S/4HANA Application & Data ModelWhere the business logic and the business data actually liveL4User Experience & Programming ModelFiori, UI5, OData and the model that connects them to business logicL5Clean Core & ExtensibilityHow to change SAP without making it unupgradeableL6SAP Business Technology PlatformThe platform everything that is not the ERP core runs onL7IntegrationHow SAP talks to everything else, and to itselfL8Data & AnalyticsWhere the numbers go once they are more than one system's businessL9SAP Business AIJoule, agents, and the platform underneath themL10Security & AuthorizationWho can do what, in a system that expresses it in unusual waysL11Landscape & LifecycleHow change gets from an idea into production without breaking itL12The Wider SAP PortfolioEverything around the ERP that is also called SAP
How to read it. Read it as a stack, not a hierarchy. A Fiori app cannot reach the database on its own; the request travels down through the programming model, the ABAP runtime and the CDS view before a single row is read, and the answer travels back up the same way. When something breaks, the useful question is not what went wrong but which layer went wrong, because that decides who fixes it and where you look. Notice also that the stack is deliberately wider at the top: deployment, HANA and ABAP are close to universal, while extensibility, integration, analytics and AI are where organisations differ most from each other. The stack explorer further down this page opens each of these thirteen layers in full.
D4

From a click in the browser to a row in the database

Saving a record is not one step. It is a chain, and the last link in the chain is asynchronous, which is the single most misunderstood fact about the platform.

Scroll the diagram sideways, or tap Enlarge for a bigger view

FROM A CLICK IN THE BROWSER TO A ROW IN THE DATABASEA tile in the Fiori launchpadOnly what this business role allowsA target mapping resolves the appA semantic object and an action, not a URLOData: metadata first, then dataFor Fiori elements the metadata is the appINSIDE THE ABAP SERVERA work process is takenThe ICM hands the requestto the dispatcherAuthorisation is checkedAgainst the buffer builtwhen the user logged onRAP runs on a bufferDeterminations, validationsand actions, all in memoryThe enqueue lock is takenA lock on the business object,not on a database rowNothing is on disk yet. Reading the database at this point will not show you what the user just did.The update task, then COMMIT WORKThe dialog process is already freeThe rows exist in HANARedo written, delta store first,merged into main store laterOr the update terminatesSuccess on screen and no document,which is the classic false alarmEvery caller takes this path. A Fiori app, an OData call from an extension, an RFC from another SAP systemand an agent skill all arrive through the same front door. There is no side entrance, and that is deliberate.
How to read it. A launchpad tile shows only what the business role allows, so the launchpad is an authorisation artefact and not just a menu. The tile resolves through a target mapping, expressed as a semantic object and an action rather than a URL, which is what lets two different back ends serve the same intent. The app then asks for OData metadata before it asks for any data at all, and for a Fiori elements app that metadata effectively is the application. Inside the server the request takes a work process, authorisation is checked against the buffer that was built when the user logged on rather than against the current role tables, and only then does business logic run. RAP runs it against an in-memory buffer, so querying the table at this moment shows you the old values and proves nothing. The enqueue lock is a logical lock on the business object rather than a row lock. COMMIT WORK hands the change to the update task and frees the dialog process, and the rows arrive in HANA moments later, in the delta store first. If that update fails, the user has already been told it worked. Every caller takes this same path: a Fiori app, an OData call from a BTP extension, an RFC from another SAP system and an AI agent skill all arrive through the same front door, which is deliberate and is what makes the authorisation model worth investing in.
D5

Three places to put an extension, and four levels of risk

Clean core is not a slogan and it is not a purity score. It is this diagram, and it is the question you will be asked in every SAP architecture interview from now on.

Scroll the diagram sideways, or tap Enlarge for a bigger view

THREE PLACES TO PUT AN EXTENSION, AND FOUR LEVELS OF RISKKey user extensibilityInside the application, nodevelopment environment.Custom fields, custom CDS views,custom business objects, logic inreleased BAdIs, forms and templates.Developer extensibilityInside the system, in ABAP Cloud.Released objects only, enforced bythe language version on the package.For logic the in-app tools cannotexpress - and you should say which.Side-by-side on BTPOutside the system entirely.Full freedom of language, runtimeand release cycle, integratingthrough released APIs and events.An application you now own.AND THE FOUR CLEAN CORE LEVELS, WHICH IS THE THING YOU WILL BE ASKED ABOUTLevel AReleased APIs and extensionpoints with a stability contract.The target state.Level BClassic interfaces that areSAP-standardised and documented,without the formal contract.Level CInternal objects never releasedfor your use. Works today, andno notice is owed tomorrow.Level DModifications, direct table writes,implicit enhancements. The mostexpensive thing you can own.Start at the smallest tool that solves the problem and only move outward when you can name the specific thingthat blocks you. Every step outward buys capability and costs lifecycle, and lifecycle is paid for forever.
How to read it. The top row is where the code goes. Key user extensibility lives inside the application with no development environment at all, and it is far more capable than its reputation: custom fields, custom CDS views, custom business objects, logic in released BAdIs, forms and output templates. Developer extensibility lives inside the system but in ABAP Cloud, where the language version on the package mechanically prevents you from calling anything SAP has not released. Side-by-side lives outside the system on BTP, with complete freedom of language and release cycle, and with the honest cost that you now own an application. The bottom row is the risk ladder, and it is the part that gets asked about. Level A objects are released APIs and extension points with a stability contract. Level B objects are SAP-standardised and documented but carry no formal contract. Level C objects are internal things never released for your use; they work today and you are owed no notice tomorrow. Level D is modifications, direct table writes and implicit enhancements, which are the most expensive objects it is possible to own because you pay for them at every upgrade forever. The rule that follows from the picture is simple: start at the smallest tool that solves the problem, and only move outward when you can name the specific thing blocking you.

Where to start, depending on who you are

Reading paths

This page is long on purpose, because SAP architecture is not something you can learn from a single diagram. You do not have to read it top to bottom. Pick the path that matches why you are here.

I am new to SAP

Resist the urge to learn transaction codes. SAP looks arbitrary until the data model clicks, and then most of it becomes derivable. Read the model, walk one trace, and only then worry about which screen does what.

  1. Read L0 Deployment and Editions so you know which SAP anybody is talking about
  2. Read L3 the S/4HANA application and data model, especially client, organisational structure and the Universal Journal
  3. Walk the order to cash trace slowly, twice, until you can narrate it without looking
  4. Read the save sequence and understand why the update task is asynchronous
  5. Skim the glossary now, and come back to it after every section

I am switching from another platform

Your instincts about layering, APIs and deployment will mostly serve you. The two things that will surprise you are how much behaviour is table-driven configuration rather than code, and how seriously the platform takes the transport path.

  1. Start with L2 the ABAP platform, particularly work processes, the enqueue server and the update task
  2. Read L3 with attention to configuration as data, which is the biggest conceptual difference from most platforms
  3. Read L5 clean core and the extensibility tiers before you write anything
  4. Read L6 BTP and walk the side-by-side extension trace, which will feel familiar
  5. Read L11 and understand why nobody changes production directly

I build things and want to build them cleanly

The difference between a developer whose work survives upgrades and one whose work generates adjustment tickets is almost entirely a matter of which extension point they chose and why.

  1. Read L5 in full and learn the four clean core levels well enough to classify any object on sight
  2. Read L4, especially RAP, CDS and the difference between I_ and C_ views
  3. Read L2 on ABAP Cloud and the language version, and set it on every new package
  4. Walk the Fiori save trace and the side-by-side extension trace back to back
  5. Read L7 on integration patterns, because most extensions are integrations wearing a different hat

I am designing or reviewing a landscape

The architectural decisions that hurt are rarely technical. They are the ones about ownership, authority and boundaries, and they are made early by people who did not know they were making them.

  1. Read L0 and be able to state the edition, operating model and responsibility split for everything you own
  2. Read L6 on the global account and subaccount hierarchy, which is a boundary that is painful to change later
  3. Read L7 in full and inventory every interface with its pattern, guarantee and owner
  4. Read L12 and decide which system is authoritative for which population and which master data domain
  5. Read L11 and make sure one named person owns cross-product release regression

I keep it running

Most production incidents in SAP landscapes are not novel. They are one of a small number of recurring shapes, and knowing the shapes turns a two hour investigation into a two minute check.

  1. Read the save sequence and internalise the asynchronous update, which explains the most common false alarm there is
  2. Read L1 on the delta merge, memory and sizing, which explains most afternoon slowdowns
  3. Read L2 on work processes and locks, which explains most frozen systems
  4. Read L7 and make sure failed messages, blocked queues and expiring certificates have owned alerts
  5. Read L11 and make sure the transport path and the emergency change route are both documented and both used

All thirteen layers, one at a time

The stack explorer

Each layer answers four questions: what it actually is, what lives inside it, how it connects to the layers above and below, and what usually goes wrong. The plain-English analogy at the top of each layer is there for anyone new to SAP. Everything below the analogy is the real detail, including where the cloud and on-premise editions diverge and where the 2026 naming has moved underneath the concepts.

L0

Deployment & Editions

Which SAP you are actually looking at, and who runs it

There is no single thing called SAP. There is a family of deployment shapes around one ERP core, and almost every confusing conversation about SAP architecture comes from two people standing in different shapes and using the same words.
Think of it likeThink of a hotel chain. You can buy the building and run it yourself, staff and boiler and all. You can lease a whole building that the chain maintains for you but where you still choose the paint and rearrange the rooms. Or you can book a room in the chain's own hotel, where everything is standard, everything is upgraded on the chain's schedule, and you cannot knock a wall through. On-premise SAP is the building you own. SAP Cloud ERP Private is the leased building. SAP Cloud ERP is the room. The bed is the same bed in all three; what differs is who holds the keys and who decides when the plumbing gets replaced.

As of 2026 the naming has settled into something clearer than it was. SAP Business Suite, relaunched in February 2025, is the umbrella: a modular set of cloud applications, a common data layer, and an AI layer, all built around one ERP core. Inside it, SAP S/4HANA Cloud Public Edition is now marketed as SAP Cloud ERP, and SAP S/4HANA Cloud Private Edition is now SAP Cloud ERP Private. Underneath both, and still shipped for customers who run their own data centres, is SAP S/4HANA on-premise, which follows a two-year release cadence: the 2025 release went generally available on 8 October 2025, with the next major release planned for late 2027. RISE with SAP and GROW with SAP are not products; they are commercial packages that bundle a Cloud ERP edition with infrastructure, tooling, services and a methodology. Behind all of it sits the estate SAP is trying to move, SAP ECC on NetWeaver, whose mainstream maintenance ends on 31 December 2027, with paid extended maintenance to 2030 and a narrow safe-harbour arrangement running to 2033 for customers with a committed cloud contract.

What lives in this layer
SAP Cloud ERPThe public multi-tenant edition, formerly S/4HANA Cloud Public Edition. Standard scope, quarterly upgrades you cannot defer, extensibility only through sanctioned interfaces. Fastest to run, least room to bend.
SAP Cloud ERP PrivateSingle-tenant, formerly S/4HANA Cloud Private Edition. Your own system on a hyperscaler, managed under a RISE contract, with the full on-premise functional scope and the ability to keep custom code.
SAP S/4HANA on-premiseThe same core, installed on infrastructure you own or rent, with a two-year release cadence and roughly seven years of mainstream maintenance per release.
SAP ECC / SAP ERP 6.0The previous generation on NetWeaver, still the majority of installed seats by count. Mainstream maintenance ends 31 December 2027.
RISE with SAPThe commercial wrapper around Cloud ERP Private: infrastructure on AWS, Azure or Google Cloud, SAP-managed platform operations, BTP entitlements, Cloud ALM, Signavio and Business Network access, plus the SAP Activate methodology.
GROW with SAPThe equivalent wrapper for SAP Cloud ERP, aimed at midmarket and net-new customers, built around preconfigured best-practice scope.
SAP Business One and Business ByDesignSeparate small and midmarket ERP products with their own codebases. They are not S/4HANA and share almost none of its architecture.
Who works here
Enterprise architects, programme sponsors, procurement, and every consultant who has to answer the question of what is possible before answering the question of how.
Tables and records to know
ClientThe highest-level organisational and data separation unit inside one SAP system. Almost every application table carries MANDT as its first key field. Two clients in one system are two separate sets of business data.
System ID (SID)The three-character identifier of a single SAP system, for example DEV, QAS, PRD. It appears in hostnames, in transport routes and in every support ticket you will ever raise.
InstanceOne application server process group with its own instance number. A system can have many instances across many hosts.
TenantIn SAP Cloud ERP, the multi-tenant equivalent of a client. In SAP HANA multitenant database containers, a separately addressable database inside one HANA system.
LandscapeThe set of systems that form one transport path, conventionally development, quality assurance and production.
How it connects
Down to the layer belowNothing. This is the floor: data centres, hyperscaler regions, virtual machines and storage.
Up to the layer aboveDetermines what the database, application server and every layer above it are allowed to be, and who is contractually responsible when one of them stops.
In depth

The word 'cloud' hides three completely different contracts

In SAP Cloud ERP, SAP runs everything and you consume a standard application. In SAP Cloud ERP Private, SAP runs the infrastructure and a defined set of platform operations, and you still own Basis administration, custom code, SAP Notes and HotNews assessment, most monitoring, and the decision about when to apply a support package. The gap between what customers assume RISE covers and what the service description actually covers is the single most common source of unpleasant surprise in year one, and the answer is always in the contracted service description rather than in the sales deck. Standard availability commitments sit around 99.5 to 99.7 percent for unplanned downtime, which is materially less than the availability many large enterprises achieve in their own data centres, and it is worth knowing that before signing rather than after an outage.

Public edition is not a smaller private edition

It is tempting to describe SAP Cloud ERP as private edition with fewer features. That framing leads teams to design as though the missing pieces will arrive later. The real difference is architectural: in the public edition you have no access to the underlying ABAP stack, no classic transactions outside the released set, no ability to write directly to standard tables, and an upgrade every quarter that you cannot decline. Every extension has to be built on a released interface with a stability contract. That constraint is the product. Organisations that fight it end up with a private-edition budget and a public-edition system, which is the worst of both.

The 2027 date, and the three dates behind it

SAP ECC mainstream maintenance ends on 31 December 2027. From 1 January 2028 to 31 December 2030 there is optional extended maintenance carrying a premium on the maintenance fee. Beyond that, a narrower arrangement runs to the end of 2033 for customers who hold an active cloud ERP contract and a committed transition roadmap. Meanwhile SAP has committed to maintaining SAP S/4HANA until at least 2040, which is the commitment that actually matters when you are justifying a seven-figure programme. The practical read: 2027 is not a cliff for anyone who plans, and it is a cliff for anyone who does not.

Greenfield, brownfield, and the honest third option

A greenfield implementation builds a new system on standard processes and migrates master and open data. A brownfield conversion takes the existing ECC system, converts the database to HANA and the application to S/4HANA in place, and keeps the history and the custom code, including the parts nobody has understood since 2009. The third option, usually called selective data transition or bluefield, moves selected company codes or selected history into a new shell. The choice is rarely technical. It is a question of how much of your current process you believe is a competitive advantage, and the uncomfortable answer in most organisations is less than the business thinks and more than the consultants say.

Where the system physically sits still matters

Under RISE, your Cloud ERP Private system runs in a hyperscaler region that you select, on infrastructure SAP contracts. That choice sets your data residency position, your latency to interfaces and to users, and which SAP data centre a support engineer will connect to. It also sets your blast radius. A single-region deployment with asynchronous replication to a second region is a different availability story from an active-active design, and SAP's standard offering is closer to the former. Ask what the recovery point and recovery time objectives actually are, in numbers, and get them in the order form.

What usually goes wrong
  • Saying 'we are moving to the cloud' without saying which edition. SAP Cloud ERP and SAP Cloud ERP Private are as different from each other as either is from on-premise, and half of a project's scope depends on which one was meant.
  • Assuming RISE with SAP means SAP operates everything. Basis administration, SAP Notes assessment, custom code, most monitoring and the upgrade decision usually stay with you unless separately contracted.
  • Planning around 2027 as though it is the only date. Extended maintenance runs to 2030 and a narrower arrangement to 2033, and the commitment to maintain S/4HANA until 2040 is what actually justifies the investment.
  • Choosing brownfield because it is cheaper without asking whether the point of the programme was to change how the company works. A conversion sold as a transformation disappoints everybody.
  • Treating SAP Business One or Business ByDesign as small S/4HANA. They are separate products with separate architectures and almost nothing transfers.
  • Signing before reading the service description. The availability commitment, the backup policy and the responsibility split are all in there, in numbers, and they are rarely what the deck implied.
You understand this layer whenYou can name which edition your organisation runs, what SAP is contractually responsible for, what you are responsible for, and what the maintenance end date is for the thing you are running today.
L1

SAP HANA

The database that made the rest of it possible

HANA is an in-memory, column-oriented relational database that keeps the whole working set in RAM, compresses it heavily, and pushes calculation down into the database so the application layer stops shuttling rows around.
Think of it likeA classic database is a library where every book is on a shelf and the librarian fetches one at a time. HANA is a library where every book has been photographed, indexed by word, and the index lives on the desk. Asking how many times a phrase appears across the whole collection stops being a walk through the stacks and becomes a look at the desk. That is why reports that took a nightly batch in ECC can be answered live in S/4HANA, and why the aggregate tables that existed only to make those reports possible were deleted.

SAP HANA is the only database S/4HANA runs on. It stores data primarily in columns rather than rows, which means values in one column sit next to each other and compress extremely well, typically by a factor of five to ten on real business data. Because scans are cheap, HANA can answer analytical questions directly against the transactional tables instead of against pre-aggregated copies, which is the technical reason the Universal Journal could replace a dozen aggregate and index tables in Finance. Writes go into a row-oriented delta store for speed and are folded into the compressed main store by a background delta merge. Everything is also written to disk: the data volume takes a savepoint every few minutes and the redo log is written synchronously on commit, so an in-memory database is still fully durable. HANA Cloud is the managed service version of the same engine, sized in compute and storage rather than in appliance hardware, with Native Storage Extension providing a warm tier for data that must be queryable but does not deserve RAM.

What lives in this layer
Index serverThe heart of the database. It holds the column and row stores, the SQL processor, the calculation engine, transaction management, the persistence layer and authorisation. When people say 'HANA is down' they almost always mean this process.
Name serverHolds the topology of the system: which host does what, where each volume lives, and in a distributed system which tables are partitioned where.
Column store and row storeColumn store for almost everything in S/4HANA. Row store for a small set of internal and configuration tables where single-record access dominates.
Delta store and main storeNew and changed records land in a write-optimised delta, then a delta merge sorts and recompresses them into the read-optimised main store.
Persistence layerData volumes plus redo log volumes. Savepoints flush changed pages periodically; the log is written on commit. Together they make an in-memory database crash-safe.
Native Storage Extension (NSE)A disk-backed warm tier inside the same database, with a buffer cache in front of it, for data that is queried rarely but must remain online.
Multitenant database containers (MDC)One HANA system hosting several isolated tenant databases with their own users, catalogs and backups, plus a system database that administers them.
System replicationContinuous shipping of redo to one or more secondary systems, in synchronous or asynchronous mode, which is the standard basis for high availability and disaster recovery.
Who works here
Basis and database administrators own it. ABAP developers must understand it, because code that ignores how HANA works is the single most common cause of a slow S/4HANA system.
Tables and records to know
M_CS_TABLESColumn store table sizes, record counts and memory consumption. The first place to look when memory is tight.
M_EXPENSIVE_STATEMENTSStatements that exceeded a configured threshold. The starting point for almost every performance investigation.
M_SERVICE_MEMORYMemory used per service, split into heap, shared and code. Distinguishes a data problem from a workload problem.
M_DELTA_MERGE_STATISTICSHistory of delta merges: which table, when, how long, and how much it reclaimed.
M_HEARTBEATS / M_SYSTEM_OVERVIEWFast health checks used by monitoring and by every support engineer who opens a connection to your system.
How it connects
Down to the layer belowRuns on the compute, memory and storage provided by the deployment model in L0. Memory sizing is the dominant infrastructure decision.
Up to the layer aboveServes the ABAP platform above it, and is queried directly by CDS views, by analytics tools and by anything speaking SQL or ODBC.
In depth

In-memory does not mean not on disk

This is the misconception that survives the longest. HANA is fully ACID and fully durable. Every committed transaction has its redo record written to the log volume before the commit returns, and changed pages are flushed to the data volume at each savepoint, by default every five minutes. If the server loses power, HANA restarts by loading the last savepoint and replaying the log from there. What 'in-memory' actually means is that the primary copy used for reading is the one in RAM, so the query optimiser never has to plan around disk access for the hot data. The consequence for operations is that startup time is dominated by loading columns into memory, which is why a large system does not come back in thirty seconds.

Why columns changed the application, not just the database

In a row store, summing one column across ten million records means touching all of every record. In a column store you touch one column, already compressed, already contiguous, and you can often answer from the dictionary without decompressing at all. Once that is true, maintaining a pre-aggregated total becomes an expensive way to avoid a cheap calculation. That single fact is why S/4HANA removed the aggregate tables in Finance and Materials Management and replaced them with compatibility views that compute the same numbers on the fly. Any custom code that wrote to those old tables broke; any custom code that read from them still works but is reading a view. Knowing which of the two you have is the entire content of a custom code remediation project.

The delta merge, and why it shows up as a performance mystery

Inserts and updates go to the delta store, which is optimised for writing and poor for scanning. As the delta grows, reads get slower because every query must union the main and the delta. The merge process rewrites the delta into the main store, resorts it and recompresses it, which is expensive in memory and CPU while it runs. HANA decides when to do this automatically based on delta size, memory pressure and access patterns. The symptom teams report is that a report was fast in the morning and slow at four in the afternoon on a heavy posting day. The cause is usually a delta that has not merged. It is visible in M_DELTA_MERGE_STATISTICS and it is not something to fix by hand except during a mass-load.

Code pushdown is the whole performance argument

The classic ABAP pattern was to select a large result set into an internal table and loop over it in the application server. On HANA that is close to the worst thing you can do: it moves millions of rows across a network, throws away the database's ability to parallelise, and burns application server memory. Code pushdown means expressing the aggregation, the join and the filter in the database, through Core Data Services views, ABAP Managed Database Procedures or well-written Open SQL. The rule of thumb that survives contact with reality is simple. Move the calculation to the data. If your program is transporting rows to compute a number, rewrite it.

Sizing is memory, and memory is money

HANA sizing is dominated by how much data must be resident in RAM, which is roughly the compressed table footprint plus working memory for queries, plus headroom. SAP's rule of thumb has long been that working memory should be about the same as the data footprint, which is why quoted sizes look like double what the data appears to need. The levers that actually reduce it are archiving, data ageing, Native Storage Extension for warm data, and deleting the accumulated technical debt of application logs and change documents that nobody has ever read. In a RISE contract, memory is the meter, so a data volume management strategy is a cost strategy, not a housekeeping task.

HANA Cloud is the same engine with a different operating model

SAP HANA Cloud is the managed, elastically scalable version of the database, and it is what BTP services, Datasphere and new development sit on. You provision compute and storage rather than an appliance, you scale them independently, and SAP patches the engine. The SQL surface and the modelling concepts are the same, which is why a CDS view or a calculation view moves across with modest effort. The differences that bite are administrative rather than semantic: no operating system access, a different backup and recovery interface, and a set of features that exist only in one or the other at any given moment. Check the feature scope rather than assuming parity.

What usually goes wrong
  • Believing in-memory means not durable. Every commit writes redo to disk and savepoints flush data pages; HANA survives power loss like any other relational database.
  • Writing ABAP that pulls large result sets into internal tables and loops over them. On a column store that is the slowest possible way to answer the question.
  • Sizing on raw table size. Compression reduces it, working memory adds to it, and the number that matters is the total resident footprint plus headroom.
  • Ignoring the delta merge and then investigating an afternoon slowdown as an application problem.
  • Assuming HANA Cloud and on-premise HANA have identical feature scope. They diverge in both directions, and the differences are administrative more often than semantic.
  • Leaving application logs, change documents and idoc history to grow forever, then paying for the memory to keep them resident.
You understand this layer whenYou can explain why S/4HANA could delete the finance aggregate tables, and you can name the two disk structures that make an in-memory database crash-safe.
L2

ABAP Platform

The application server that has run SAP for thirty years

The ABAP platform is the runtime that sits between the database and the business logic: it manages work processes, dispatches user requests, isolates business data by client, and provides the programming language, the object repository and the transport system that everything above it depends on.
Think of it likeIt is a factory floor. The dispatcher is the foreman handing incoming jobs to whichever worker is free. The work processes are the workers, and there are different kinds because a person answering a phone call and a person running an overnight machine need different setups. The buffers are the trolleys of parts kept beside the line so nobody has to walk to the warehouse. And the transport system is the loading dock where finished work leaves in a crate and arrives, unchanged, at the next factory.

AS ABAP is the application server. A dispatcher receives requests and hands them to a work process; the work process attaches to a user session, loads the program, and does the work. Work processes come in fixed types set at instance start: dialog for interactive users, background for scheduled jobs, update for the asynchronous second phase of a transaction, enqueue for the lock table, and spool for output. Each application server keeps buffers for programs, table definitions, and frequently read configuration, which is why the first execution after a transport is slow and the second is fast. The Internet Communication Manager handles HTTP, HTTPS and web service traffic, which is how Fiori, OData and REST reach the same business logic that SAP GUI reaches. In S/4HANA this is the ABAP Platform, versioned alongside the application release, and in BTP the same runtime appears as the ABAP environment, sometimes called Steampunk, with a deliberately restricted language scope called ABAP Cloud.

What lives in this layer
Dispatcher and work processesThe request scheduler and the pool of processes that execute work. Dialog, background, update, enqueue and spool, sized per instance.
Internet Communication Manager (ICM)Handles inbound and outbound HTTP, HTTPS and SMTP. Everything Fiori and OData does arrives through here.
Enqueue serverThe single owner of the SAP lock table. Logical locks live here, not in the database, which is why an SAP lock survives a database commit boundary.
Update serviceExecutes the second, asynchronous phase of a logical unit of work. Failed updates land in SM13 and are a routine part of production support.
BuffersProgram buffer, table buffers, nametab, CUA and screen buffers. Local to each application server, which is why a buffer synchronisation problem shows up on one server only.
RepositoryEvery ABAP program, class, function module, dictionary object, CDS view and Fiori artefact, stored in the database and versioned.
Change and Transport System (CTS)Records every repository and customising change in a transport request and moves it along a defined route between systems.
Client conceptMANDT as the leading key on business tables, so one system can hold several independent sets of business data with shared repository objects.
Who works here
Basis administrators size and operate it. ABAP developers live in it. Functional consultants meet it whenever a lock, a background job or a transport goes wrong.
Tables and records to know
TADIRThe directory of every repository object: type, name, package and original system. The starting point for any custom code inventory.
E070 / E071Transport request headers and object lists. What is in a transport, who owns it, and whether it has been released.
TBTCO / TBTCPBackground job headers and job steps. The scheduling backbone of every nightly run in the estate.
NRIVNumber range intervals. A surprisingly frequent source of production incidents when a range fills or is not extended after a copy.
T000The client table. Which clients exist, what they are for, and whether changes are allowed in them.
How it connects
Down to the layer belowTalks to SAP HANA through the database interface, translating Open SQL into native SQL and managing the shared connection pool.
Up to the layer aboveExecutes all business logic, exposes it through SAP GUI, OData, RFC, SOAP and REST, and enforces the authorisation checks the security layer defines.
In depth

The three-phase transaction that surprises everyone

A classic SAP business transaction does not write to the database as you go. It collects the changes in memory, and at the commit point it hands the whole bundle to an update work process, which applies them asynchronously in a separate database transaction. This is why an order can be saved successfully from the user's point of view and still fail minutes later, and why SM13 exists. It is also why the enqueue server matters: the logical lock has to survive from the moment the user starts editing until the update finishes, which is longer than any database lock would sensibly be held. Understanding this sequence explains a whole category of production problems that otherwise look like magic.

ABAP Cloud is a different language scope, not a different language

ABAP Cloud is the development model that makes clean core possible. Syntactically it is ABAP, but the compiler only permits released APIs and released objects, forbids direct access to SAP tables that are not released, and rejects the old procedural patterns that made upgrades painful. In the BTP ABAP environment and in SAP Cloud ERP it is the only option. In S/4HANA on-premise and Cloud ERP Private you can choose it per package by setting the ABAP language version, which is the single most useful lever a development lead has: new work is written in ABAP Cloud from day one, and the old code is left in classic ABAP until it is retired. The three-tier extensibility model exists to give the escape hatches when a released API genuinely does not exist yet.

Buffers explain most 'it works on one server' problems

Table buffers, the program buffer and the nametab live in the shared memory of each individual application server. Synchronisation between servers happens through a table of pending buffer invalidations that each server reads on an interval, by default every minute or two. So a configuration change made on server A becomes visible on server B a minute later. In a busy system with a short-lived inconsistency this looks like a ghost: two users doing the same thing get different answers. The fix is almost never to disable buffering. It is to know the mechanism exists and to check it before starting a much more expensive investigation.

Transports are the reason SAP estates stay coherent

Every repository change and every client-independent customising change is recorded in a transport request with an owner, a description and an object list. Releasing the request exports it to a file on the shared transport directory; importing it into the next system applies exactly those objects. The discipline this enforces is real and worth defending: nothing reaches production that did not pass through the same crate that passed through test. The failure modes are equally consistent. Transports imported out of sequence overwrite newer objects with older ones. Objects split across two requests arrive in two waves and the system is briefly inconsistent. A change made directly in production, because someone opened the client, is invisible to the next import and gets silently reverted.

Where SAP GUI ends and the web begins

SAP GUI speaks DIAG, a proprietary protocol, to the dispatcher over port 32NN. Fiori and every modern API speak HTTP to the ICM over port 80NN or 443NN. Both end up in a dialog work process running ABAP against the same data with the same authorisation checks. This matters for two practical reasons. First, an OData service that is slow is slow for the same reasons a transaction is slow, and the same tooling diagnoses it. Second, closing SAP GUI access does not close a security surface unless you have also thought about what the OData and RFC surfaces expose, because they reach the same function modules.

What usually goes wrong
  • Forgetting that the update task is asynchronous, then being unable to explain how a transaction reported success and produced no document.
  • Debugging a configuration inconsistency across application servers without knowing that table buffers synchronise on an interval.
  • Opening the production client for a quick change. It is invisible to the transport path, it will be overwritten, and it is an audit finding.
  • Treating ABAP Cloud as a different language rather than a restricted scope of the same one, and therefore not setting the ABAP language version on new packages.
  • Assuming that closing SAP GUI access closes the surface. OData and RFC reach the same business logic through a different port.
  • Sizing work processes by copying another system. Dialog, background and update ratios follow your workload, not somebody else's.
You understand this layer whenYou can describe what happens between a user pressing save and the database row existing, naming the dialog work process, the enqueue server and the update task.
L3

S/4HANA Application & Data Model

Where the business logic and the business data actually live

S/4HANA is the business application: the modules, the documents, the master data and the configuration that turn a database and an application server into something that can run a company.
Think of it likeIf HANA is the filing system and ABAP is the office, S/4HANA is the business itself: the sales team, the warehouse, the accounts department, and the rulebook that says what happens when a customer orders something. The rulebook is configuration, not code, which is why two companies running identical software behave completely differently.

S/4HANA is organised into functional areas that most people still call modules: Financial Accounting and Controlling, Materials Management and Sourcing and Procurement, Sales and Distribution, Production Planning and Manufacturing, Extended Warehouse Management, Plant Maintenance and Asset Management, Project System, and Quality Management, with industry solutions layered on top. Its two structural innovations over ECC are the Universal Journal and the virtual data model. The Universal Journal, table ACDOCA, merges the general ledger, controlling, asset accounting, material ledger and profitability analysis into one line-item table, which removes reconciliation between them by construction rather than by process. The virtual data model is a hierarchy of Core Data Services views over the physical tables that gives every consumer, from a Fiori app to an analytical query to an API, the same semantically named, association-rich picture of the data. Business Partner replaces the separate customer and vendor masters, and the material number is extended to forty characters.

What lives in this layer
Universal Journal (ACDOCA)One line-item table for financial and management accounting. Replaces BSEG, BSIS, BSAS, COEP, ANEP, MLIT and the aggregate tables that fed them.
Virtual data model (CDS)Layers of Core Data Services views: basic, composite, consumption and analytical, each with a defined role and stability contract.
Business PartnerThe single master record for anything the business deals with, with customer and supplier roles instead of separate master records.
Organisational structureCompany code, plant, storage location, sales organisation, purchasing organisation, controlling area. The skeleton every document hangs from.
DocumentsSales orders, purchase orders, deliveries, material documents, billing documents, accounting documents. Each has a header, items, and a status history.
Configuration (IMG)The Implementation Guide: thousands of settings, stored in customising tables, transported like code, that define how the standard behaves for you.
Compatibility viewsViews that carry the names of removed ECC tables so that old reads keep working. They are read-only and time-limited by licence.
Embedded analyticsAnalytical CDS views, KPI tiles, multidimensional reports and query browsers that run on the transactional system with no separate data warehouse.
Who works here
Functional consultants own the configuration, key users own the process, developers extend it, and auditors read the documents it produces.
Tables and records to know
ACDOCAThe Universal Journal. Every financial line item, with all controlling, asset and margin dimensions on the same row.
BKPFAccounting document headers. Still present and still the entry point for most finance investigations.
MARA / MARC / MBEWMaterial master: general data, plant data, valuation. The classic three-table trio for anything involving stock.
EKKO / EKPOPurchasing document header and item. Where a purchase order actually lives.
VBAK / VBAPSales document header and item. The equivalent for the order-to-cash side.
MATDOCThe material document table in S/4HANA, which replaced MKPF, MSEG and the stock aggregate tables such as MARD and MBEW quantities.
BUT000Business Partner general data. The root of the customer and supplier model in S/4HANA.
How it connects
Down to the layer belowRuns on the ABAP platform, reads and writes HANA, and pushes calculation into the database through CDS.
Up to the layer abovePublishes its data and behaviour through OData services, APIs and events, and renders through Fiori.
In depth

The Universal Journal is the single biggest functional change

In ECC, finance and controlling kept their own line-item tables and their own totals, and a month-end reconciliation existed to prove they agreed. In S/4HANA there is one line-item table, ACDOCA, that carries the general ledger account, the cost centre, the profit centre, the profitability segment, the asset, the material ledger fields and the customer-defined extension fields on the same row. Reconciliation between FI and CO is not a faster process; it is a process that no longer has a reason to exist. The consequence for anyone reading data is that the answer to almost every finance question is now one selection on one table, and the consequence for anyone migrating is that the old tables are views and old custom reports must be assessed one by one.

The virtual data model has layers, and the layers have contracts

CDS views in S/4HANA are not a flat pile. Basic interface views, prefixed I_, sit directly on tables and are the stable, released surface. Composite views join and enrich them. Consumption views, prefixed C_, are shaped for a specific application or analytical query and are explicitly not stable. Restricted reuse views, prefixed R_, are released only for defined scenarios. Build on I_ views and your extension survives upgrades; build on C_ views and it will not, because the consumption layer changes whenever the app it serves changes. This distinction is the most practically useful thing a new S/4HANA developer can learn, and it is routinely skipped.

Business Partner is a data model change disguised as a master data change

In ECC, a company that was both a customer and a supplier had two unrelated master records, two numbers and two addresses that drifted apart. S/4HANA makes Business Partner the single object, with customer and supplier roles attached, and enforces this through customer-vendor integration. The migration is not a data load. It is a decision about number ranges, about which record wins when the two disagree, and about the several hundred interfaces that were built expecting KNA1 and LFA1. Programmes that treat it as a technical conversion discover in test that half the interface estate assumed a customer number and a vendor number could never collide.

Configuration is code, and it deserves the same discipline

The Implementation Guide is not a settings screen. It is a database of decisions, transported through the same landscape as programs, capable of breaking production just as thoroughly. Client-independent customising changes affect every client in the system, including the one someone is testing in. The habit that separates mature estates from painful ones is treating a configuration change like a code change: a request, a reason, a test, a documented owner. The habit that causes incidents is opening production for a quick change and forgetting to close it, which is still, in 2026, one of the most commonly reported audit findings in the SAP world.

Embedded analytics changed where reporting lives, but not entirely

Because HANA can aggregate transactional data live, S/4HANA ships analytical CDS views and Fiori analytical apps that report directly on the operational system. For operational reporting, this removed a whole extract-transform-load hop and the latency that came with it. It did not remove the data warehouse. Cross-system reporting, long history, heavy planning, non-SAP data and anything that must survive an S/4HANA data archiving policy still belongs in a warehouse or a lakehouse, which in 2026 means Datasphere and Business Data Cloud. The architectural question is not embedded versus warehouse; it is which questions belong where.

The 2025 release and what an annual conversation now looks like

S/4HANA on-premise and Cloud ERP Private follow a two-year major release cadence. The 2025 release became generally available on 8 October 2025 with roughly seven years of mainstream maintenance, and the next major release is planned for late 2027. Between major releases, feature package stacks deliver functional additions. SAP Cloud ERP, by contrast, upgrades every quarter on SAP's schedule. This asymmetry is worth stating plainly to stakeholders early: on private and on-premise you own an upgrade project every two years or so and can plan it; on public you own a regression test every quarter and cannot decline it.

What usually goes wrong
  • Building custom code on C_ consumption CDS views because they had the fields you wanted. They are explicitly not stable and will change under you.
  • Treating the Business Partner conversion as a data load rather than as a decision about number ranges, winning records and several hundred interfaces.
  • Writing to tables that are now compatibility views. Reads still work; writes do not, and the failure appears late.
  • Assuming embedded analytics removes the need for a data warehouse. It removes a class of operational reporting, not cross-system history.
  • Configuring in production because it is 'only customising'. Client-independent settings affect every client in the system, including the one being tested in.
  • Planning an upgrade as a technical event on a two-year cadence and forgetting that the functional regression pack is the expensive part.
You understand this layer whenYou can explain what the Universal Journal replaced and why, and you can tell an I_ view from a C_ view and say which one your extension should build on.
L4

User Experience & Programming Model

Fiori, UI5, OData and the model that connects them to business logic

SAP Fiori is the design system and the app portfolio; SAPUI5 is the JavaScript framework the apps are built in; OData is the protocol between them and the server; and RAP is the ABAP-side model that generates most of that plumbing for you.
Think of it likeThink of a restaurant. Fiori is the menu design and the house style, so every dish arrives looking like it came from the same kitchen. UI5 is the crockery the food is served on. OData is the waiter, who has a strict, predictable way of taking an order and bringing back exactly what was asked for and nothing else. RAP is the kitchen system that means adding a new dish does not require reinventing the waiter.

Fiori replaced the transaction-per-screen model with role-based apps launched from a launchpad. Each user sees a home page of tiles determined by their business role, and each tile opens either a Fiori app, a classic transaction rendered through the WebGUI, or an analytical view. The apps are SAPUI5 applications running in the browser, talking to the ABAP server over OData, which is a REST protocol with a machine-readable metadata document, so the client knows the shape of the data before it asks for any. Most modern apps are not hand-coded: Fiori elements generates the entire user interface from annotations on a CDS view, so the developer describes what the data means and the framework decides what the list, the object page and the filter bar look like. The ABAP RESTful Application Programming Model, RAP, is the server-side counterpart: a CDS data model, a behaviour definition that declares what can be created, updated and deleted and under what conditions, an implementation class, and a service binding that exposes it as OData V4. SAP Build sits alongside as the low-code entry point, covering application development, process automation and workzone-style portals.

What lives in this layer
SAP Fiori launchpadThe single entry point. Spaces and pages organise tiles; the tiles a user sees come from the catalogs assigned to their business role.
SAPUI5 / OpenUI5The JavaScript framework: controls, MVC structure, data binding, theming and accessibility. OpenUI5 is the open-source subset.
Fiori elementsMetadata-driven UI generation. List report, object page, overview page, analytical list page and worklist floorplans generated from CDS annotations.
OData V2 and V4The service protocol. V2 is what most older Fiori apps use; V4 is what RAP generates and what new development should target.
RAP (RESTful Application Programming Model)The ABAP-side model: CDS data model, behaviour definition, behaviour implementation, projection view, service definition and service binding.
CAP (Cloud Application Programming Model)The equivalent for Node.js and Java on BTP: CDS models, service definitions and generated persistence, used for side-by-side extensions.
SAP BuildLow-code and no-code: Build Apps, Build Process Automation and Build Work Zone, aimed at business technologists rather than ABAP developers.
Horizon theme and My HomeThe current visual theme and the personalised landing experience, standard in S/4HANA 2023 onwards and default in the 2025 release.
Who works here
UX designers, UI5 and ABAP developers, and the security team, because in Fiori the definition of what a user can see is inseparable from the definition of what they can do.
Tables and records to know
CatalogA collection of apps a user may launch. Assigned to a business role, and the reason two people with the same job title see different tiles.
Group / Space / PageHow tiles are arranged for the user. Spaces and pages are the current model; groups are the older one.
Target mappingThe rule that turns a semantic object and an action, for example SalesOrder-display, into an actual application to launch.
Service bindingThe RAP artefact that publishes a projection view as an OData V4 or V2 service with a versioned name.
AnnotationMetadata on a CDS view that tells Fiori elements what to render: which fields are in the list, which are filters, what the header shows.
How it connects
Down to the layer belowCalls into ABAP business logic through OData services handled by the Internet Communication Manager.
Up to the layer aboveIs what the user actually experiences, and the surface most projects are judged on.
In depth

Fiori is a security model wearing a user interface

The tiles a user sees are not a cosmetic preference. A business role carries both the authorisation profile, generated from PFCG, and the catalogs that determine which apps are launchable. Get the role design wrong and the symptom is a blank launchpad or, worse, a tile that appears and then fails with an authorisation error at the point the user has already committed to a task. The practical implication is that user experience design and authorisation design cannot be separate workstreams with separate schedules. In S/4HANA they are the same design, expressed twice.

Fiori elements versus freestyle, and when to break the rule

A freestyle UI5 application gives you complete control and complete responsibility: every layout decision, every accessibility behaviour, every upgrade of the framework is yours. A Fiori elements application gives you a floorplan the whole product already uses, generated from annotations, that inherits new framework capability for free. The default should be elements, and the exception should be argued. The legitimate exceptions are genuinely novel interactions that no floorplan covers. The illegitimate one, which accounts for most freestyle apps in the wild, is a developer who found annotations unfamiliar and wrote JavaScript instead, producing an app that looks subtly wrong next to every other app and needs rework at each UI5 version.

RAP is the reason extension development got predictable

Before RAP there were several competing ABAP models for building services, and each had its own transaction handling and its own idea of what a business object was. RAP settles it: the CDS view defines the data, the behaviour definition declares in a readable syntax which operations are allowed and which validations and determinations run when, the implementation class holds the code, and the service binding publishes it. Because the behaviour is declarative, the framework can enforce draft handling, optimistic locking and ETag management consistently. The learning curve is real, and the payoff is that a RAP service written correctly behaves the same way as every SAP-delivered one, including the parts developers used to get wrong.

OData V2 and V4 are not interchangeable, and the estate has both

Most Fiori apps shipped before roughly 2020 expose OData V2. RAP generates V4. They differ in the metadata format, in how they express deltas and batches, and in how annotations are carried. A UI5 application binds to one or the other, and the model class differs. In a real estate you will have both for years, and the mistake to avoid is standardising on a shared library or a shared consumption pattern that only works with one. New services should be V4; existing V2 services should be left alone until there is a reason beyond tidiness.

The launchpad in the cloud is a different animal

On S/4HANA on-premise and Cloud ERP Private, the Fiori launchpad runs in the ABAP stack, either on the same system or on a separate front-end server. On BTP, SAP Build Work Zone provides a launchpad that aggregates apps from several back ends, which is what you want when a user's day spans S/4HANA, SuccessFactors and a custom BTP app. The design decision is where the single entry point lives. Choosing the ABAP launchpad keeps things simple until the second back end arrives; choosing Work Zone costs more setup and scales to a real multi-system estate. Deciding late means migrating tile configuration, which is tedious and thankless.

What usually goes wrong
  • Designing the user experience and the authorisation model as separate workstreams. In Fiori the business role defines both, and they have to be designed together.
  • Writing a freestyle UI5 app because annotations felt unfamiliar, then owning every layout, accessibility and framework-upgrade decision forever.
  • Mixing OData V2 and V4 assumptions in a shared library, then discovering the incompatibility during integration testing.
  • Deferring the decision about whether the launchpad lives in the ABAP stack or in SAP Build Work Zone until a second back end arrives.
  • Building a Fiori app when a released BAdI and a standard app would have done, because building was more interesting than searching.
  • Ignoring the Horizon theme and My Home defaults and shipping something that looks like it came from a different product.
You understand this layer whenYou can trace a click in a Fiori tile through the target mapping, the OData service, the RAP behaviour definition and the CDS view to the underlying table.
L5

Clean Core & Extensibility

How to change SAP without making it unupgradeable

Clean core is the discipline of putting every change on a released, stable interface instead of inside SAP's own code, so that an upgrade is a scheduled event rather than a regression project.
Think of it likeYou have rented a flat. You can hang pictures on the hooks provided, which is key user extensibility. You can put up your own shelves using the fixings the landlord published, which is developer extensibility. You can build a shed in the garden and run a cable to it, which is side-by-side on BTP. Or you can knock through a load-bearing wall, which is a modification, and then discover that the landlord's scheduled refurbishment is now your problem, forever.

SAP's current framing splits extensibility into three tiers and grades existing custom code into four levels. The three tiers are key user extensibility, where a business expert adds a field, a logic snippet in a released business add-in, or a custom CDS view through in-app tools; developer extensibility, where an ABAP developer writes ABAP Cloud inside the system against released APIs; and side-by-side extensibility, where the extension is a separate application on BTP that talks to the core over APIs and events. The four clean core levels grade what you already have. Level A is fully compliant, built only on released APIs with stability contracts, whether on-stack in ABAP Cloud or side-by-side on BTP. Level B uses classic but SAP-standardised and documented interfaces that are upgrade-stable in practice though outside the newer released framework. Level C reaches into internal, non-released SAP objects, which works until SAP changes one. Level D is the danger zone: modifications to SAP standard code, direct writes to standard tables and implicit enhancements. Clean core is broader than code, covering data, processes, integration and operations, but the code dimension is the one that shows up in an upgrade estimate.

What lives in this layer
Key user extensibilityCustom fields and logic, custom CDS views, custom business objects, form and email templates, all created through in-app tools without a developer.
Developer extensibilityABAP Cloud development inside S/4HANA, restricted by the compiler to released APIs and objects, packaged with a declared ABAP language version.
Side-by-side extensibilityApplications on BTP, in Cloud Foundry, Kyma or the ABAP environment, integrating over OData, events and the Cloud Connector.
Released APIsInterfaces with a formal stability contract published in the API Business Hub. The contract is the whole point: SAP commits not to break them.
Business Add-Ins (BAdIs)Defined extension points inside standard processes. Released BAdIs are the sanctioned way to change standard behaviour on-stack.
Extensibility levels A to DSAP's grading of existing custom objects by how exposed they are to upgrade, used to size and prioritise remediation.
ABAP Test Cockpit (ATC)The static analysis tool that classifies custom code against clean core rules and produces the remediation backlog.
SAP Custom Code Migration appScopes which custom objects are actually used, so remediation effort goes to code that someone runs rather than code that merely exists.
Who works here
Development leads and architects set the policy. Every developer and every key user lives inside it. The people who feel it most are the ones running the next upgrade.
Tables and records to know
Released APIAn interface with a stability contract. In ABAP, visible through the release state on the object and enforced by the ABAP Cloud compiler.
ABAP language versionA package-level setting: standard ABAP, ABAP for Cloud Development, or ABAP for key users. Determines what the compiler will accept.
Extension fieldA field added through key user tooling, stored in an append or extension include and automatically surfaced in the apps that support it.
Enhancement spot / implicit enhancementExplicit and implicit points where code can be injected into standard programs. Implicit enhancements are Level D and should be treated as debt.
ModificationA change to SAP's own source. Requires a repair key, appears in every upgrade adjustment, and is the most expensive object type you can own.
How it connects
Down to the layer belowConsumes released interfaces from the S/4HANA application and the ABAP platform.
Up to the layer aboveDetermines whether the next upgrade is a fortnight of regression testing or a nine-month programme.
In depth

The point of clean core is not purity, it is upgrade cost

Clean core is often presented as an architectural ideal, which makes it easy to dismiss as consultant language. State it as an economics argument instead and it becomes hard to argue with. Every Level C and Level D object is a liability whose cost is unknown until an upgrade lands, and the amount of it you hold determines whether the next release is absorbed by the operations team or becomes a project with a business case. Organisations that measure clean core do not measure it as a percentage of purity; they measure it as the number of objects that would need touching if SAP shipped tomorrow.

The three tiers are a ladder, and you should always take the lowest rung that works

The order is not arbitrary. Key user extensibility is cheapest to build, cheapest to change, needs no transport of code and survives upgrades by construction, but it is limited to the extension points SAP has surfaced. Developer extensibility with ABAP Cloud is the next rung: full programming power, still inside the system, still constrained to released interfaces. Side-by-side on BTP is the most powerful and the most expensive, because you now own an application, its lifecycle, its identity integration, its monitoring and its bill. The failure mode in both directions is real. Teams that reach for BTP first end up operating a small software company. Teams that refuse to leave the core end up with logic in the core that had no business being there.

Level C is where the honest conversation happens

Level A and Level D are easy to talk about. Level A is fine and Level D is indefensible. Level C, code that reads or calls internal SAP objects that were never released, is where most real estates actually sit, and where the debate gets political. It works today. It has worked for years. And every one of those objects is a bet that SAP will not change something you were never promised would stay still. SAP has said it will publish changelogs for these objects so customers can detect changes earlier, which reduces the surprise but does not remove the exposure. The pragmatic policy most mature estates land on is that Level C is tolerated in place, forbidden in new development, and remediated whenever the surrounding functionality is touched anyway.

Key user extensibility is more capable than developers assume

There is a reflex among experienced ABAP developers to treat in-app extensibility as a toy. It is not. It covers custom fields propagated through the data model and into apps and reports, custom CDS views for reporting, custom business objects with their own persistence and user interface, custom logic in released BAdIs written in a restricted ABAP subset, and custom forms and email templates. A meaningful share of what used to become a development ticket can be delivered by a trained key user in an afternoon, without a transport of code, and it will still be there after the upgrade. The prerequisite is a key user who has been trained and given a governance framework, which is a change management investment rather than a technical one.

Side-by-side is a commitment, so make it deliberately

An extension on BTP is a real application. It needs a runtime, a database or a persistence service, an identity provider integration, an API management strategy, a deployment pipeline, monitoring, an on-call owner and a budget line that recurs. That is entirely appropriate for something with genuine differentiation: a customer-facing portal, a machine learning service, an application that spans several back ends. It is entirely inappropriate for a validation that could have been a BAdI. The test worth applying is whether the thing you are building would still make sense if the ERP behind it were replaced. If yes, it belongs outside. If no, it probably belongs inside, on a released interface.

What usually goes wrong
  • Reaching for side-by-side on BTP when a key user extension or a released BAdI would have done. You have just adopted an application with a lifecycle and a bill.
  • Dismissing key user extensibility as a toy. It covers custom fields, custom CDS views, custom business objects, logic in released BAdIs, forms and templates.
  • Leaving the ABAP language version unset on new packages, so new code lands in classic ABAP and joins the remediation backlog on day one.
  • Measuring clean core as a purity percentage instead of as the number of objects that would need touching at the next upgrade.
  • Treating Level C objects as fine because they have always worked. They are a bet that SAP will not change something it never promised to keep still.
  • Implicit enhancements and modifications. They are Level D, they show up in every upgrade adjustment, and they are the most expensive objects you can own.
You understand this layer whenFor any custom object in your estate you can say which extensibility tier it belongs to, which clean core level it is, and what would happen to it at the next upgrade.
L6

SAP Business Technology Platform

The platform everything that is not the ERP core runs on

BTP is SAP's platform as a service: an account model, a set of runtimes to deploy code into, and a catalogue of services covering integration, data, analytics, identity, automation and AI, all consumed through entitlements rather than installed.
Think of it likeBTP is a serviced office building. The global account is your lease on the building. Directories are floors. Subaccounts are the individual offices, each with its own door, its own address and its own utility meter. The runtimes are the kinds of room you can rent: an open-plan space you furnish yourself, a fully fitted lab, or a room with SAP's own workbench already bolted to the floor. And the services are everything you can order to the room, charged to your meter.

The account model is the part people get wrong first. A global account is the contractual entity and holds the entitlements you have bought, expressed in service plans and capacity units. Directories group subaccounts for administration and quota. A subaccount is the actual unit of deployment: it has a region, an identity provider assignment, its own members, its own quota drawn from the global account, and it is where you enable a runtime environment. There are three current runtime environments. Cloud Foundry runs buildpack-based applications in Node.js, Java, Python and more, and is the default for CAP-based development. Kyma is a managed Kubernetes runtime for containerised and event-driven workloads and serverless functions. The ABAP environment, informally Steampunk, runs ABAP Cloud on BTP for teams that want to extend in the language they already know. The legacy Neo environment is being retired, with services on it sunsetting through 2028, and existing Neo applications need migrating to multi-cloud. On top of the runtimes sit the service groups: Integration Suite, Datasphere and Business Data Cloud, SAP Analytics Cloud, SAP Build, Cloud Identity Services, AI Core and the Generative AI Hub, and a long list of technical services from HANA Cloud to Object Store.

What lives in this layer
Global accountThe contract. Holds entitlements, quotas and the billing relationship. Not a place you deploy anything.
DirectoryAn optional grouping of subaccounts for administration, quota distribution and custom properties.
SubaccountThe unit of deployment and isolation. Has a region, a trust configuration, members, quota and one or more enabled environments.
Cloud Foundry environmentBuildpack runtime with spaces and orgs. Node.js, Java, Python and community buildpacks. The default target for CAP applications.
Kyma environmentManaged Kubernetes with serverless functions, eventing and service mesh. For containerised workloads and event-driven architectures.
ABAP environmentABAP Cloud on BTP, with the ABAP Development Tools in Eclipse, RAP and its own transport mechanism.
Entitlements and quotasWhat you may use and how much. Assigned from the global account down to subaccounts, and the source of most 'service not available' confusion.
Cloud ConnectorA customer-installed component that creates an outbound TLS tunnel from your network to a subaccount, exposing selected on-premise systems and nothing else.
DestinationsNamed connection definitions with URL, authentication and proxy type, so applications reference a destination rather than hard-coding an endpoint.
Who works here
Platform teams own the account model. Developers work inside a subaccount. Security teams care about trust configuration and the Cloud Connector.
Tables and records to know
Service planA specific tier of a service, for example hana standard or integration-suite enterprise. Entitlements are granted per plan, not per service.
SpaceThe Cloud Foundry subdivision inside a subaccount where applications are deployed, with its own developers and auditors.
Role collectionThe BTP unit of authorisation. Groups roles from applications and is mapped to a group or attribute from the identity provider.
Trust configurationThe link from a subaccount to an identity provider, normally SAP Cloud Identity Services acting as a proxy to the corporate one.
Capacity UnitThe consumption currency for the CPEA and BTPEA commercial models. Services draw from one pool at published rates.
How it connects
Down to the layer belowReaches back into S/4HANA and other back ends through the Cloud Connector, destinations and APIs.
Up to the layer aboveHosts every side-by-side extension, integration flow, analytical model and AI service in the landscape.
In depth

Get the account model right early, because it is painful to change

Subaccounts are the boundary for region, for identity provider trust, for quota and for administrative access. That makes the subaccount layout an architectural decision, not an administrative one. The pattern that ages well is one subaccount per environment per domain, so development, test and production are separate subaccounts, and a genuinely separate business domain or region gets its own set. The pattern that causes trouble is a single production subaccount holding everything, because every developer who needs to deploy anything ends up with rights in the subaccount that also runs the integration flows carrying payroll data. Splitting later means moving applications, service instances and destinations, which is a project.

Cloud Foundry, Kyma or ABAP is a team question first

The technical comparison is real but secondary. Cloud Foundry gives you the shortest path from a CAP project to a running application, with SAP-managed buildpacks and a mature service binding model. Kyma gives you Kubernetes, which is right if you already have container expertise, need fine-grained scaling, or are building event-driven services, and wrong if choosing it means one person in the organisation understands the runtime. The ABAP environment lets an existing ABAP team build cloud extensions without becoming JavaScript developers, and it integrates naturally with on-stack development, at the cost of a smaller ecosystem. The best predictor of success is which runtime your team can operate at three in the morning.

The Cloud Connector is the most misunderstood component in the platform

It is a small Java application you install inside your own network. It opens an outbound TLS connection to a specific BTP subaccount and keeps it open. Traffic from BTP to your systems flows back down that connection, which means no inbound firewall rule and no exposed endpoint. Crucially, it exposes only what you explicitly configure: a mapping of virtual host to internal host, per protocol, and per resource path, so an HTTP mapping that allows /sap/opc/odata/x does not allow /sap/bc/soap/rfc. Two common mistakes: running a single Cloud Connector with no high availability, so a patch means an integration outage, and configuring an over-broad resource path because it was quicker, which quietly turns a tightly scoped tunnel into a general-purpose door.

Neo is ending, and the migration is not a lift and shift

The Neo environment was SAP's original proprietary platform. It is being wound down, with individual services announcing sunset dates through 2028. Migration to Cloud Foundry or Kyma is not a redeployment: the identity model, the destination and connectivity services, the persistence options and the HTML5 application repository all differ. SAP publishes migration guidance per service, and the realistic planning assumption is that a Neo application of any substance is a rewrite of its infrastructure concerns with a reused business logic core. If you still have Neo in 2026, this is a dated liability with a published expiry, and it should be on a roadmap rather than in a backlog.

Entitlements are where projects stall for a week

A service is not available in a subaccount until the entitlement has been assigned from the global account, the quota is non-zero, and in some cases the service has been enabled in the subaccount's environment. Because these are three different screens administered by potentially three different people, the observed symptom is a developer saying the service does not exist in their region when in fact nobody has granted it. Add to that the fact that service availability genuinely does vary by region and by provider, and the first hour of any BTP project is well spent confirming that what the architecture assumes is actually purchasable in the region chosen.

What usually goes wrong
  • Designing the subaccount layout as an administrative afterthought. It is the boundary for region, identity provider trust, quota and access, and it is painful to change later.
  • Choosing Kyma because Kubernetes is modern, when nobody in the organisation can operate a cluster at three in the morning.
  • Running a single Cloud Connector with no high availability, so patching it is an integration outage.
  • Configuring an over-broad Cloud Connector resource path because it was quicker, which turns a tightly scoped tunnel into a general-purpose door.
  • Assuming a service is available because it exists. Entitlement, quota and regional availability are three separate things and any one of them blocks you.
  • Still running applications on the Neo environment in 2026 without a migration plan, when services on it are sunsetting through 2028.
You understand this layer whenYou can draw the global account, directory, subaccount and space hierarchy for your own landscape and say which identity provider each subaccount trusts.
L7

Integration

How SAP talks to everything else, and to itself

SAP integration is a stack of protocols that never fully retired anything: IDoc and RFC from the nineties, SOAP and OData from the web era, events and APIs from the cloud era, all mediated in 2026 by SAP Integration Suite.
Think of it likeA large old organisation with a modern postal department. There are still pneumatic tubes between two buildings because they work and nobody dares remove them. There is internal mail, there is courier, and there is email. The postal department's job is not to abolish the tubes; it is to know which channel each message should take, to keep a register of what was sent, and to make sure a message that fails is visible to somebody rather than lying on a floor.

SAP Integration Suite is the BTP service that has replaced SAP Process Integration and Process Orchestration as the strategic middleware. Its capabilities are distinct and licensed as a bundle. Cloud Integration is the pipeline engine, formerly known as CPI, where integration flows transform and route messages across a large adapter library. API Management publishes, secures, throttles and monetises APIs through a developer portal, and Graph is a sub-capability that presents a unified business data graph across SAP applications. Event Mesh distributes events in a publish and subscribe model, with Advanced Event Mesh, built on Solace, for high-volume and high-durability event streaming. Integration Advisor uses machine learning to propose mappings for business-to-business message formats and generates runtime artefacts. Trading Partner Management handles partner onboarding and EDI, and Open Connectors provides prebuilt connectivity to more than a hundred and fifty non-SAP SaaS applications. Edge Integration Cell lets you run integration flows and API proxies inside your own Kubernetes cluster when data must not leave a jurisdiction. Underneath all of it, on the SAP side, the classic protocols persist: IDoc for asynchronous document exchange, RFC and BAPI for synchronous function calls, and the newer OData and REST APIs published in the SAP Business Accelerator Hub.

What lives in this layer
Cloud IntegrationIntegration flows: sender adapter, mapping, routing, receiver adapter, with monitoring and message store. The workhorse capability.
API ManagementAPI proxies, policies for security and traffic shaping, a developer portal and analytics. Where an API becomes a managed product.
Event Mesh / Advanced Event MeshPublish and subscribe eventing. Standard is limited in message size and throughput; Advanced provides dedicated brokers and much larger limits.
Integration AdvisorMachine-learning assisted mapping for EDI and B2B formats, producing mapping guidelines that generate runtime artefacts.
Trading Partner ManagementPartner profiles, agreements and EDI transaction handling for X12 and EDIFACT.
Open ConnectorsNormalised connectors to non-SAP SaaS, so one integration pattern works across many third-party APIs.
Edge Integration CellA customer-managed Kubernetes runtime for integration flows and API proxies, for data residency and low-latency on-premise cases.
IDocThe classic asynchronous document format. Still carries an enormous share of real SAP traffic, with its own monitoring and reprocessing tooling.
RFC and BAPIRemote function calls, and the subset of them SAP published as stable business interfaces. The basis of most on-premise point-to-point integration.
Who works here
Integration architects and developers own it. Basis owns the connectivity. Application teams own the meaning of the messages, which is the part that actually breaks.
Tables and records to know
Integration flow (iFlow)The deployable unit in Cloud Integration: one sender, a processing pipeline, one or more receivers, with its own runtime configuration.
Message Processing LogThe per-message record in Cloud Integration. Status, attachments, custom headers, and the first place to look when someone says an interface is broken.
Partner profile (WE20)The on-premise configuration that determines which IDoc types go to which partner, through which port, in which mode.
Queue (SMQ1 / SMQ2)Outbound and inbound qRFC queues. When a queue is blocked, everything behind it stops, silently, until somebody looks.
API proxyThe managed front door for a backend service, where policy, key validation and quota are enforced.
How it connects
Down to the layer belowReaches S/4HANA and other back ends through the Cloud Connector, RFC destinations and published APIs.
Up to the layer aboveFeeds every other system in the enterprise, and is where most cross-system incidents are first noticed.
In depth

Choose the pattern before choosing the tool

Most integration arguments are actually pattern arguments in disguise. Synchronous request and response is right when the caller cannot proceed without the answer and can tolerate the coupling. Asynchronous messaging is right when the caller should not wait and the receiver may be down. Events are right when the publisher genuinely does not know or care who consumes them. Replication is right when a consumer needs a local copy for performance or availability. Once the pattern is settled, the tool is usually obvious, and a great deal of expensive middleware exists because somebody chose the tool first and then bent the pattern to fit it.

IDoc is not legacy just because it is old

IDoc has an asynchronous, guaranteed-delivery, fully auditable model with tooling for reprocessing that most modern stacks still lack. It carries an immense share of real SAP traffic today and will for years. The reasons to move a specific interface off IDoc are concrete: you need synchronous behaviour, you need a payload IDoc cannot express, or the partner cannot handle it. The reason not to is equally concrete: the replacement must reproduce the delivery guarantees and the error handling, and most quick REST replacements do not, which is discovered the first time a receiver is down for an hour.

The two Event Mesh products are genuinely different

SAP Event Mesh, the standard capability, is fine for moderate volumes of small business events between SAP systems and a handful of subscribers, and it has hard ceilings on message size and throughput. Advanced Event Mesh is an OEM of Solace PubSub+, with dedicated brokers, much larger messages, large persistent storage, replay and a proper event portal. Designing an event-driven architecture against the standard capability and then discovering the limits during load testing is a common and avoidable failure. Establish the volume, message size and retention requirements first, and pick accordingly, because the migration between them is not a configuration change.

Process Orchestration is ending, and the migration is a rewrite of the middle

SAP Process Integration and Process Orchestration are on a published end-of-maintenance path, and Integration Suite is the successor. The Migration Assessment capability inventories existing interfaces and grades how mechanically they can move. The honest expectation is that simple mappings migrate with tooling assistance and complex scenarios, particularly those using Business Process Management, custom adapter modules or Java mappings, are redesigned. Programmes that budget for a conversion and discover a redesign are the norm rather than the exception, and the way to avoid it is to run the assessment early enough that the answer can still influence the plan.

Monitoring is the part everyone underfunds

An integration landscape without proactive monitoring does not fail loudly; it fails quietly and is discovered by a business user three days later. The minimum viable position is alerting on failed messages in Cloud Integration, on blocked qRFC queues, on IDocs in error status, and on certificate expiry, with each alert routed to a team that owns the interface rather than to a shared mailbox. The most common single cause of a preventable integration outage in the SAP world remains an expired certificate that somebody knew about and nobody owned.

What usually goes wrong
  • Choosing the tool before choosing the pattern, then bending a synchronous API into a job that needed guaranteed asynchronous delivery.
  • Replacing an IDoc interface with a REST call without reproducing the delivery guarantee and the reprocessing tooling, then discovering the gap the first time a receiver is down.
  • Designing an event-driven architecture against standard Event Mesh and hitting its message size and throughput ceilings during load testing.
  • Budgeting a Process Orchestration migration as a conversion when anything using BPM, Java mappings or custom adapter modules is a redesign.
  • Monitoring integration by waiting for a business user to complain. Failed messages, blocked queues, IDocs in error and expiring certificates all need owned alerts.
  • Letting each project invent its own error handling, so the estate has fifteen different ways for a message to fail quietly.
You understand this layer whenYou can name, for any interface in your landscape, its pattern, its protocol, its delivery guarantee, who is alerted when it fails, and what happens to the message in the meantime.
L8

Data & Analytics

Where the numbers go once they are more than one system's business

SAP's analytics story in 2026 is Business Data Cloud: a managed layer that turns SAP application data into governed data products and makes them available to Datasphere, SAP Analytics Cloud, BW and a native Databricks lakehouse without copying them around.
Think of it likeThink of a hospital. Embedded analytics is the monitor beside the bed: live, specific, useful right now, and only about that patient. The data warehouse is the medical records department: everything, over years, cross-referenced, slower to consult but the only place you can see a pattern. Business Data Cloud is the records department being reorganised so that other specialists can read a chart without photocopying it, and so that the researchers in the basement can run their models on the same charts the clinicians see.

SAP Business Data Cloud, announced in February 2025, is the current umbrella. It bundles SAP Datasphere as the data fabric and semantic modelling layer, SAP Analytics Cloud as the analytics and planning front end, SAP BW/4HANA private cloud edition so existing BW estates can move inside without a cutover, and SAP Databricks embedded natively for lakehouse workloads, data science and generative AI. The organising concept is the data product: a governed, versioned, semantically described dataset produced by Foundation Services from an SAP application such as S/4HANA, SuccessFactors, Ariba or Concur, with lineage and metadata attached. Data products are consumed rather than copied, using Delta Sharing so that Databricks and Datasphere can read the same physical data without duplication. Insight Apps sit on top as prebuilt analytical applications for defined business areas. Alongside all of that, S/4HANA still ships embedded analytics for operational reporting on live transactional data, and the architectural discipline is knowing which questions belong to which.

What lives in this layer
SAP DatasphereThe data fabric: connections, replication and federation, spaces for governance, graphical and SQL views, and a business layer with analytic models.
SAP Analytics CloudDashboards, stories, planning and predictive. The consumption surface for most business users, and the planning engine for finance.
SAP DatabricksA native Databricks workspace inside Business Data Cloud for lakehouse storage, notebooks, machine learning and unstructured data.
BW/4HANA private cloud editionExisting BW systems hosted inside Business Data Cloud, extending their runway while models move gradually to Datasphere.
Data productsGoverned, described, versioned datasets produced by Foundation Services from source applications, with lineage and semantics attached.
Insight AppsPrebuilt analytical applications assembled from data products and SAC content for a defined business area.
Delta SharingThe open protocol that lets Databricks and Datasphere read the same data without a copy, which is the technical basis of the zero-copy claim.
Embedded analyticsAnalytical CDS views, KPI tiles and multidimensional reports running directly on the S/4HANA transactional system.
Who works here
Data architects, BW and Datasphere modellers, analytics developers, finance planning teams, and the data scientists who were previously locked out of SAP data.
Tables and records to know
SpaceThe Datasphere unit of isolation and governance: its own storage quota, its own members, its own connections and shared objects.
Analytic modelThe Datasphere object that exposes measures and dimensions for consumption by SAC and other clients.
InfoProvider / ADSOThe BW modelling objects. Still central for any estate with a BW history, and now hostable inside Business Data Cloud.
Data productThe BDC unit of exchange: a described, governed dataset with a defined producer, schema and lineage.
Story / ModelThe SAP Analytics Cloud consumption objects. A model holds the data and the planning logic; a story presents it.
How it connects
Down to the layer belowReads from S/4HANA and the line-of-business cloud applications, through Foundation Services, CDS extraction, replication flows and federation.
Up to the layer aboveFeeds dashboards, planning, machine learning and the grounding data that SAP Business AI reasons over.
In depth

Embedded versus warehouse is not a religious question

S/4HANA can report on live transactional data, and for operational questions that is strictly better than extracting to a warehouse and answering yesterday's version. Use embedded analytics for anything where the answer must reflect the current state of the operational system and where the scope is that system. Use a warehouse or lakehouse for anything crossing systems, anything needing history beyond your archiving policy, anything needing heavy transformation, anything mixing SAP and non-SAP data, and anything where analytical load would compete with transactional load. The failure mode in both directions is familiar: teams that put everything in the warehouse rebuild reports SAP already ships, and teams that put everything in the core discover that a heavy analytical query and a month-end close do not share a system politely.

Zero copy is a strong claim, so understand what it means

Business Data Cloud's positioning rests on data products being shared rather than duplicated, using Delta Sharing between the Databricks lakehouse and Datasphere. That is real, and it removes a genuine class of pipeline and reconciliation work. What it does not mean is that no data ever moves. Foundation Services still extract from the source applications, and there is still a physical landing of data products. The accurate framing is that the copying between the analytical tools has largely gone, not that extraction from the operational systems has. Teams that hear zero copy and plan for no extraction latency are setting an expectation they will have to walk back.

BW is not dead, and the private cloud edition is the reason

A large share of SAP customers have a decade or more of BW models, transformations and reports that encode business rules nobody wrote down anywhere else. Business Data Cloud hosts BW/4HANA as a private cloud edition inside it, which extends the supported runway and, more importantly, means the migration to Datasphere can be gradual and per-model rather than a single cutover. The strategy that works is to stop building new content in BW immediately, host the existing system, and migrate models when the business asks for a change to one, so that migration effort follows business value rather than an inventory list.

The Databricks inclusion changed who can use SAP data

Historically, getting SAP data into a data science environment meant an extraction project, a licensing conversation and an argument about semantics. Embedding Databricks inside Business Data Cloud, with data products carrying their semantics with them, removes most of that friction. The consequence worth planning for is organisational rather than technical: data scientists who previously worked around SAP will now work on it, and the governance model for who can see which data product needs to exist before that happens rather than after. Spaces, data product ownership and the underlying authorisation model are the controls, and they are much easier to set up on an empty platform than on a busy one.

There are now three consumption meters to forecast

AI Units for SAP Business AI, Capacity Units for BTP services, and Business Data Cloud credits are separate pools with separate rates. Analytics workloads in particular have a habit of growing quietly, because a dashboard nobody uses still refreshes. Any serious BDC design should include a consumption model with an owner, alerting on burn rate, and a periodic review of what is actually being read. This is the same discipline that cloud infrastructure teams learned a decade ago, arriving in the SAP world through a different door.

What usually goes wrong
  • Hearing 'zero copy' and planning for no extraction latency. The copying between analytical tools has largely gone; extraction from the operational systems has not.
  • Rebuilding in a warehouse the operational reports that S/4HANA already ships as embedded analytics.
  • Running heavy analytical workloads on the transactional system during month-end close and being surprised that they compete.
  • Planning a BW to Datasphere migration as one cutover instead of hosting BW in Business Data Cloud and migrating models when the business asks for a change.
  • Opening a Databricks workspace over SAP data products before deciding who is allowed to see which data product.
  • Leaving consumption unforecast across three separate meters: AI Units, Capacity Units and Business Data Cloud credits.
You understand this layer whenFor any report in your organisation you can say whether it belongs in embedded analytics, in Datasphere, in BW or in the lakehouse, and justify it in one sentence.
L9

SAP Business AI

Joule, agents, and the platform underneath them

SAP Business AI in 2026 is three layers: a context layer that grounds models in your business data and process knowledge, a build layer for making agents, and a governance layer for knowing which agents exist and what they did.
Think of it likeHiring a new employee. The context layer is the induction: the company handbook, access to the systems, and the knowledge of how this particular organisation does things. The build layer is deciding what the job actually is and writing the job description. The governance layer is HR: knowing who works here, what they are allowed to approve, and being able to answer the auditor who asks who signed off on that.

The context layer is AI Foundation on BTP. It contains the Generative AI Hub, which brokers access to external foundation models through one interface, one set of credentials and one usage meter, alongside SAP's own models such as SAP-ABAP-1 and SAP-RPT-1; the SAP Knowledge Graph, which encodes SAP process and data semantics so a model reasons about a purchase order rather than about a row; and Business Data Cloud as the grounding data layer. AI Core is the runtime that trains, deploys and serves models, with AI Launchpad as its administrative front end. The build layer is Joule Studio, generally available since June 2026, with a visual agent builder, a large library of prebuilt SAP skills, a command-line interface for pipelines, and Model Context Protocol support for connecting external tools. The governance layer is SAP AI Agent Hub, built on LeanIX, which discovers agents across SAP and non-SAP platforms and provides inventory, observability and the audit trail that the EU AI Act expects. Joule itself is the shared front end across desktop, mobile and voice, and Joule Work is the emerging workspace model where the user states an intent and agents execute it.

What lives in this layer
JouleThe assistant surface. Embedded in SAP applications, available on mobile with Siri integration, and increasingly the entry point rather than the launchpad.
Joule StudioThe build environment for custom agents and skills, with a visual builder, prebuilt skills, a CLI and Model Context Protocol support.
AI FoundationThe BTP toolkit: Generative AI Hub, AI Core, AI Launchpad, vector engine, document grounding and the SAP Knowledge Graph.
Generative AI HubOne brokered interface to many foundation models, with prompt management, orchestration, content filtering and consumption metering.
SAP AI CoreThe runtime for training and serving models, with resource groups, scenarios, configurations and deployments.
SAP AI Agent HubDiscovery, inventory, observability and governance for agents across SAP and third-party platforms, built on SAP LeanIX.
Embedded AI scenariosHundreds of shipped scenarios inside applications: matching, prediction, classification and drafting, licensed through AI Units.
AI UnitsThe consumption currency. Token-based, varying by model and complexity, drawn from a pool that has to be forecast like any other.
Who works here
Architects deciding where AI sits, developers building agents, data owners deciding what may be grounded, and risk and compliance teams who now have an inventory problem.
Tables and records to know
SkillA discrete capability an agent can invoke, usually wrapping an API call or a defined action in an SAP application.
AgentA configured combination of instructions, skills, grounding data and guardrails that pursues a goal rather than answering a question.
Scenario / Configuration / DeploymentThe AI Core object chain: what to run, with which parameters, and the running instance of it.
GroundingAttaching enterprise content or data products to a model interaction so the answer is drawn from your data rather than from training data.
OrchestrationThe Generative AI Hub pipeline that composes templating, model call, content filtering and data masking into one governed request.
How it connects
Down to the layer belowGrounded on Business Data Cloud, calls back into S/4HANA and line-of-business applications through released APIs, and runs on BTP.
Up to the layer abovePresents to users as Joule, and increasingly as agents acting on their behalf inside business processes.
In depth

Grounding is the entire architecture question

A model with no access to your data can write a plausible sentence about a purchase order. A model grounded in your data can tell you which purchase order is late. Everything interesting about SAP Business AI is on the grounding side: the Knowledge Graph supplying process semantics, Business Data Cloud supplying governed data products, and document grounding supplying unstructured content. It follows that an organisation whose master data is inconsistent and whose data products do not exist will get confident and useless answers, at cost. The unglamorous prerequisite for AI value in SAP is the same prerequisite as for analytics, and it is data quality.

Agents change the authorisation question, and nobody is fully ready

An assistant that answers questions inherits the user's authorisations and is comparatively easy to reason about. An agent that acts raises a harder question: does it act as the user, as a technical account, or as itself, and who is accountable for what it did. SAP's answer is developing through the AI Agent Hub, guardrails and observability, and the regulatory pressure from the EU AI Act is pushing inventory and logging requirements forward. The practical guidance for 2026 is to treat every agent as a named non-human identity with an owner, a scope, a log and a review date, and to insist on that before the first agent goes live rather than during the first audit.

The commercial model changed, and it changes designs

The RISE with SAP Premium Plus tier was discontinued in June 2025 and its capabilities redistributed. Consumption now runs through AI Units, metered by tokens and varying substantially by model choice, alongside BTP Capacity Units and Business Data Cloud credits. This has a direct architectural consequence: model selection is a cost decision as well as a quality decision, and a design that calls a frontier model for every line of a document will cost an order of magnitude more than one that filters first and calls selectively. Building a cost model at design time, and instrumenting actual consumption from day one, is now part of the architecture rather than part of procurement.

Joule Work is the direction of travel worth watching

Joule started as a copilot inside applications. Joule Work, in early adopter release through 2026, is a unified workspace that takes an intent and delegates execution to agents across business functions, with mobile and voice surfaces alongside. If that direction holds, the long-term consequence is that the launchpad stops being the primary navigation model for a large class of users, and application design shifts from screens toward capabilities that an agent can compose. It is too early to build a strategy entirely on that assumption, and it is too late to design new applications as though it will not happen.

Be specific about what is shipped and what is roadmap

SAP's AI announcements move quickly and the gap between announced, early adopter, beta and generally available is significant. As of the Q2 2026 release, the Expense Automation, Process Consulting and Enterprise Content Research agents are generally available; Order Reliability and Project Billing Price Verification are in beta; Joule Work and Voice for Joule are early adopter; and the AI Agent Hub was targeting general availability in the third quarter. Any architecture document that says SAP Business AI without qualifying which components at which status will be wrong within a quarter. Cite the status, date the statement, and design so that a beta component can be swapped.

What usually goes wrong
  • Expecting value from AI over data that is inconsistent. Grounding is the whole architecture, and bad master data produces confident, wrong answers at cost.
  • Deploying an agent that acts without deciding whose authorisations it acts under and who is accountable for what it did.
  • Ignoring model choice as a cost decision. Calling a frontier model for every line of a document costs an order of magnitude more than filtering first.
  • Citing 'SAP Business AI' in an architecture document without qualifying which component at which release status, which will be wrong within a quarter.
  • Building a strategy entirely on Joule Work while it is still early adopter, or designing new applications as though agentic access will never arrive.
  • Treating agents as features rather than as non-human identities that need an owner, a scope, a log and a review date.
You understand this layer whenYou can name what grounds a Joule answer in your landscape, which meter each AI call draws from, and where the inventory of your agents lives.
L10

Security & Authorization

Who can do what, in a system that expresses it in unusual ways

SAP authorisation is not a permission list. It is a set of authorisation objects with fields, checked in code, bundled into profiles by roles, with an entire discipline built around designing the bundles so that people can work without being able to do everything.
Think of it likeA building where every door has a lock that checks several things at once: not just who you are, but which floor, which activity, and which department the room belongs to. A role is the keyring you are handed on your first day. The problem is that keyrings accumulate, nobody takes keys back, and after a few years the average employee can open more doors than anyone intended, which is precisely what an access review is for.

In the ABAP world, a user has one or more roles, each role generates an authorisation profile, and the profile contains authorisation objects with concrete field values. An authorisation object such as M_BEST_BSA has fields for activity and document type, and code that wants to check a permission issues an AUTHORITY-CHECK against the object with the values in play. The role maintenance transaction, PFCG, builds these from a menu of transactions and apps, deriving the objects from the profile generator and letting the security team fill the field values. S/4HANA layers business roles on top, which combine authorisations with Fiori catalogs and spaces, so a role determines both what appears and what is permitted. Segregation of duties is the discipline of ensuring no single role, and no combination of roles held by one person, allows both sides of a sensitive process. In the cloud, SAP Cloud Identity Services provide Identity Authentication for single sign-on and multi-factor authentication, Identity Provisioning for pushing users and groups between systems over SCIM, and the Identity Directory as the user store, with Cloud Identity Access Governance adding access analysis, request and certification. SAP Identity Management, the on-premise product, reaches end of maintenance in 2027, which is why identity governance replacement projects are common right now.

What lives in this layer
Authorisation object and fieldsThe unit of permission. An object with up to ten fields, checked in code with concrete values, which is why SAP permissions are multidimensional rather than flat.
Role and profileA role is maintained in PFCG and generates a profile containing authorisation objects with values. Users are assigned roles, and the profile is what the kernel checks.
Business role (S/4HANA)Combines authorisation with Fiori catalogs, spaces and pages, so what a user sees and what they may do are defined together.
Composite and derived rolesComposites bundle single roles for assignment. Derived roles inherit a menu and authorisations from a parent and differ only in organisational values.
SAP Cloud Identity ServicesIdentity Authentication for SSO and MFA, Identity Provisioning for SCIM-based user and group distribution, and the Identity Directory as the store.
Cloud Identity Access Governance (IAG)Access analysis, access request, role design and certification for cloud and hybrid landscapes.
SAP GRC Access ControlThe on-premise governance suite: Access Risk Analysis, Emergency Access Management, Business Role Management and Access Request Management.
Security notes and HotNewsThe monthly patch cycle. SAP Security Patch Day publishes notes with CVSS scores, and HotNews is the highest-priority subset.
Who works here
Security and authorisation teams own it, auditors examine it, and every functional consultant is affected by it whether or not they choose to learn it.
Tables and records to know
USR02User master header: user type, lock status, password data, validity. The first table in almost every user audit.
AGR_USERS / AGR_1251Role assignments to users, and the authorisation values inside roles. The pair behind almost every 'who can do what' query.
SU24The proposal data linking transactions and services to authorisation objects, which is what the profile generator uses. Maintaining it well is the difference between clean roles and manual ones.
USOBT_C / USOBX_CThe customer tables behind SU24 proposals. If your roles keep growing manual authorisations, this is usually where the neglect is.
Emergency access (firefighter) logWhatever your privileged access tool records. Unread firefighter logs are one of the most common audit findings in SAP estates.
How it connects
Down to the layer belowEnforced by the ABAP kernel at every AUTHORITY-CHECK, and by BTP role collections and identity provider trust in the cloud.
Up to the layer aboveDetermines what every user, interface and agent above it can actually do.
In depth

SAP authorisations are multidimensional, and that is why they are hard

In most systems a permission is a verb on a noun: read this, edit that. In SAP a permission is a verb on a noun, restricted by organisational dimensions, checked at the point in code where it matters. The same person may create purchase orders in one plant and only display them in another, and that is expressed as field values on the same authorisation object. This is genuinely more expressive than a flat model, and genuinely harder to reason about. It is also why generic identity governance tools that model SAP as a list of groups produce a picture that is technically accurate and practically useless: the group is the role, but the risk lives in the field values inside it.

SU24 is the leverage point almost nobody maintains

When you add a transaction or a Fiori app to a role menu, the profile generator proposes authorisation objects and default values based on SU24 data. If SU24 is well maintained for your custom transactions and your adjusted standard ones, roles generate cleanly and consistently. If it is not, every security administrator fills in objects by hand, differently, and the estate accumulates roles that nobody can regenerate without breaking. Investing in SU24 is unglamorous, invisible to the business, and produces a compounding return for the entire life of the system. It is the closest thing SAP security has to paying down interest.

Segregation of duties is a design problem before it is a reporting problem

Most organisations discover segregation of duties by running an analysis against an existing role landscape and receiving several thousand conflicts. That is the expensive order. The cheap order is to define the conflict ruleset first, design roles so that a single role cannot contain both sides of a conflict, and use the analysis to catch drift rather than to discover the design. Detective controls will always be needed for combinations that arise from multiple role assignments, but a role design that is conflicted internally guarantees a permanent remediation backlog. And a mitigating control is only a control if somebody actually performs it and can evidence that they did.

The cloud identity picture is a small number of pieces that people confuse

Identity Authentication is authentication: who you are, single sign-on, multi-factor, conditional access. Identity Provisioning is distribution: taking users and groups from a source and writing them into targets over SCIM. The Identity Directory is the store behind Identity Authentication. Cloud Identity Access Governance is governance: risk analysis, access request, certification. They are frequently discussed as one thing because they are sold together, and the resulting confusion produces designs where somebody expects provisioning to enforce a policy it has no knowledge of. Keep them separate in your head and the architecture becomes straightforward.

SAP IDM ends in 2027, and the replacement decision is strategic

SAP Identity Management reaches end of mainstream maintenance in 2027, with extended options into 2030 for some customers. Since SAP has not shipped a like-for-like on-premise successor, the realistic paths are the cloud identity services combined with Cloud Identity Access Governance, or a third-party identity governance platform, or a hybrid. The decision is strategic rather than technical, because it determines who owns joiner, mover and leaver for the whole estate, not just for SAP. The mistake to avoid is treating it as an SAP tooling migration, which produces a replacement for IDM's SAP scope and leaves the non-SAP scope orphaned.

Patching is a security control, and the cycle is monthly

SAP publishes security notes on Patch Day, the second Tuesday of each month, with CVSS scores, and HotNews notes are the critical subset. In on-premise and Cloud ERP Private, assessing and applying these is the customer's responsibility, and in practice it is one of the responsibilities most commonly assumed to be covered by a RISE contract when it is not. The minimum defensible position is a documented monthly process with an owner, a risk assessment per note, an application window, and evidence. Estates that skip this end up patching under incident conditions, which is the most expensive way to do it.

What usually goes wrong
  • Modelling SAP authorisations as a flat list of groups. The role is the group, but the risk lives in the field values inside it.
  • Leaving SU24 proposals unmaintained, so every role is filled in by hand, differently, and none can be regenerated safely.
  • Discovering segregation of duties by running an analysis against an existing role landscape rather than designing the roles against a ruleset in the first place.
  • Counting a mitigating control as a control when nobody performs it and no evidence exists that they did.
  • Confusing Identity Authentication, Identity Provisioning and Cloud Identity Access Governance, then expecting provisioning to enforce a policy it knows nothing about.
  • Assuming a RISE contract covers SAP Notes and HotNews assessment. In most service descriptions it does not.
  • Treating the SAP IDM end of maintenance as a tooling migration, which produces a replacement for the SAP scope and orphans everything else.
You understand this layer whenYou can explain to an auditor how a specific user came to hold a specific authorisation, which role granted it, who approved it and when it was last reviewed.
L11

Landscape & Lifecycle

How change gets from an idea into production without breaking it

An SAP landscape is a chain of systems connected by a transport path, operated through a defined set of tools, upgraded on a published cadence, and changed under a methodology that exists because unmanaged change in an ERP is genuinely dangerous.
Think of it likeA pharmaceutical production line. Nothing goes into the bottle that did not come through the same validated pipeline, in the same order, with the same tests, and a record of who approved each step. It looks like bureaucracy right up until the day someone tries to bypass it, and then it looks like the only thing that was keeping the operation safe.

The conventional landscape is three systems: development, quality assurance and production, connected by a transport route so that changes flow in one direction only. Larger estates add sandbox and pre-production systems and sometimes a separate maintenance track for urgent fixes. The Change and Transport System moves ABAP objects and customising; git-enabled CTS, known as gCTS, brings git semantics to ABAP transports; and Cloud Transport Management on BTP moves cloud content between subaccounts. On the operations side, SAP Cloud ALM is the strategic tool for implementation and operations, covering requirements, tasks, tests, monitoring and analytics, and it is what RISE customers get; SAP Solution Manager remains in many on-premise estates with maintenance to the end of 2027, extended to 2030. Upgrades use Software Update Manager, with Database Migration Option for the combined move to HANA, planned in Maintenance Planner and assessed in advance by SAP Readiness Check. SAP Activate is the methodology wrapper: discover, prepare, explore, realise, deploy and run, built around fit-to-standard rather than blueprint-and-build.

What lives in this layer
Three-system landscapeDevelopment, quality assurance and production, with a one-directional transport route and no changes made directly downstream.
Change and Transport SystemTransport requests, the transport directory, import queues and the transport management system that defines the routes.
gCTS and Cloud Transport ManagementGit-based transport for ABAP, and BTP-native transport of cloud content between subaccounts.
SAP Cloud ALMThe cloud application lifecycle tool: implementation, testing, change enablement, operations monitoring and business process monitoring.
SAP Solution ManagerThe on-premise predecessor, still widely deployed, with maintenance to end of 2027 and extended maintenance to 2030.
Software Update Manager (SUM) and DMOThe upgrade and conversion tool, with the Database Migration Option for combining an upgrade with the move to HANA.
Maintenance Planner and Readiness CheckThe planning tools: what stack to install, and what in your current system will block or complicate a conversion.
SAP ActivateThe methodology: phases, accelerators, best-practice content and a fit-to-standard workshop model rather than a blueprint.
ABAP Test Cockpit and custom code analysisStatic checks and usage analysis, used to build and prioritise the remediation backlog before a conversion.
Who works here
Basis and platform operations own the mechanics, programme managers own the plan, and every developer and consultant works inside the constraints it sets.
Tables and records to know
Transport requestThe unit of change: an owner, a description, tasks per developer, an object list, and a release that exports it to the transport directory.
Transport routeThe configured path from development to quality assurance to production, plus consolidation and delivery targets for multi-track landscapes.
Import queueWhat is waiting to go into a system, in order. Importing out of order is the single most common cause of self-inflicted inconsistency.
Support Package StackA consistent, SAP-tested combination of support package levels across components. Always apply stacks, not individual packages.
Readiness Check itemA finding from the pre-conversion analysis: simplification items, custom code findings, add-on compatibility, sizing and data volume.
How it connects
Down to the layer belowOperates on every system in the landscape, at every layer beneath it.
Up to the layer aboveDetermines how quickly and how safely anything above it can change.
In depth

The transport path is a control, and shortcuts destroy it

The value of a one-directional transport path is that production contains exactly what test contained, so a successful test means something. Every shortcut erodes that. A change made directly in production is invisible and will be silently overwritten by the next import. A transport imported into production but not into the maintenance track will reappear as a regression. Two developers changing the same object in two open requests produce an overtake, where whichever imports last wins regardless of which is correct. None of these are exotic. They are the routine failure modes of every estate that treats the transport path as an obstacle.

Conversion versus implementation is the largest single decision in an S/4HANA programme

A brownfield conversion keeps the history, the configuration and the custom code, and delivers a technically new system running the old process. A greenfield implementation delivers a new process and leaves behind everything that was not deliberately carried across, including the accumulated workarounds. Conversion is faster, cheaper and lower risk to the business, and it preserves whatever debt you have. Implementation is slower, more expensive and much harder on the organisation, and it is the only route that actually changes how the company works. The honest question is not which is technically better. It is whether the organisation has the appetite for process change, and answering that honestly at the start prevents the most common programme failure, which is a conversion sold as a transformation.

Readiness Check earns its cost before the project starts

SAP Readiness Check runs against your existing system and produces the list of things that will complicate a conversion: simplification items that need functional decisions, custom code that will not compile, add-ons without a compatible version, sizing implications, data volume, and business process discovery. Running it early, when the answer can still change scope and budget, is one of the highest-return activities in the whole programme. Running it late, when the plan is fixed, converts it from a planning tool into a list of surprises. The same is true of the custom code analysis: knowing that seventy percent of your custom objects have not been executed in a year changes the remediation conversation entirely.

Cloud ALM is where the tooling is going, and the transition is real work

SAP Cloud ALM is the strategic application lifecycle management platform and is included with cloud contracts. Solution Manager remains supported to the end of 2027 with extended maintenance to 2030, and remains genuinely more capable in some areas that mature on-premise estates depend on, particularly deep technical monitoring and certain change control scenarios. The pragmatic path is to adopt Cloud ALM for new implementation and testing work now, keep Solution Manager for the operational scenarios it still does better, and re-evaluate annually as Cloud ALM closes gaps. Treating it as a one-day switch, in either direction, produces a period where neither tool is trusted.

Release cadence sets your calendar, so put it in the plan

SAP Cloud ERP upgrades quarterly on SAP's schedule, which means four regression cycles a year that you do not control the date of, and an automated test suite stops being a nice-to-have. S/4HANA on-premise and Cloud ERP Private follow a two-year major release cadence with feature package stacks in between, which means an upgrade project you can schedule but must budget for. Either way, the mistake is to treat upgrade as an unplanned event. Mature estates hold a standing regression pack, a named owner for release assessment, and a calendar entry that exists before SAP announces the date.

What usually goes wrong
  • Changing anything directly in production. It is invisible to the transport path, it will be overwritten, and it undermines every test result you have.
  • Importing transports out of sequence, which quietly overwrites newer objects with older ones.
  • Running Readiness Check late, when the plan is fixed, so it produces a list of surprises instead of an input to scope.
  • Skipping the custom code usage analysis and remediating objects that nobody has executed in a year.
  • Applying individual support packages instead of tested support package stacks.
  • Treating an upgrade as an unplanned event, with no standing regression pack and no named owner for release assessment.
  • Switching wholesale between Solution Manager and Cloud ALM in one step, producing a period where neither tool is trusted.
You understand this layer whenYou can describe the exact route a change takes from a developer's keyboard to production in your landscape, and name who approves it at each gate.
L12

The Wider SAP Portfolio

Everything around the ERP that is also called SAP

Most large SAP estates are not one system. They are an ERP core surrounded by line-of-business cloud applications that SAP acquired or built, each with its own data model, release cycle and integration story.
Think of it likeA city rather than a building. The ERP is the town hall, and around it are a hospital, a university and a transport network, all part of the same city, all with their own management, all connected by roads that somebody has to maintain. Nobody sensibly designs the hospital as an extension of the town hall, and nobody sensibly pretends the roads look after themselves.

SAP SuccessFactors covers human capital management, from core HR in Employee Central through recruiting, learning, performance and compensation, and is very often the authoritative source of worker identity for the whole enterprise. SAP Ariba covers sourcing, contracts, procurement and supplier management, with the Business Network connecting buyers and suppliers. SAP Concur covers travel and expense. SAP Fieldglass covers external workforce and services procurement, which matters enormously for identity because it is where contractors are managed. The customer experience portfolio covers sales, service, commerce and customer data. SAP Integrated Business Planning covers supply chain planning. SAP Signavio covers process mining and process management, and SAP LeanIX covers enterprise architecture management and now underpins the AI Agent Hub. SAP Business Network connects trading partners across procurement, logistics and asset management. Each of these has its own tenant model, its own identity integration, its own extensibility model and its own upgrade schedule, and the integration between them is a first-class architectural concern rather than a project detail.

What lives in this layer
SAP SuccessFactorsHuman capital management. Employee Central is frequently the authoritative worker source for the entire identity estate.
SAP Ariba and Business NetworkSourcing, contracting, procurement and supplier collaboration, with a network connecting buyers and suppliers.
SAP ConcurTravel booking, expense management and invoice capture, with its own approval model and its own mobile experience.
SAP FieldglassExternal workforce management. The system of record for contractors, which makes it critical to any joiner, mover and leaver design.
SAP Customer ExperienceSales Cloud, Service Cloud, Commerce Cloud, Emarsys and Customer Data Cloud. A portfolio rather than a product.
SAP Integrated Business PlanningSupply chain planning: demand, supply, inventory, response, with its own planning engine and Excel-based front end.
SAP SignavioProcess mining, modelling and governance. Increasingly the tool used to justify and measure a transformation.
SAP LeanIXEnterprise architecture management, application portfolio, technology risk, and the foundation of the AI Agent Hub.
Who works here
Enterprise architects, integration architects, identity teams, and anyone whose job description contains the word landscape.
Tables and records to know
Employee Central workerThe SuccessFactors worker record, with employment, job and personal sub-objects, and effective-dated history throughout.
Ariba realmThe Ariba tenant identifier. Buyers and suppliers each have realms, and network transactions reference both.
Concur expense reportThe unit of travel and expense processing, with policy, approval and posting to finance.
Fieldglass workerThe external worker record. Often the only system that knows a contractor's actual end date.
Business Network documentPurchase orders, invoices, ship notices exchanged between trading partners across the network.
How it connects
Down to the layer belowIntegrates with the ERP core through Integration Suite, prebuilt content and APIs, and shares identity through Cloud Identity Services.
Up to the layer aboveRepresents most of the business processes that users actually touch on a given day.
In depth

The authoritative source question is the one to settle first

In an estate with SuccessFactors, Fieldglass, Active Directory and S/4HANA, four systems believe they know who works here. Deciding which is authoritative for which population, and for which attributes, is the single highest-leverage design decision in the whole landscape. The pattern that works is SuccessFactors as authoritative for employees, Fieldglass for external workers, and everything else downstream of one of those two, with the identity provisioning layer enforcing it. The pattern that fails is allowing each application to be maintained locally because it was quicker during implementation, after which nobody can answer the question of who has left.

Prebuilt integration content is real, and it is not free

SAP ships integration packages for the common flows between its own applications, and they genuinely reduce effort. What they do not do is make the integration free: the packages still need configuration, mapping of your organisational values, error handling that fits your operating model, monitoring, and someone who understands them when they break at month end. The failure mode is planning an integration as a configuration task because a package exists, and discovering during test that the package assumed an organisational structure you do not have.

Each application has its own release cadence, and they do not align

SuccessFactors releases twice a year on a published schedule with opt-in and universal features. Ariba, Concur and Fieldglass have their own cycles. SAP Cloud ERP is quarterly. S/4HANA on-premise is every two years. The consequence is that an estate of six SAP products has something upgrading almost every month, and each upgrade can affect an interface. Mature estates maintain a single release calendar across all products with named owners, and treat interface regression as a standing activity rather than a per-project one.

Extensibility differs per product, and the skills do not transfer cleanly

S/4HANA extensibility is key user tools, ABAP Cloud and BTP. SuccessFactors has its own metadata framework, business rules and intelligent services. Ariba has its own customisation model and its own limits. Commerce Cloud is a Java platform. A team that has learned to extend S/4HANA cleanly does not automatically know how to extend SuccessFactors safely, and the same clean core principle applies in each: use the sanctioned extension points, avoid the ones that will not survive an upgrade, and resist the temptation to solve a product's limitation by building around it in BTP unless the case is genuinely strong.

The portfolio is why BTP exists

If SAP were one product, extensions could live inside it. Because SAP is a dozen products with different runtimes, different release schedules and different extension models, there has to be one place where cross-application logic, unified user experience, shared identity and enterprise-wide integration live. That is the strategic argument for BTP, and it is a good one. It also explains why BTP feels like several unrelated things at once: it is not one platform serving one product, it is the connective tissue for a portfolio.

What usually goes wrong
  • Never settling which system is authoritative for which population, so four systems each believe they know who works here.
  • Maintaining users locally in each application because it was quicker during implementation, after which nobody can answer who has left.
  • Planning a prebuilt integration package as a configuration task and discovering in test that it assumed an organisational structure you do not have.
  • Managing release calendars per product, so six products upgrade on six schedules and interface regression is always somebody else's problem.
  • Assuming that a team who can extend S/4HANA cleanly knows how to extend SuccessFactors or Ariba safely. The extension models do not transfer.
  • Forgetting Fieldglass in the joiner, mover and leaver design, which is how contractor access outlives contractors.
You understand this layer whenYou can draw your organisation's SAP landscape on one page, name the authoritative source for each population and each master data domain, and say which integration carries what between them.

What actually happens, step by step

End-to-end traces

The fastest way to understand an architecture is to follow one thing all the way through it. These seven traces each follow a different journey across the same stack, from a user saving a change in a Fiori app to a number on a dashboard traced back to the posting that created it. Colours mark where each step actually happens.

Person Browser App server SAP HANA BTP cloud Outside SAP

Every layer of the modern stack appears exactly once in this path: the launchpad, the OData service, the RAP behaviour, the CDS view, the ABAP work process, the enqueue server, the update task and the HANA column store. If you can narrate it, you can debug it.

1PersonThe user opens the launchpad and clicks a tileThe launchpad has already loaded the catalogue of tiles this user is entitled to see. That entitlement came from the business role, which is why in Fiori the user experience and the authorisation model are the same design decision rather than two.
2BrowserThe tile resolves through a target mappingA tile is a visual thing. What actually happens is that a semantic object and an action, for example SalesOrder-display, are matched against a target mapping that names the UI5 application to load. This indirection is why the same tile can point at a different app in a different landscape, and why a broken tile is usually a missing target mapping rather than a broken application.
3BrowserUI5 bootstraps and asks for the service metadataThe application requests the OData metadata document before it requests any data. For a Fiori elements application that metadata, with its annotations, is the application: the list, the filter bar, the object page and the field labels are all generated from it. This first request is also why an app that is slow to appear but fast once open usually has a metadata caching problem, not a data problem.
4BrowserThe user edits fields and presses SaveIf the object is draft-enabled the edits have already been persisted to draft tables as the user typed, which is why a Fiori app can survive a closed browser tab in a way the old dynpro screens never could. Pressing Save is the request to turn the draft into an active document.
5App serverThe ICM accepts the HTTPS requestThe Internet Communication Manager is the web front door of the ABAP server. It terminates the connection, works out that this is an OData call to a particular service path, and hands the request to the dispatcher.
6App serverThe dispatcher assigns a dialog work processThe request now occupies one dialog work process for its duration. There is a finite number of them. This is the single most common cause of an SAP system that feels frozen for everybody: one badly written report is holding processes that everyone else is queueing for.
7App serverAuthentication and authorisationThe session resolves to an ABAP user, usually through a SAML assertion or a JWT issued by SAP Cloud Identity Services rather than a password. The user's roles are expanded into an authorisation buffer for this session. Every later check reads that buffer, which is why a role change does not take effect until the user logs on again or the buffer is reset.
8App serverThe RAP runtime takes overThe OData request is mapped onto a behaviour definition. RAP runs the modify operations against a transactional buffer held in memory, not against the database. Determinations fill derived fields, validations decide whether the data is acceptable, and actions run any explicitly modelled business operation. Nothing has been written yet.
9SAP HANACDS views read what the logic needsAny read the logic performs goes through the virtual data model. A CDS view is not a copy of data: it is a definition that is pushed down and executed inside HANA, so joins, aggregations and currency conversions happen where the data already lives instead of being dragged into the application server first.
10App serverThe enqueue server grants a lockBefore the save can proceed the application requests a logical lock on the business object from the central enqueue server. This lock is an SAP concept, not a database one, and it is what stops two users from editing the same sales order at once. It is also why a hung session can block a document until somebody clears the lock entry.
11App serverThe save sequence runs and the update task is calledRAP runs its save sequence, then hands the change to the update task. This is the part that surprises people arriving from other platforms: the dialog work process does not usually write to the database itself. It queues the work for an update work process and is free to answer the user.
12SAP HANACOMMIT WORK, and the rows existThe update work process performs the actual inserts and updates and commits. Redo is written to the log volume and the change is durable. Only now does the document exist for anyone else. A failed update at this point produces the classic symptom of a transaction that reported success and left no document behind, recorded as an update termination.
13BrowserThe response returns and the draft disappearsThe app switches from draft to active, shows the document number, and refreshes from the same OData service. If you want to know what the whole round trip cost, the single response time in the workload monitor is broken down into processing, database and roll-wait time, and that split usually names the guilty layer without any further investigation.

This is the integration story that made SAP what it is, and in S/4HANA it is also the clearest demonstration of what the Universal Journal changed.

1BrowserThe order is createdHeader data identifies the sold-to party, which is a Business Partner. Item data identifies materials and quantities. Nothing here mentions accounting, and the person entering it does not need to know a single general ledger account.
2App serverPricing runsThe condition technique determines the price by walking an access sequence of condition tables from the most specific match to the most general: this customer and this material, then this customer group, then this price list, and so on until something matches. Almost every question that begins with why is the price wrong is answered by the pricing analysis on the item.
3App serverCredit and availability are checkedThe credit check compares exposure against the limit held for the business partner. Advanced ATP checks whether the material can be promised, and if it cannot, it decides who gets it: backorder processing applies rules about which customers win when supply is short.
4SAP HANAThe order is writtenHeader to VBAK, items to VBAP, schedule lines to VBEP, and the flow of documents is recorded so that every later document can be traced back to this one. No financial posting has happened, because nothing of value has moved yet.
5App serverThe delivery is created and the goods issue is postedThis is the moment value moves. The goods issue reduces inventory and, in the same step, posts to finance: stock decreases, cost of goods sold increases. In S/4HANA the material document lands in MATDOC and the accounting effect lands in the Universal Journal in the same logical unit of work.
6App serverBilling creates the invoiceThe billing document copies from the delivery or the order according to copy control, applies the same pricing conditions, and generates the accounting document: receivable up, revenue up, tax up. Revenue recognition rules may defer part of that revenue rather than taking it immediately.
7SAP HANAOne row per line, in ACDOCAThe posting writes to the Universal Journal. The general ledger, the customer subledger, controlling, profitability analysis, margin analysis and asset accounting all read those same rows rather than keeping their own totals. This is why the reconciliation exercise between finance and controlling that used to consume the close simply has no reason to exist any more.
8App serverAnalytics see it immediatelyAn embedded analytics CDS view over ACDOCA can report on this posting the moment it commits, because there is no extraction, no aggregate build and no overnight job between the posting and the report.
9Outside SAPThe document leaves the buildingOutput management renders the invoice and sends it. Depending on the country that is a PDF by email, an EDI message through the Integration Suite, or a legally mandated electronic invoice submitted to a tax authority through the Document and Reporting Compliance service.

Because the 2027 maintenance date makes this the single most common large SAP programme running right now, and because most of the pain in it is predictable from this list.

1App serverReadiness Check and Maintenance PlannerReadiness Check reads your actual system and produces the honest version of the scope: simplification items that apply to you, custom code that will break, add-ons that have no successor, the sizing you will need and the recommended Fiori apps. Run it early, when the answer can still change the plan, rather than late when it can only change the mood.
2App serverCustom code gets an evidence-based cullUsage data collected in the production system tells you which of your custom objects anybody has actually executed. The Custom Code Migration app combines that with the ATC results for the S/4HANA checks, so the backlog is not every object you own, it is the objects that are both used and broken. That distinction routinely removes a large share of the remediation estimate.
3App serverPre-checks and mandatory preparationSimplification item checks run in the source system and refuse to be argued with. Open items must be cleared, inconsistencies fixed, and a long list of small functional preparations completed. The Business Partner conversion is the one that most often derails a plan, because it forces decisions about number ranges, about which record wins when a customer and a vendor are the same organisation, and about the several hundred interfaces that reference customer and vendor numbers.
4SAP HANASoftware Update Manager with the database migration optionSUM builds a shadow repository alongside the running system, so most of the work happens while the business is still using the old one. DMO then moves the database to HANA in the same run rather than as a separate project. The downtime window is the part everyone negotiates about, and near zero downtime maintenance is what is negotiated with.
5App serverRepository and modification adjustmentSPDD handles dictionary objects during the upgrade and SPAU handles repository objects after it. Every modification you ever made to standard SAP code appears here as a decision. This is the moment where the cost of years of Level D changes is presented as a bill.
6SAP HANAFinance data conversionThe old finance tables are read and the Universal Journal is built from them. Documents are enriched so that historic postings carry the fields the new model expects. This step is long, it is unforgiving about inconsistencies, and it is why finance closes the books cleanly before a conversion weekend.
7BrowserFiori is activated and business roles are builtA conversion that stops at the technical line delivers the old screens on a new database and disappoints everybody. Activating the launchpad, choosing the apps that matter for each job, and rebuilding the authorisation model as business roles is where the users notice anything has happened.
8App serverRegression, cutover, hypercareA standing regression pack, run repeatedly, is the difference between a controlled go live and a fortnight of surprises. After cutover, hypercare is not a formality: the first month end close in the new system is the real test.

Because most integration incidents are not application faults, and knowing this sequence tells you exactly which of the five places to look first.

1App serverThe business document is postedAn order confirmation, a despatch advice or an invoice comes into existence as a normal business document. Nothing about integration has happened yet.
2App serverOutput determination picks the messageCondition records decide that this partner, for this document type, receives this message by this medium. If a partner is not receiving anything at all, this is almost always the reason, and it is configuration rather than code.
3App serverAn IDoc is created and queuedThe IDoc is written with its control record, data records and status records. It is handed to the transactional RFC layer, which guarantees exactly once delivery to the receiving system, retrying on its own if the receiver is unavailable. This guarantee is the reason IDocs have outlived several generations of replacement.
4BTP cloudCloud Integration collects itAn integration flow with an IDoc sender adapter receives the message. From here the flow is a pipeline: convert the IDoc XML into the target structure, enrich it with anything the partner needs, and route it. The mapping itself was very likely generated from Integration Advisor rather than drawn by hand.
5BTP cloudPartner-specific handlingTrading Partner Management holds what is specific to this partner: their identifiers, their variant of the standard, their agreed message versions and their communication channel. That separation is what stops a hundred partners becoming a hundred integration flows.
6Outside SAPThe message is transmittedAS2, SFTP, a REST call or a value added network, secured with the appropriate certificate. Certificates expire, and an expiry that nobody was alerted about is one of the most common causes of an integration that stopped working at midnight for no apparent reason.
7BTP cloudAcknowledgement comes backA functional acknowledgement confirms the partner accepted the message. Without one you have proof that you sent something and no proof that anybody received it, which is exactly the position you do not want to be in during a dispute.
8App serverStatus is written back and monitoredThe IDoc status is updated so that the business document shows what happened to it. Failed messages need an owner, an alert and a documented reprocessing procedure. Waiting for a customer to phone is not a monitoring strategy, and it is remarkably common.

This is the trace that makes destinations, the Cloud Connector and principal propagation stop being abstract words on a slide.

1PersonA user opens the custom applicationThe application is not in the ERP. It runs on the Business Technology Platform, in a subaccount, in a region, under a subscription that somebody was entitled to. All four of those words are separate things that can each independently be the reason it does not work.
2BTP cloudIdentity Authentication signs the user inThe subaccount trusts an identity provider. In a well built landscape that is SAP Cloud Identity Services acting as a proxy in front of the corporate identity provider, so that the same person, with the same credentials and the same multi-factor policy, signs in to the extension and to the ERP.
3BTP cloudAuthorisation scopes are checkedThe authorisation and trust management service issues a token carrying scopes derived from role collections. Note carefully that these are the extension's own authorisations. They say what the user may do in this application. They say nothing at all about what that user may do inside S/4HANA.
4BTP cloudThe destination is resolvedThe application does not hold a URL or a credential. It asks the destination service by name, and the destination service returns the endpoint and the authentication method for this environment. This is why the same code runs against development, test and production without a single line changing.
5Outside SAPThe Cloud Connector opens the doorFor an on-premise or private cloud back end, traffic goes through the Cloud Connector, which sits inside the customer network and maintains an outbound TLS tunnel to the subaccount. No inbound firewall port is opened. Critically, the Cloud Connector exposes only the specific resource paths an administrator listed, which is why an over-broad path entry quietly turns a narrow tunnel into a general purpose door.
6App serverThe principal is propagatedRather than every call arriving as one shared technical user, principal propagation presents a short lived certificate that the ABAP system maps to the real user. The call now runs under that person's own authorisations, so the ERP applies exactly the checks it would apply if they had used a Fiori app, and the change document records who really did it.
7App serverA released API does the workThe call lands on a released OData or SOAP API, which carries a stability contract. That contract is the whole point: the extension survives the next upgrade because SAP has promised not to break the interface it uses. An extension that called an internal object instead would be a fault waiting for a release date.
8SAP HANAThe data is read or writtenNothing is bypassed. Authorisation checks, determinations, validations, locking and change documents all behave exactly as they do for an interactive user, because the call went in through the front door.
9BTP cloudAn event announces what happenedFor anything that other systems care about, the ERP raises a business event and the extension subscribes to it, rather than polling for changes. This is the difference between an integration that reacts in seconds and one that runs on a fifteen minute timer and is always slightly wrong.

Because the useful mental model is that AI is a new kind of caller of the same platform, not a new platform, and everything about accountability follows from that.

1PersonSomebody asks in ordinary languageFrom the launchpad, from a business application, from a collaboration tool, or spoken. The user does not name a transaction, an app or a table, which is precisely what makes this useful and precisely what makes it hard.
2BTP cloudThe request is groundedGrounding is the whole architecture. Retrieval pulls the relevant business context: the actual documents, the actual master data, the semantic relationships from the knowledge graph, and where it is in play, harmonised data from Business Data Cloud. A model without grounding will answer confidently and wrongly, and it will bill you for the privilege.
3BTP cloudAn agent plansFor anything beyond a question, an agent decides on a sequence of steps and which skills to use for them. A skill is not magic: it is a defined capability, most often a call to a released API, built either by SAP or in Joule Studio by you.
4BTP cloudThe model call is routed and meteredThe generative AI hub abstracts the model so that the choice of model is a configuration decision rather than a rewrite, and it applies the guardrails: data masking, content filtering and grounding orchestration. Consumption is metered in AI Units, which is a real budget line and not a rounding error.
5App serverThe skill calls the applicationHere is the part that matters for security. The agent acts through the same released APIs an extension would use, under an identity with authorisations. It does not have a private route into the data. If it may not read a cost centre, it may not read it, regardless of how the request was phrased.
6SAP HANARecords are read or written normallyValidations run, locks are taken, change documents are written. An agent that posts a document leaves the same audit trail as a person who posts a document, which is what makes the whole thing defensible.
7BTP cloudThe interaction is logged and inventoriedWho asked, what was retrieved, what the agent did, which model answered and what it cost. Agents belong in an inventory with a named owner, a defined scope and a review date, in the same way that a technical user does, because that is functionally what they are.
8PersonThe answer, and the way outThe user gets a result and a route to a human. The design question that separates a serious deployment from a demonstration is what happens when confidence is low or the action is irreversible, and the correct answer is never that the agent proceeds anyway.

Because the question a finance director asks is always where did this number come from, and an architecture you cannot answer that question about is not finished.

1PersonSomebody queries a figure in a storyA chart in SAP Analytics Cloud shows a margin that looks wrong. The useful discipline is to walk backwards from the pixel to the row rather than to argue about the number.
2BTP cloudThe story reads a modelThe first fork in the road is whether this is a live connection, where the query executes in the source and no data is copied, or an imported model, where a copy was loaded on a schedule. If it is imported, the first candidate explanation is that the copy is stale, and that is a five minute check.
3BTP cloudThe model reads a view in DatasphereDatasphere holds the business semantics: the entities, the associations, the measures and the definitions that make a number mean the same thing across sources. Spaces control who can see what, and lineage in the impact analysis view will show you the chain rather than making you guess it.
4BTP cloudThe view consumes a data productIn a Business Data Cloud landscape the input is a governed data product rather than a hand built extraction. It arrives with its semantics attached and it is shared without physically copying, which removes an entire class of reconciliation argument about which copy was right.
5SAP HANAThe data product is grounded in real tablesEventually the chain reaches actual rows: the Universal Journal for finance, the material document tables for inventory, and the master data those rows reference. Everything above this point is definition. This is the only layer that is fact.
6App serverThe posting that created the rowThe row was written by a business transaction, on a date, by a user or an interface, with a document number you can open. When the number in the dashboard is wrong, this is where the wrongness usually turns out to have been introduced, long before any analytics tool was involved.
7PersonThe answerEither the definition is wrong, which is fixable in the semantic layer, or the data is wrong, which is fixable at the source, or the copy is stale, which is a schedule. Three outcomes. The value of the trace is that it tells you which of the three you are dealing with instead of leaving three teams to blame each other.

The sequence that explains most of your SAP problems

The save sequence

When somebody says an SAP transaction failed, they usually mean it succeeded in one place and failed in another. This is what actually happens between a user pressing save and a row existing in the database, and it is the sequence that explains the majority of behaviour that otherwise looks like the system being arbitrary.

D6

From keystroke to committed row, at a glance

The same sequence runs whether the caller was a Fiori app, an OData request from an extension, an RFC from another SAP system or an AI agent skill.

Scroll the diagram sideways, or tap Enlarge for a bigger view

THIS SEQUENCE ANSWERS MORE SUPPORT TICKETS THAN ANY OTHER PAGE OF DOCUMENTATIONBrowserIN THE BROWSER, BEFORE ANYTHING IS SENTLocal checks run, so the obvious mistakes never reach the serverA draft-enabled object has already persisted the edits as the user typedNone of it is trusted; an OData call from a script never sees any of itDispatchTHE REQUEST TAKES A WORK PROCESSThe ICM terminates the connection, the dispatcher assigns a dialog processThe user context is rolled in for the duration of this dialog stepThere is a finite number of them, which is what a frozen system usually isAuthoriseAUTHORISATION, BEFORE ANY BUSINESS LOGICChecks read the buffer built at logon, not the current role tablesWhich is exactly why a newly granted role appears not to workThe check is against an object with field values, not against a role nameLogicLOGIC RUNS AGAINST A BUFFER, NOT THE DATABASEDeterminations derive, validations decide, actions performCustom logic in a released BAdI runs here, at a point SAP keeps stableNothing is on disk, so querying the table now shows you the old valuesLockTHE ENQUEUE LOCK IS TAKENA logical lock on the business object, from the central enqueue serverOne server for the whole system, so enqueue wait time is worth watchingCommitCOMMIT WORK - THE UPDATE TASK WRITESThe dialog process hands the change over and is free to answer the userAn update work process performs the writes and commits; redo hits diskA failure here is an update termination, not an error the user ever sawPersistINSIDE HANA, THE WRITE IS NOT WHERE YOU THINKColumn store writes land in the delta store, not in the compressed mainA delta merge moves them later, at a real cost in memory and CPUSavepoints flush pages so recovery does not replay the entire logAfterwards, and asynchronously: business events for subscribers, outputdetermination, background jobs, change documents and read access logging.By the time the user sees the document number, some of this has not run yet.
How to read it. The middle of this diagram is the part worth memorising, because its order is the answer to a surprising number of support tickets. Authorisation is checked before any business logic runs, against the buffer built when the user logged on, which is exactly why a newly granted role appears not to work until the user logs off and back on. Business logic then runs against an in-memory buffer rather than against the database, which is exactly why querying the table mid-transaction shows you the old values. The enqueue lock is logical and comes from a single central server for the whole system, which is why enqueue wait time is worth a dashboard. COMMIT WORK hands the writes to the update task and releases the dialog process, so the user is told the save succeeded before the rows exist. Inside HANA the write lands in the delta store, not in the compressed main store, and a delta merge moves it later at a real cost in memory and CPU. The band at the bottom is the other half of the lesson: business events, output determination, background jobs, change documents and read access logging all happen afterwards and asynchronously, so by the time the user reads the document number on screen, some of the work that document triggered has not started yet.
1

In the browser, before anything is sent

Browser
  1. Field-level checks defined in the metadata or the UI5 controller run locally, so the obvious mistakes never reach the server
  2. For a draft-enabled object the edits have already been persisted as a draft as the user typed, and Save is the request to make the draft active
  3. None of this is trusted by the server. It is convenience, not control, and an OData call from a script never sees any of it
2

The request arrives and takes a work process

App server
  1. The ICM terminates the connection and the dispatcher assigns a dialog work process
  2. The user context is rolled in: authorisations, parameters, and whatever state belongs to this session
  3. There is a finite number of dialog work processes, and a long-running report holding several of them is what a frozen system usually is
  4. A dialog step that runs longer than the configured maximum is terminated by the runtime, which is why long work belongs in a background job and not in a screen
3

Authorisation, before any business logic

App server
  1. Checks read the authorisation buffer that was built when the user logged on, not the current contents of the role tables
  2. This is why a newly granted role often appears not to work: the buffer is stale until the session is refreshed
  3. A check is against an authorisation object with specific field values, so having the object is not the same as being allowed the value
  4. The trace of a failed check names the object and the values that were required, which turns most access incidents into a two minute answer
4

Business logic runs against a buffer, not the database

App server
  1. In RAP, determinations derive values, validations decide acceptability, and actions perform modelled operations, all inside a transactional buffer in memory
  2. In classic ABAP the same idea is expressed as a SAP logical unit of work: function modules registered for update, executed later
  3. Either way, nothing is on disk yet, and reading the database at this point will not show you what the user has just done
  4. This is also where custom logic in a released BAdI executes, at a point SAP has committed to keeping stable
5

The lock is taken

App server
  1. A logical lock is requested from the central enqueue server before the save proceeds
  2. This is an SAP construct and not a database lock, and it protects a business object rather than a row
  3. One enqueue server serves the whole system, which is why it is a single point worth understanding and why enqueue wait time is a meaningful metric
  4. Locks left behind by a crashed session block the document until somebody clears the entry, which is a manual act with an audit trail
6

COMMIT WORK: the update task writes and commits

SAP HANA
  1. The dialog work process hands the queued updates to an update work process and is free to answer the user
  2. The update work process performs the inserts and updates and issues the commit; redo is written to the log volume and the change becomes durable
  3. Because this is asynchronous, a transaction can report success to the user and still fail on write, which appears as an update termination and an express message rather than an error on screen
  4. Number ranges are drawn here, buffered per server for performance, which is exactly why document numbers have gaps and why gaps are not evidence of missing documents
7

Inside HANA, the write is not where you think it is

SAP HANA
  1. Column store writes land in the delta store, which is optimised for insert, not in the compressed main store
  2. A delta merge later moves them into main; that merge costs memory and CPU and is a real answer to why did the system slow down at four in the afternoon
  3. Savepoints flush pages to the data volume so that recovery does not have to replay the entire log
  4. In memory does not mean not durable. Every commit is on disk before it is acknowledged
8

Afterwards, asynchronously

App server
  1. Business events are raised for subscribers, which is how an extension or another system learns that something happened without polling
  2. Output determination may queue a document for printing, emailing or transmission to a partner
  3. Background jobs pick up anything deliberately deferred, and their scheduling is a design decision rather than an operational detail
  4. Change documents and, where configured, read access logging record what happened for the auditor who will ask about it in eleven months
The asynchronous update is the single most useful thing on this page to remember. Almost every report of the system said it saved but the document is not there resolves to an update termination, and the update record names the function module that failed.
Table buffering means that a configuration change made on one application server can take up to a minute to be visible on another. Chasing a difference between two servers without knowing this can consume an afternoon.
Everything above happens identically whether the caller was a Fiori app, an OData call from an extension, an RFC from another SAP system, or an agent skill. There is no side door, and that is a deliberate architectural property rather than an accident.
If you want to know where the time actually went, the workload monitor splits a dialog step into processing, database, roll-wait, enqueue and load time. That split names the layer to investigate more reliably than any amount of speculation.

The part of the model everything else depends on

The S/4HANA data model

SAP has tens of thousands of tables and you will never learn them. You do not need to. What you need is the handful of structural ideas that everything else is built on, because once those are clear, an unfamiliar table stops being a mystery and becomes an instance of a pattern you already recognise.

D7

The six ideas, and how they hang together

Learn this one diagram properly and an unfamiliar SAP table stops needing to be memorised, because its role can be worked out.

Scroll the diagram sideways, or tap Enlarge for a bigger view

SIX IDEAS EXPLAIN ALMOST EVERY TABLE YOU WILL EVER MEETlearn these and an unfamiliar table stops being a mysteryConfigurationBehaviour stored as table entriesThe Implementation GuideA structured tour of those entriesOrganisational structureCompany code, plant, sales orgEffectively immutableChanging one after go live is enormousMaster dataThings that persistBusiness PartnerOne object, customer and vendor rolesMaterial, account, cost centreReferenced, never repeatedTransactional dataEvents that actually happenedACDOCA, the Universal JournalOne row per line, all dimensions on itCDS virtual data modelSemantics layered over the tablesI_ interface viewsBuild your custom code on theseC_ consumption viewsDo not build on these, they changeClientThe outermost data boundaryAND THE ONE THAT CATCHES EVERYBODY: COMPATIBILITY VIEWSWhen S/4HANA removed or restructured a table, SAP often left a view behind with the old name.Your existing SELECT still returns data, from ACDOCA, through that view. Your INSERT does not.Treat every compatibility view in your custom code as a remediation item with a date, not a permanent arrangement.
How to read it. Start at the client, because it is the outermost boundary and everything else sits inside it. Configuration is behaviour stored as table entries rather than as code, and the Implementation Guide is simply a structured tour of those entries. Organisational structure, company code, plant, sales organisation, is effectively immutable in practice; changing one after go-live is a programme rather than a change request. Master data is the set of things that persist and are referenced rather than repeated, and in S/4HANA the Business Partner is the single object carrying both the customer and the supplier roles that used to be separate. Transactional data is what actually happened, and the Universal Journal, ACDOCA, replaced a shelf full of finance aggregate tables with one row per line item carrying every dimension. Above all of it sits the CDS virtual data model, which is the layer you should actually be reading: build your custom code on I_ interface views, and do not build on C_ consumption views, because they are explicitly allowed to change. The strip at the bottom is the trap. When S/4HANA removed or restructured a table, SAP often left a view behind with the old name, so your existing SELECT still returns data and your INSERT does not. Every compatibility view in your custom code is a remediation item with a date, not a permanent arrangement.

The client is the outermost boundary

Almost every business table in SAP begins with a client field, and almost every query is implicitly filtered by the client the user logged on to. It is a complete, self-contained set of business data inside one system: separate customers, separate documents, separate configuration for anything client-dependent. This is why a training client and a production client can share hardware and share nothing else, and why the mistake of testing in the wrong client is both easy to make and immediately obvious.

Configuration is data, not code

The thing that most distinguishes SAP from a conventional application is that its behaviour is driven by table entries rather than by programming. A company code, a document type, a pricing procedure, a movement type and an account determination rule are all rows. That is why an implementation is largely configuration, why the Implementation Guide is a structured tour of those rows, and why customising travels between systems on a transport just like code does.

Organisational structure is the skeleton

Client, company code, plant, sales organisation, distribution channel, division, purchasing organisation, controlling area. These are not labels: they are the dimensions along which the entire system posts, reports and authorises. They are also close to immutable in practice, because changing a company code after go live means touching every document ever posted against it. This is why the organisational structure workshop happens early and why experienced people take it so seriously.

Master data, then transactional data

Master data describes things that persist: materials, business partners, general ledger accounts, cost centres, assets, employees. Transactional data records events that happened: orders, deliveries, invoices, journal entries, goods movements. Transactional rows reference master data rather than repeating it, which is why bad master data is not a data quality inconvenience but a defect that reproduces itself into every document created from it.

The Universal Journal replaced the aggregates

In the older architecture, finance kept the general ledger, controlling, profitability analysis, asset accounting and the material ledger in separate tables with separate totals, and reconciling them was a real job performed by real people every month. S/4HANA writes one row per line item into ACDOCA, with all the dimensions on it, and derives the totals by aggregating on demand because a column store can do that fast enough. The reconciliation task did not get easier. It ceased to exist.

The Business Partner is the single identity

A customer and a vendor used to be separate objects with separate numbers, which meant that an organisation you both sold to and bought from was two records that did not know about each other. The Business Partner is one object that can carry multiple roles, with customer and vendor as two of them. This is mandatory in S/4HANA, and converting to it is consistently one of the most underestimated parts of a brownfield programme, because it is not a data load: it is a set of decisions about number ranges, about which record wins, and about several hundred interfaces that quote customer and vendor numbers.

CDS views are the model you should actually read

The virtual data model is a layered set of Core Data Services views over the tables. Basic interface views expose an entity cleanly. Composite views combine them into something meaningful. Consumption views serve a specific application or report. The naming matters more than it looks: I_ interface views are intended for you to build on and carry stability expectations, while C_ consumption views exist to serve a particular SAP application and are explicitly free to change. Building custom code on a C_ view because it happened to have the fields you wanted is one of the most reliable ways to break yourself at the next upgrade.

Compatibility views are a bridge, and bridges end

When S/4HANA removed or restructured a table, SAP frequently left a view behind with the old name so that existing read code kept working. Your SELECT against the old finance tables still returns data, from ACDOCA, through a view. What does not work is writing to them, and what is not guaranteed is that the view is as fast as the table used to be. Treat every compatibility view in your custom code as a remediation item with a deadline rather than as a permanent arrangement.

The wider portfolio, and why it is one landscape

S/4HANA is the centre of gravity but it is not the whole estate. Most organisations of any size run several of these, and the architecture question is never what each one does in isolation. It is which system is authoritative for which data, and what carries information between them.

Eight products around the ERP, and what each one really owns

Scroll the diagram sideways, or tap Enlarge for a bigger view

S/4HANA IS THE CENTRE OF GRAVITY, NOT THE WHOLE ESTATESAP SuccessFactorsHuman capital, and in mostlandscapes the authoritativesource for who works hereSAP Ariba and Business NetworkSourcing, contracts andprocurement, with the supplieron the network as wellSAP ConcurTravel and expense. A smallproduct with a persistentfinance and identity footprintSAP FieldglassContractors and statements ofwork: who is here who is notan employee. Often forgottenSAP Customer ExperienceSales, service, commerce andmarketing, and the recurringargument about who owns the customerSAP Integrated Business PlanningSupply chain planning above thelevel the ERP holds, handedback down for executionSAP SignavioProcess mining from real eventlogs: how work actually flows,not how a workshop remembers itSAP LeanIXEnterprise architecture, andincreasingly where the AI agentinventory is expected to liveThe architecture question is never what each one does. It is which system is authoritative for which populationand which master data domain, and what carries information between them. Write that down before anything else.
SAP SuccessFactorsHuman capital management, and in most landscapes the authoritative source for the worker population: who exists, what their job is, who they report to, when they start and when they leave. Employee Central holds the core record, and everything from payroll to access governance downstream depends on it being right and being timely.
SAP Ariba and Business NetworkSourcing, contracts, procurement and the network that connects buyers to suppliers. The architectural point is that the supplier is on the network too, so a purchase order and its confirmation are an exchange between two parties rather than a document one party emails to the other.
SAP ConcurTravel and expense. It generates financial postings and it holds a population of employees that must agree with the human capital system, which makes it a small application with a persistent integration and identity footprint out of proportion to its size.
SAP FieldglassExternal workforce and services procurement: contractors, temporary staff and statements of work. It is the system that answers who is working here who is not an employee, and it is the one most often forgotten in joiner, mover and leaver design, which is exactly how contractor access outlives contractors.
SAP Customer ExperienceSales, service, commerce, marketing and customer data. The recurring architectural tension is which system owns the customer: the CRM that manages the relationship or the ERP that invoices it, and the honest answer is that both own part of it and the split has to be written down.
SAP Integrated Business PlanningSupply chain planning: demand, supply, inventory, response. It runs on its own HANA-based platform, plans at a level of aggregation the ERP does not hold, and hands results back for execution, which makes the planning-to-execution integration one of the more demanding ones in the estate.
SAP SignavioBusiness process management, process mining and process intelligence. Process mining reads event logs from the systems themselves, so it describes how work actually flows rather than how a workshop remembers it flowing, and it is increasingly how a transformation scope is argued for rather than asserted.
SAP LeanIXEnterprise architecture management: the inventory of applications, technologies and their dependencies. It is also becoming the place where the AI agent inventory lives, which is a telling indication of where SAP thinks accountability for agents belongs.
For every population and every master data domain in your estate, write down which system is authoritative. If two systems both believe they are, that is not a philosophical disagreement, it is an incident waiting for a date.
Prebuilt integration packages are a real accelerator and they are not configuration. They assume an organisational structure and a process shape, and where yours differs the difference surfaces in test rather than in the datasheet.
The extension model does not transfer between products. A team that extends S/4HANA cleanly has learned nothing that tells them how to extend SuccessFactors or Ariba safely, and assuming otherwise produces the same expensive lesson twice.
Release calendars are per product. Six products upgrade on six schedules, and unless somebody owns interface regression across all of them, every upgrade is somebody else's problem right up until it is everybody's.

Thirteen arguments you will have, settled

Design decisions

Architecture is mostly choosing between two reasonable options. These are the choices that come up on nearly every SAP programme, with the rule of thumb that usually decides them.

SAP Cloud ERP or SAP Cloud ERP Private?

SAP Cloud ERP (public)

  • You are willing to adopt standard processes and change the business to fit them rather than the reverse
  • You want quarterly innovation without owning an upgrade project each time
  • Your extension requirements fit key user tools and side-by-side applications on BTP
  • You have no large body of classic ABAP that has to come with you
VS

SAP Cloud ERP Private

  • You are converting an existing system and the process footprint is genuinely differentiated rather than merely familiar
  • You need the classic development environment, your own code and a controlled upgrade schedule
  • Data residency, industry regulation or a specific certification constrains where and how the system runs
  • Your integration estate assumes system-level access that the public edition does not expose
Rule of thumb: Public edition is the default answer for a greenfield of ordinary complexity, and private edition is the honest answer for most conversions of a large existing estate. Choosing private because standard felt uncomfortable, without testing whether the difference is worth paying for forever, is how organisations end up buying cloud and running it like on-premise.

Brownfield conversion or greenfield implementation?

Brownfield conversion

  • Your existing processes broadly work and the business case is technology, not transformation
  • You need history in the system rather than in an archive
  • The organisation cannot absorb a large change programme right now, and the maintenance date is approaching
  • Your custom code is defensible and your master data is in reasonable condition
VS

Greenfield implementation

  • The point of the programme is to change how the company works, not where it runs
  • Decades of accumulated configuration encode decisions nobody can explain or defend any more
  • You are consolidating several systems, or splitting one, so the landscape shape changes anyway
  • Master data is bad enough that carrying it forward would import the problem into the new system
Rule of thumb: Ask what the board thinks it is buying. A conversion sold as a transformation disappoints everybody, and a greenfield sold as a technical upgrade runs out of appetite halfway through. Selective data transition is a real third option, and it is the right one more often than the binary framing suggests.

Key user extensibility or developer extensibility?

Key user extensibility

  • You need a custom field, a custom CDS view, a custom business object, a form or logic in a released BAdI
  • The change belongs to the business process rather than to an engineering roadmap
  • You want the change to be visible in the standard extensibility inventory rather than buried in a package
  • You want the upgrade impact to be as close to zero as it can be
VS

Developer extensibility or side-by-side

  • The logic genuinely exceeds what the in-app tools express, and you can say specifically how
  • You need an independent lifecycle, an independent scaling profile or a user interface the ERP does not host
  • The capability is consumed by more than the ERP, so it does not belong inside the ERP
  • You need libraries, languages or runtimes the ABAP environment does not offer
Rule of thumb: Start at the smallest tool that solves the problem and only move outward when you can name the specific thing that blocks you. Every step outward buys capability and costs lifecycle: a side-by-side application is a product with a backlog, a bill and an on-call rota, and it should be chosen deliberately rather than by default.

Cloud Foundry or Kyma on BTP?

Cloud Foundry

  • You want to deploy an application and not operate a platform
  • Your team's expertise is application development rather than cluster operations
  • The workload is a normal business application with normal scaling needs
  • You want the shortest distance between a repository and something running
VS

Kyma

  • You already run Kubernetes elsewhere and have the operational capability to prove it
  • You need container-level control, service mesh behaviour, or workloads that do not fit a buildpack
  • You want portability of the runtime as an explicit architectural goal
  • You have serverless and event-driven patterns that Kyma expresses more naturally
Rule of thumb: Kyma is more powerful and more demanding, in that order. The question is not which is more modern but whether somebody in your organisation can competently operate a Kubernetes cluster at three in the morning. If the honest answer is no, Cloud Foundry is not a compromise, it is the correct decision.

Event Mesh or Advanced Event Mesh?

SAP Event Mesh

  • You want SAP business events consumed by a handful of subscribers inside BTP
  • Message sizes and throughput sit comfortably inside the standard service limits
  • The estate is SAP-centric and the topology is simple
  • You want the cheapest thing that satisfies the requirement
VS

SAP Advanced Event Mesh

  • You are building an event mesh across a hybrid, multi-cloud, multi-region estate
  • You need large messages, high sustained throughput, deep queue persistence or replay
  • You need dynamic message routing, event portal governance and formal event catalogues
  • Events are a strategic architectural layer rather than a tactical decoupling technique
Rule of thumb: The two share a name and very little else. Advanced Event Mesh is a full Solace-based event streaming platform; standard Event Mesh is a capable but bounded messaging service. The failure mode is designing against the standard service and meeting its ceilings during load testing, which is late and expensive.

Embedded analytics or a data warehouse?

Embedded analytics in S/4HANA

  • The question is operational and the answer is needed now, about current transactional data
  • The user is inside the process and wants to act on what they see
  • The data lives in this one system and a CDS view already exists or can reasonably be built
  • No history beyond what the system holds is required
VS

Datasphere, BW or the lakehouse

  • The question spans systems, or spans time in a way the operational system does not retain
  • You need harmonised definitions across sources so that revenue means one thing everywhere
  • The workload is heavy enough that running it against the transactional system would compete with the business
  • You need data science, machine learning or external data blended in
Rule of thumb: Put the question where the answer lives. Rebuilding in a warehouse an operational report that S/4HANA ships out of the box is waste, and running a cross-system, multi-year analysis against the transactional system during month-end close is a self-inflicted incident.

Integration Suite or point-to-point?

Integration Suite

  • More than two systems care, or will care, about this information
  • You need transformation, routing, monitoring, retry and a place errors can be seen
  • The interface crosses an organisational boundary, so somebody must own it explicitly
  • You want the estate to be inventoried rather than discovered by archaeology
VS

Direct point-to-point

  • It is genuinely two systems, one direction, one payload, and there is a released API for it
  • Latency budget makes an extra hop unacceptable and the requirement is documented
  • The connection is native, supported and covered by the same operational monitoring anyway
  • Adding middleware would add a component nobody would otherwise operate
Rule of thumb: Point-to-point is not a sin. Fifty undocumented point-to-point connections built by different projects with different error handling is the sin, and it is what point-to-point becomes when nobody decides. Decide once, write it down, and make the exception process visible.

Cloud ALM or Solution Manager?

SAP Cloud ALM

  • You are starting a new programme, especially a cloud or hybrid one
  • You want implementation, testing, change and operations in one cloud tool with no infrastructure to run
  • Your landscape is increasingly SaaS, where Solution Manager's on-premise assumptions do not apply
  • You want to align with where SAP is investing rather than where it has invested
VS

SAP Solution Manager

  • You depend on deep capabilities Cloud ALM has not yet matched for your specific case
  • Your estate is predominantly on-premise and your processes are built around it
  • Migrating now would mean rebuilding working operational tooling in the middle of a delivery
Rule of thumb: Cloud ALM is the strategic direction and Solution Manager maintenance ends within the decade. Plan the move deliberately, capability by capability, and do not attempt a single wholesale switch: the failure mode is a period in which neither tool is trusted and operations happen in spreadsheets.

SAP Cloud Identity Services or your existing corporate identity provider?

Cloud Identity Services in front

  • You run several SAP cloud services and want one place to configure SAP-specific trust and conditional logic
  • You need SAP-shaped provisioning to SAP targets, with the transformations those targets expect
  • You want risk-based authentication rules applied consistently across the SAP estate
  • You want a single point to change when the corporate identity provider changes
VS

Direct trust to the corporate IdP

  • The estate is small and adding a hop adds administration without adding value
  • Your identity team has a firm policy of direct federation and the operational maturity to support it
  • You already run a governance platform that handles SAP provisioning end to end
Rule of thumb: The proxy pattern, with Cloud Identity Services in front of the corporate identity provider, is the mainstream SAP answer and it composes well with an enterprise identity governance platform. What matters more than the topology is that authentication and authorisation are not confused: signing somebody in says nothing whatsoever about what they may then do.

Business Data Cloud or keep BW and Datasphere as they are?

Business Data Cloud

  • You want governed SAP data products with semantics attached rather than hand-built extractions
  • You want an existing BW investment hosted and preserved while models migrate on the business's schedule
  • You need a lakehouse and data science capability over SAP data without exporting copies of it
  • Harmonised data is a prerequisite for the AI work you are planning
VS

Keep the current estate

  • Your analytics estate meets requirements and there is no pressing question it cannot answer
  • The consumption commitment does not fit the value you can currently articulate
  • You are mid-migration on another path and a change of direction would cost more than it saves
Rule of thumb: The genuinely new things are the data products and the zero-copy sharing, because they attack the reconciliation problem rather than the storage problem. Evaluate it against that, not against storage cost, and be specific about which existing argument between two teams it ends.

Build an AI agent or configure a rule?

Build an agent

  • The work requires judgement over unstructured input that no rule expresses well
  • The steps vary by case in ways that a decision table would enumerate badly or not at all
  • Somebody currently does this by reading things and deciding, and can describe how
  • The value is large enough to justify grounding, governance, metering and an owner
VS

Configure standard automation

  • The logic is deterministic, in which case a rule is cheaper, faster, auditable and never wrong in a new way
  • The process is stable and high volume, where predictability is worth more than flexibility
  • The data an agent would need is not reliable enough to ground it, which is the usual reason
  • Nobody has agreed who is accountable for what the agent does
Rule of thumb: Do not use a probabilistic system where a deterministic one is correct. The strongest AI business cases in SAP landscapes are consistently the ones where a person currently reads something unstructured and makes a routine judgement, and the weakest are the ones where a rule already exists and somebody wanted the project to sound modern.

On-stack Fiori launchpad or SAP Build Work Zone?

On-stack launchpad in the ABAP system

  • There is one back end and the users are ERP users doing ERP work
  • You want the shortest configuration path and the fewest moving parts
  • Content management sits comfortably with the team that owns the ERP
VS

SAP Build Work Zone

  • Users need one entry point across several back ends, SaaS products and custom applications
  • You want a portal experience with pages, spaces, news and non-SAP content alongside the apps
  • The digital workplace is owned by a team that is not the ERP team
Rule of thumb: The question is really how many back ends the user has to think about. One back end and one audience is an on-stack launchpad. The moment a second system arrives, deferring the decision means migrating an established set of user habits later, which is harder than it sounds.

Remediate custom code or retire it?

Remediate it

  • Usage data shows it is genuinely executed, by identifiable people, for an identifiable purpose
  • The functionality has no standard equivalent in the target release
  • The object is small enough or valuable enough that fixing is cheaper than replacing
VS

Retire it

  • Nobody has executed it in a year and no one can explain what it was for
  • Standard functionality in S/4HANA now covers it, which is true far more often than teams expect
  • It is a report that exists because the old system could not aggregate quickly, a problem a column store no longer has
  • It is a modification that has been generating upgrade adjustment work for a decade
Rule of thumb: Collect usage data from production before you estimate anything. The remediation backlog derived from a static scan is always dramatically larger than the one derived from a scan plus evidence of use, and the difference is money you were about to spend on code nobody runs.

Fourteen mistakes that create technical debt

Anti-patterns

Every one of these looks reasonable at the moment somebody does it. Each entry explains why it hurts later and what to do instead.

Saying we are moving to the cloud without saying which cloud

Why it hurtsSAP Cloud ERP, SAP Cloud ERP Private, a hyperscaler-hosted private system and a BTP subscription are four different things with four different operating models. Half the scope of a programme depends on which one was meant, and a surprising number of programmes get some distance in before discovering that different people meant different ones.

Do this insteadWrite the edition, the operating model and the responsibility split on one page in the first week, and make everybody who signs anything read it.

Assuming RISE means SAP runs it

Why it hurtsThe contract covers infrastructure, the database and the technical managed service. Basis work, SAP Notes assessment, custom code, most application monitoring and the decision to upgrade generally stay with you unless separately contracted. Teams sized on the assumption that all of it went away discover the gap during the first incident.

Do this insteadRead the service description, not the deck. Build a responsibility matrix from it, line by line, and staff against what it actually says.

Treating clean core as a purity score

Why it hurtsClean core is not an aesthetic. It is a prediction about how much work your next upgrade will be. Reporting it as a percentage of custom objects produces a number that makes nobody safer, because a single implicit enhancement in a critical path is worth more than a hundred harmless custom reports.

Do this insteadMeasure it as the number of objects that would need touching at the next upgrade, weighted by how bad it would be if they broke. That number changes behaviour.

Building on C_ consumption views because they had the right fields

Why it hurtsConsumption views exist to serve a specific SAP application. They are explicitly not stable, they change between releases, and they will change under your custom code without warning or apology.

Do this insteadBuild on released I_ interface views or released APIs. If nothing suitable is released, that is a real finding worth raising, not a licence to use whatever compiles.

Underestimating the Business Partner conversion

Why it hurtsIt is presented as a data model change and behaves like an enterprise programme. Number ranges, which record wins when a customer and a vendor are the same organisation, master data cleansing, and every interface that quotes a customer or vendor number are all in scope.

Do this insteadStart it before the technical conversion, treat it as a master data project with a business owner, and inventory the interfaces early.

Running Readiness Check too late

Why it hurtsRun early, it is an input to scope and the plan can still absorb what it finds. Run late, it is a list of surprises that arrives after the budget is fixed, and the only variable left to flex is quality.

Do this insteadRun it in the evaluation phase, and again periodically. It reads your real system, so it gets more useful as your system changes, not less.

Changing something directly in production

Why it hurtsIt is invisible to the transport path, so the next import silently overwrites it. It invalidates every test result you have. It is an audit finding. And it is always done under time pressure by somebody competent who intended to put it back properly.

Do this insteadClose the client, make the emergency change path a real documented route with the same gates and a shorter queue, and audit the exceptions.

Sizing on table size

Why it hurtsHANA compresses, so the raw figure overstates the storage. Working memory for queries, delta merges and temporary results adds a large amount the raw figure does not include. Sizing on either number alone produces a system that is either wasteful or that falls over at quarter end.

Do this insteadUse the sizing reports against your real data and workload, add headroom for peak, and archive aggressively. Application logs and change documents you keep forever are memory you rent forever.

Designing the authorisation model after the user experience

Why it hurtsIn Fiori the business role determines both what a user can see in the launchpad and what they can do in the back end. Designing the apps first and retrofitting authorisations produces roles that are either too broad to defend or too narrow to work, and usually both in different places.

Do this insteadDesign business roles as the shared artefact of the experience and the security workstreams, and have both teams review them together.

Leaving SU24 proposals unmaintained

Why it hurtsThe proposals are what allow a role to be generated correctly and regenerated safely after a change. Neglected, every role gets filled in by hand, differently, by whoever was on shift, and after a while no role can be regenerated without breaking somebody.

Do this insteadTreat the proposals as a maintained asset with an owner. It is dull, and it is the difference between an authorisation model that can evolve and one that can only accumulate.

Choosing the integration tool before the integration pattern

Why it hurtsSynchronous request-reply, asynchronous guaranteed delivery, event notification and bulk file transfer have genuinely different requirements. Picking the tool first means bending one pattern into another, which is how a nightly batch ends up implemented as ten thousand synchronous API calls.

Do this insteadFor each interface write down the pattern, the volume, the latency requirement and the delivery guarantee before anybody opens a tool. The tool choice becomes obvious and occasionally becomes no tool at all.

Deploying AI over data nobody trusts

Why it hurtsGrounding is the entire architecture. A model over inconsistent master data produces answers that are fluent, confident, wrong and metered. The failure is more expensive than a wrong report because people believe it more readily.

Do this insteadPick a use case where the data is already good, prove the value, and let that fund the data work for the next one. Do not start with the hardest data in the estate.

Treating agents as features rather than identities

Why it hurtsAn agent that acts has authorisations, does things that are attributed to somebody, and can be wrong at scale. An estate that has fifty of them and no inventory has a governance problem it does not know about yet.

Do this insteadEvery agent gets an owner, a defined scope, a log, a review date and an entry in an inventory, exactly like a technical user, because functionally that is what it is.

Managing each product's release calendar separately

Why it hurtsS/4HANA, SuccessFactors, Ariba, Concur, Fieldglass and the BTP services all have their own cadence. Managed separately, interface regression is always somebody else's problem, right up until the quarter where two of them change on the same weekend.

Do this insteadKeep one landscape release calendar covering every product, and name a single owner for cross-product regression.

Every term on this page, defined

Glossary

Search it, or filter by the layer a term belongs to.

155 of 155 terms
SAP Business SuiteL0The relaunched umbrella brand, reintroduced in 2025, covering SAP's applications together with the unified data layer and AI capabilities, with the Business Technology Platform as the common foundation.
SAP Cloud ERPL0The current name for what was S/4HANA Cloud Public Edition: a multi-tenant, standardised ERP upgraded quarterly by SAP, extended through key user tools and side-by-side applications.
SAP Cloud ERP PrivateL0The current name for what was S/4HANA Cloud Private Edition: a single-tenant system with the classic development environment and a customer-influenced upgrade schedule, usually delivered under RISE with SAP.
ECCL0SAP ERP Central Component, the core of Business Suite 7 and the predecessor to S/4HANA. Mainstream maintenance ends on 31 December 2027 with paid options beyond that.
RISE with SAPL0A commercial bundle combining a private cloud ERP, infrastructure, a technical managed service and adoption tooling under one contract. The responsibility split is in the service description and is routinely misread.
GROW with SAPL0The equivalent bundle for the public cloud ERP, aimed at faster standardised adoption with a fit-to-standard implementation approach.
SAP Business OneL0A separate ERP product for small businesses. It is not a smaller S/4HANA and shares almost nothing architecturally.
SAP Business ByDesignL0A separate cloud suite for mid-market companies, again a distinct product rather than a variant of S/4HANA.
Brownfield conversionL0Converting an existing ECC system in place to S/4HANA, keeping configuration, history and custom code, and adjusting what the new release breaks.
Greenfield implementationL0Implementing S/4HANA new, designing processes from the standard rather than carrying forward existing configuration.
Selective data transitionL0A middle path in which a new system is built but selected configuration, master data and history are migrated from the old one. Often the honest answer when the binary choice fits badly.
SAP HANAL1The in-memory, column-oriented relational database that S/4HANA requires. Its performance characteristics are the reason the S/4HANA data model could be simplified as radically as it was.
Column storeL1A storage layout that keeps values of one column together, which compresses extremely well and makes aggregation over many rows fast. The default for business tables in S/4HANA.
Row storeL1A storage layout keeping whole records together, better for frequent single-record reads and writes. Used for a limited set of technical tables.
Delta storeL1The write-optimised area of a column table where new rows land before being merged. Reads consult both delta and main, so a large unmerged delta slows queries.
Delta mergeL1The background operation that moves rows from the delta store into the compressed main store. It consumes memory and CPU, and it is a real explanation for intermittent slowdowns.
SavepointL1A periodic flush of changed data pages to the data volume, so recovery replays only the log since the last savepoint rather than everything.
Redo logL1The sequential record of committed changes written to the log volume before a commit is acknowledged. It is what makes an in-memory database durable.
Native Storage ExtensionL1A warm data tier that keeps less frequently accessed data on disk with a memory buffer, reducing the resident footprint without moving data to another system.
Multitenant database containersL1A HANA deployment model in which one system hosts several isolated tenant databases sharing the same installation and administration.
System replicationL1HANA's mechanism for continuously shipping changes to a secondary system for high availability and disaster recovery, with synchronous or asynchronous modes.
SAP HANA CloudL1The managed database-as-a-service form of HANA, used by BTP services and available directly. Feature scope differs from on-premise in both directions.
ABAPL2Advanced Business Application Programming, SAP's application language and the runtime environment it executes in. Still the language of the ERP application layer.
ABAP CloudL2The restricted development model in which only released APIs and extension points may be used, enforced by the ABAP language version on the package. Code written this way survives upgrades by construction.
Work processL2A server-side execution slot of a given type: dialog, background, update, enqueue or spool. Their number is finite and their exhaustion is what most frozen systems actually are.
DispatcherL2The component that queues incoming requests and assigns them to free work processes.
Internet Communication ManagerL2The ICM: the ABAP server's web front door, terminating HTTP and HTTPS connections and routing them into the stack.
Enqueue serverL2The central service granting logical locks on business objects. An SAP construct rather than a database lock, and a single point every save passes through.
Update taskL2The mechanism by which a dialog process hands database changes to an update work process for asynchronous execution. It is the reason a transaction can report success and still fail to write.
SAP LUWL2A logical unit of work spanning potentially several database transactions, bracketed by COMMIT WORK. The unit that matters to the application rather than to the database.
ClientL2The outermost data partition in an ABAP system. Almost every business table carries a client field, and a client holds its own business data and client-dependent configuration.
Transport requestL2The container that carries changes between systems in a landscape. It is how a change moves from development to test to production, and it is why direct production changes are so damaging.
Table bufferingL2Caching of table contents in application server memory, synchronised on an interval. It is why a configuration change can appear on one server before another.
BAdIL2Business Add-In: a defined enhancement point where custom logic can be implemented. A released BAdI is a Level A extension point and is the preferred way to change standard behaviour.
Implicit enhancementL2An enhancement inserted at a point SAP never designated for the purpose. It is Level D, it appears in every upgrade adjustment, and it is among the most expensive objects to own.
S/4HANAL3SAP's current ERP suite, built on HANA, with a simplified data model, the Fiori user experience and the Universal Journal at the centre of finance.
Universal JournalL3The single line item table, ACDOCA, holding finance and controlling postings with all their dimensions on each row, replacing the separate aggregate and index tables of the older architecture.
ACDOCAL3The database table behind the Universal Journal. One row per journal line, with the general ledger, controlling, profitability and asset dimensions on it.
Business PartnerL3The single master object representing a person or organisation, which can carry customer, vendor and other roles. Mandatory in S/4HANA and consistently the most underestimated part of a conversion.
Core Data ServicesL3CDS: the definition language for the virtual data model. Views are defined once and executed inside HANA, pushing joins and aggregations down to the database.
Virtual data modelL3The layered set of CDS views over the physical tables, from basic interface views through composite views to consumption views, providing semantics rather than raw structures.
I_ viewL3An interface view in the virtual data model, intended for reuse and carrying stability expectations when released. The correct thing to build custom code on.
C_ viewL3A consumption view serving a specific SAP application. Explicitly not stable, and building on one is a reliable way to break at the next upgrade.
Compatibility viewL3A view left in place with the name of a table that S/4HANA removed or restructured, so existing read code still works. Reads succeed, writes do not, and it should be treated as a remediation item.
Embedded analyticsL3Operational reporting executed directly on the transactional system through CDS views, with no extraction and no latency between posting and report.
Implementation GuideL3The IMG: the structured tree of configuration activities that defines system behaviour. The main working surface of a functional consultant.
Organisational structureL3The set of dimensions along which the system posts, reports and authorises: company code, plant, sales organisation, purchasing organisation, controlling area and others. Effectively immutable after go live.
Material LedgerL3The component that values inventory in multiple currencies and valuations. Mandatory in S/4HANA, where it is integrated into the Universal Journal rather than kept separately.
SAP FioriL4SAP's design system and application experience: role-based, task-oriented applications rather than transaction screens, with a launchpad as the entry point.
Fiori launchpadL4The single entry point presenting the tiles a user is entitled to, resolved through target mappings from semantic objects and actions to applications.
Target mappingL4The configuration that maps a semantic object and action to the application that handles it. A broken tile is usually a missing target mapping rather than a broken app.
SAPUI5L4The JavaScript framework behind Fiori applications, providing controls, data binding, routing and accessibility.
Fiori elementsL4A metadata-driven approach where the user interface is generated from CDS annotations rather than hand-built, so pattern changes arrive with the framework instead of being reimplemented.
Freestyle applicationL4A hand-built UI5 application, appropriate when the requirement does not fit a standard floorplan, at the cost of owning every layout and framework decision yourself.
ODataL4The REST-based protocol SAP uses to expose business data to user interfaces and integrations. Version 4 is the strategic version; version 2 remains widespread.
RAPL4The ABAP RESTful Application Programming Model: the current way to build transactional services in ABAP, based on CDS, behaviour definitions with determinations, validations and actions, and service bindings.
CAPL4The Cloud Application Programming Model: SAP's framework for building services in Node.js or Java on BTP, with the same emphasis on defining a model and generating the plumbing.
Draft handlingL4The RAP capability that persists in-progress edits so a user can leave and return, and that underpins optimistic locking in Fiori applications.
SAP BuildL4The low-code portfolio covering application development, process automation and work zone, aimed at building without a traditional development team.
SAP Build Work ZoneL4The portal product providing a single entry point across several back ends, SaaS products and custom applications, as an alternative to an on-stack launchpad.
Horizon themeL4The current SAP visual theme, and the default for new deployments. Running a landscape on mixed themes is a small thing users notice immediately.
Clean coreL5The principle that the standard application should stay upgradeable, achieved by using released extension points rather than modifying standard objects. It is a prediction about upgrade cost rather than an aesthetic.
Key user extensibilityL5In-app extension tools for custom fields, custom CDS views, custom business objects, logic in released BAdIs and form templates, usable without a development environment.
Developer extensibilityL5Extension inside the ABAP system using the ABAP Cloud model and released objects, for logic that exceeds what in-app tools express.
Side-by-side extensibilityL5Building the extension as a separate application on BTP, integrating through released APIs and events. Full freedom, and a full application lifecycle to own.
Level AL5Clean core classification for extensions using released objects with a stability contract. The target state for everything you build.
Level BL5Classic interfaces that are SAP-standardised and documented but without the formal contract of a released API. Acceptable where nothing better exists.
Level CL5Use of internal objects that were never released for customer use. It works until it does not, and no notice is owed.
Level DL5Modifications, direct writes to standard tables and implicit enhancements. The most expensive category of object to own, because it recurs at every upgrade.
Released APIL5An interface SAP has explicitly published for customer use with a stability contract, discoverable in the API Business Hub and in the system itself.
ATCL5The ABAP Test Cockpit: the static analysis framework used to check custom code against clean core rules, S/4HANA readiness checks and quality standards.
Custom Code Migration appL5The tool that combines static analysis results with production usage data, so remediation scope is limited to code that is both used and broken.
SAP BTPL6The Business Technology Platform: SAP's platform for application development, integration, data, analytics and AI, and the common foundation across the portfolio.
Global accountL6The top-level BTP entity holding entitlements and quotas, under which directories and subaccounts are organised.
SubaccountL6The unit of deployment and isolation in BTP, with its own region, identity provider trust, entitlements and members. A boundary that is painful to change later.
DirectoryL6An optional grouping of subaccounts within a global account, used to organise entitlements and administration at scale.
Cloud Foundry environmentL6The mainstream BTP application runtime, deploying applications from buildpacks into spaces without operating the underlying platform.
Kyma environmentL6The Kubernetes-based BTP runtime, offering container-level control and serverless patterns at the cost of requiring real cluster operations capability.
ABAP environmentL6The BTP runtime for ABAP development in the cloud, used for side-by-side ABAP extensions written in the ABAP Cloud model.
Neo environmentL6The original BTP runtime, now being retired, with services sunsetting through the end of 2028. Anything still on it needs a dated migration plan.
EntitlementL6The allocation of a service and plan to a subaccount. Entitlement, quota and regional availability are three separate things, and any one of them can block you.
Cloud ConnectorL6The component installed inside the customer network that maintains an outbound tunnel to a subaccount, exposing only explicitly configured resource paths. No inbound port is opened.
DestinationL6A named configuration holding an endpoint and its authentication method, so applications refer to systems by name and the same code runs in every environment.
Principal propagationL6Forwarding the identity of the actual user through to the back end so the call runs under their own authorisations rather than a shared technical user.
XSUAAL6The BTP authorisation and trust management service, issuing tokens carrying scopes derived from role collections.
SAP Integration SuiteL7The BTP integration platform, covering Cloud Integration, API Management, event enablement, Integration Advisor, Trading Partner Management and Open Connectors.
Cloud IntegrationL7The integration flow runtime formerly known as Cloud Platform Integration, with a large adapter catalogue and prebuilt content for SAP-to-SAP and SAP-to-third-party scenarios.
API ManagementL7The capability for publishing, securing, throttling and monitoring APIs, including policy enforcement and a developer portal.
SAP Event MeshL7The standard messaging service for publishing and consuming business events within BTP, with bounded message size and throughput limits worth checking before design.
Advanced Event MeshL7The Solace-based event streaming platform for hybrid and multi-cloud event architectures, with far larger messages, event portal governance and dynamic routing.
Integration AdvisorL7A machine-learning-assisted tool for building message implementation guidelines and mappings from industry standards, generating mappings rather than drawing them by hand.
Trading Partner ManagementL7The capability holding partner-specific identifiers, agreements and message variants, so many partners do not become many integration flows.
Open ConnectorsL7A catalogue of prebuilt connectors to third-party SaaS applications, normalising them behind consistent APIs.
Edge Integration CellL7A hybrid runtime that executes integration flows inside the customer landscape while being designed and managed from the cloud tenant.
IDocL7Intermediate Document: SAP's long-standing structured message format for asynchronous integration, with guaranteed delivery, status tracking and reprocessing tooling.
RFCL7Remote Function Call: SAP's protocol for calling function modules across systems. Transactional RFC adds exactly-once delivery semantics.
BAPIL7Business Application Programming Interface: a released function module representing a business operation, historically the standard integration entry point.
Business eventL7A notification that something happened in the application, published for subscribers, allowing integrations to react rather than poll.
Business Data CloudL8SAP's unified data offering, combining Datasphere, Analytics Cloud, BW/4HANA private cloud edition and an embedded SAP Databricks capability, with governed data products at its centre.
SAP DatasphereL8The business data fabric service providing modelling, cataloguing, federation and semantics across SAP and non-SAP sources, organised into spaces.
SAP Analytics CloudL8The analytics and planning front end, supporting live connections that query the source and imported models that hold a copy.
Data productL8A governed, versioned unit of SAP data delivered with its business semantics attached, rather than an extraction reverse-engineered from table structures.
Delta SharingL8The open protocol used to share data with a lakehouse without physically copying it, which is what zero copy refers to in this context.
SAP DatabricksL8The Databricks capability embedded within Business Data Cloud, providing lakehouse, data engineering and data science over SAP data products.
BW/4HANAL8SAP's data warehouse product, hostable within Business Data Cloud so that an existing investment is preserved while models migrate on the business's own schedule.
Insight AppL8A packaged analytical application delivered on top of data products, providing a working answer rather than a modelling starting point.
Live connectionL8An analytics connection where the query executes in the source system and no data is copied, so results reflect the source at the moment of the query.
SpaceL8The unit of isolation and governance in Datasphere, controlling who can model and consume what, and where resource allocation is applied.
SAP Business AIL9The umbrella for SAP's AI capabilities: embedded AI in applications, the Joule assistant and agents, and the AI Foundation services that ground and govern them.
JouleL9SAP's conversational AI assistant, embedded across applications, answering questions and navigating on the user's behalf in ordinary language.
Joule StudioL9The environment for building agents and skills, composing them from released APIs and existing automation rather than writing them from scratch.
AI agentL9A component that plans and executes a sequence of steps to complete work, using skills that call released APIs under an identity with authorisations.
AI FoundationL9The BTP layer providing the model access, grounding, orchestration and lifecycle tooling that AI capabilities are built on.
Generative AI hubL9The service that abstracts model access, applies guardrails such as masking and content filtering, and makes model choice a configuration decision rather than a rewrite.
GroundingL9Supplying a model with the real business context it needs to answer correctly, through retrieval over documents, master data and semantic relationships. It is the architecture, not a detail.
SAP Knowledge GraphL9The semantic representation of SAP business data and its relationships, used to ground AI so that answers follow the actual structure of the business.
AI UnitsL9The consumption meter for generative AI usage in SAP Business AI, separate from BTP capacity units and Business Data Cloud credits.
AI Agent HubL9The capability for inventorying and governing AI agents across the estate, reflecting the view that agents are identities to be managed rather than features to be shipped.
Authorisation objectL10The structure a check is performed against, containing fields whose values determine what is permitted. Holding the object is not the same as being allowed the value.
PFCG roleL10The role maintenance transaction and the object it maintains: a role containing authorisations, generated into a profile that is assigned to users.
Derived roleL10A role inheriting its authorisations from a parent, differing only in organisational values, so a single design can be applied to many organisational units.
Composite roleL10A container assigning several single roles together, used to model a job rather than a capability.
Business roleL10In S/4HANA and the cloud editions, the object determining both the Fiori applications a user sees and the back-end authorisations they hold. The reason experience and security are one design.
SU24L10The maintenance of authorisation proposals per transaction or service, which is what allows roles to be generated correctly and regenerated safely after changes.
Segregation of dutiesL10The control principle that no individual should hold combinations of access that allow them to complete a sensitive process unchecked, tested against a defined ruleset.
SAP GRC Access ControlL10The governance, risk and compliance product for access risk analysis, emergency access, role management and access request workflow in the on-premise world.
Cloud Identity ServicesL10The SAP cloud identity portfolio: Identity Authentication for sign-in, Identity Provisioning for account distribution, and the Identity Directory as the store.
Identity AuthenticationL10The SAP cloud service handling authentication and federation, commonly configured as a proxy in front of the corporate identity provider.
Identity ProvisioningL10The SAP cloud service that reads identities from a source and provisions them into SAP and non-SAP targets, applying transformations along the way.
Cloud Identity Access GovernanceL10The SAP cloud service for access analysis, role design and certification across cloud systems.
SAP Identity ManagementL10The legacy on-premise identity management product, with maintenance ending in 2027 and extended arrangements to 2030. There is no single successor product.
Read access loggingL10The mechanism for recording who read sensitive data, distinct from change documents, and often required by privacy regulation.
Three-system landscapeL11The conventional development, quality assurance and production arrangement through which every change travels in sequence.
CTSL11The Change and Transport System: the mechanism that records changes into transport requests and imports them through the landscape in order.
gCTSL11Git-enabled change and transport, allowing ABAP change management to work against a Git repository rather than only the classic transport directory.
Cloud Transport ManagementL11The BTP service that moves content between subaccounts and environments, extending the transport discipline to cloud artefacts.
SAP Cloud ALML11The cloud application lifecycle management product covering implementation, testing, change and operations, and the strategic successor to Solution Manager.
Solution ManagerL11The long-standing on-premise application lifecycle management platform, with maintenance ending in 2027 and an extension to 2030.
SUML11The Software Update Manager: the tool that performs upgrades, updates and, with the database migration option, the move to HANA in the same run.
DMOL11Database Migration Option: the SUM capability that combines a database migration to HANA with the software update, avoiding two separate projects.
Maintenance PlannerL11The tool that calculates a valid target stack and generates the stack definition SUM consumes. Nothing starts without it.
Readiness CheckL11The analysis that reads a live system and reports simplification items, custom code impact, add-on compatibility, sizing and recommended Fiori apps.
SPDD and SPAUL11The adjustment transactions for dictionary and repository modifications during an upgrade. The point at which the accumulated cost of modifications is presented as a bill.
Support package stackL11A tested combination of support packages, intended to be applied together. Applying individual packages outside a stack forfeits that testing.
SAP ActivateL11SAP's implementation methodology, structured around discover, prepare, explore, realise, deploy and run, with fit-to-standard workshops at its centre.
SAP SuccessFactorsL12The human capital management suite, and in most landscapes the authoritative source for the worker population that everything downstream depends on.
Employee CentralL12The core human resources record within SuccessFactors, holding the employment data other systems consume.
SAP AribaL12The sourcing, contracts and procurement portfolio, connected to suppliers through the SAP Business Network.
SAP Business NetworkL12The network connecting buyers and suppliers so that documents are exchanged between two parties rather than emailed by one.
SAP ConcurL12The travel and expense product, generating financial postings and holding an employee population that must agree with the human capital system.
SAP FieldglassL12The external workforce management product covering contractors and statements of work. The system that answers who works here who is not an employee.
SAP Customer ExperienceL12The sales, service, commerce and marketing portfolio, where the recurring architectural question is which system owns the customer.
SAP Integrated Business PlanningL12The supply chain planning suite, planning at a level of aggregation the ERP does not hold and handing results back for execution.
SAP SignavioL12The process management and process mining portfolio, describing how work actually flows by reading event logs from the systems themselves.
SAP LeanIXL12The enterprise architecture management product inventorying applications and dependencies, and increasingly the home of the AI agent inventory.

Practice challenge

3 questions
Q1Which statement is true of SAP architecture?

This division is why SAP can serve interactive users and heavy batch jobs on the same system without one…

Covered in the “Work processes and the dispatcher” section of this lesson.

Q2Which of these also applies to SAP architecture?

An SAP system is made of instances, each a set of work processes and memory on a server.

Covered in the “Instances and scaling” section of this lesson.

Q3Which part of the Learn SAP curriculum covers SAP architecture?

Getting started

This lesson sits in the Getting started section of the Learn SAP course.

Frequently asked questions

What actually happens in 2027?
Mainstream maintenance for SAP Business Suite 7 core applications, which includes ECC, ends on 31 December 2027. It does not switch off. Extended maintenance is available through 2028 to 2030 for an additional fee, and a further narrower arrangement runs to the end of 2033 for customers with an active cloud ERP commitment and the associated success plan. The date that matters more for planning is the other end: SAP has committed to maintain S/4HANA until at least 2040, which is what makes the investment defensible over a normal enterprise horizon.
What changed when SAP renamed the S/4HANA Cloud editions?
The names, mostly, and the framing. S/4HANA Cloud Public Edition is now SAP Cloud ERP and Private Edition is SAP Cloud ERP Private, sitting inside the relaunched SAP Business Suite alongside the data and AI pillars. The underlying products did not change on the day of the announcement. What is worth taking seriously is the framing: SAP is presenting the suite as applications plus a unified data layer plus AI, with the Business Technology Platform as the common foundation, and that framing is a reasonable guide to where the investment is going.
Is HANA really an in-memory database, and does that mean it loses data?
It is genuinely in-memory in the sense that the working data set is held in RAM and queries execute against it there rather than reading from disk. It is completely durable. Every commit writes redo to the log volume before it is acknowledged, and savepoints periodically flush data pages to the data volume so that recovery does not have to replay everything. A HANA system that loses power comes back with all committed transactions, exactly like any other relational database.
Why did S/4HANA delete the finance aggregate tables?
Because they were a workaround for a limitation that no longer exists. Row-store databases could not sum millions of line items quickly enough for interactive reporting, so SAP maintained pre-aggregated totals and index tables in parallel with the line items, and then spent effort keeping them consistent. A column store can aggregate on demand fast enough that the totals can be derived, so the Universal Journal keeps one row per line item with every dimension on it and calculates the rest. The reconciliation work between finance and controlling did not become easier. It became unnecessary.
What is the difference between ABAP Cloud and classic ABAP?
Same language, restricted scope. ABAP Cloud permits only released APIs and released extension points, which is enforced by the compiler through the ABAP language version set on the package. Classic ABAP lets you reach anything, including internal SAP objects and direct table access. The restriction is the point: code that can only use interfaces with stability contracts is code that survives upgrades. In a private cloud or on-premise system the three-tier model applies, where ABAP Cloud is the default and classic ABAP is used deliberately, in clearly marked packages, when there is no released alternative.
What are the clean core levels, in plain terms?
Level A means you used a released API or extension point with a stability contract, and SAP has committed not to break it. Level B means a classic interface that is SAP-standardised and documented but without the same formal contract. Level C means an internal object that was never released for your use: it works today and it carries no promise about tomorrow. Level D means a modification, a direct write to a table, or an implicit enhancement, which is the most expensive thing you can own because it shows up in every upgrade adjustment forever. The useful exercise is to classify what you already have, not to aspire to a level in the abstract.
Do I actually need BTP?
You need parts of it, and you probably already use them without calling it that. Integration Suite, Cloud Identity Services and the Cloud Connector are foundational for almost any modern landscape. Application development on Cloud Foundry or Kyma is optional and should be chosen when there is a real requirement rather than as a default posture. The mistake in both directions is common: treating BTP as a single product you either buy or do not, when it is a portfolio you consume selectively.
What happened to the Neo environment?
It is being retired. Services on the Neo environment are sunsetting through 31 December 2028, and Cloud Foundry, Kyma and the ABAP environment are where new work goes. If anything of yours is still on Neo in 2026, it needs a migration plan with a date on it, because the end is scheduled rather than theoretical.
How is Business Data Cloud different from just having Datasphere?
Business Data Cloud packages Datasphere, SAP Analytics Cloud, BW/4HANA in a private cloud edition and an embedded SAP Databricks capability into one managed offering, and adds the two things that are genuinely new. The first is data products: governed, versioned SAP data with its semantics attached, delivered by SAP rather than reverse-engineered by you from table structures. The second is zero-copy sharing through Delta Sharing, so the lakehouse reads SAP data without another physical copy appearing. Both attack the reconciliation problem rather than the storage problem, which is where the value is.
Does zero copy mean my analytics are real time?
No, and this is a widespread misunderstanding worth being precise about. Zero copy removes the copying between analytical tools. It does not remove extraction from the operational systems, which still has its own latency and its own schedule. Some paths are genuinely live, some are near real time and some are batch, and the architecture question for any given number is which of the three it is. Assume nothing from the marketing term.
What is Joule, and what is an AI agent in SAP terms?
Joule is the conversational assistant embedded across SAP applications: you ask in ordinary language and it answers or navigates. An agent goes further, planning a sequence of steps and using skills to complete work rather than only answering. The architecture behind both has three parts worth knowing: context, meaning grounding in your real business data through AI Foundation and the knowledge graph; build, meaning Joule Studio where you compose agents from skills; and governance, meaning the inventory and oversight of what those agents are allowed to do. All of it calls the same released APIs an extension would, under an identity with authorisations, which is why it is governable at all.
How is SAP Business AI charged?
Through several meters rather than one, which is the thing to plan for. AI Units cover generative AI consumption, BTP Capacity Units cover platform services, and Business Data Cloud has its own credit model. The Premium Plus bundle was discontinued in mid-2025 in favour of consumption-based AI Units. Practically, this means AI cost forecasting is a real exercise and model choice is a cost decision: routing every line of a document to a frontier model costs an order of magnitude more than filtering first.
What replaces SAP Identity Management?
There is no single successor product, which is exactly why the end of maintenance in 2027, extended to 2030 in some cases, needs planning rather than a purchase order. SAP's own answer is Cloud Identity Services, comprising Identity Authentication, Identity Provisioning and the Identity Directory, with Cloud Identity Access Governance for access analysis and certification. For an estate that is not purely SAP, the pragmatic answer is usually an enterprise identity governance platform doing the governing, with Cloud Identity Services handling SAP-shaped provisioning underneath it. Treating it as a tooling swap produces a replacement for the SAP scope and orphans everything else.
Do I still need Solution Manager?
For a while, and less each year. Maintenance runs to the end of 2027 with an extension to 2030, and Cloud ALM is the strategic successor. The right approach is capability by capability rather than wholesale: move implementation and testing first, then change control, then operations, and keep both running through the transition. The failure mode is a big-bang switch that produces a period where neither tool is trusted and the real process happens in spreadsheets.
How often does S/4HANA release, and do I have to take every one?
On-premise and private cloud editions have moved to a roughly biennial major release, with the 2025 release generally available in October 2025 and feature package stacks in between. Each major release carries around seven years of mainstream maintenance, so you are not obliged to take every one, though staying more than one behind steadily increases the size of the eventual jump. SAP Cloud ERP in the public edition upgrades quarterly and the upgrade is not optional, which is a genuine operating model difference rather than a detail: your regression testing has to be continuous rather than occasional.
Where should I start if I want to learn SAP architecture properly?
Learn the data model before the transactions. Client, configuration as data, organisational structure, master data versus transactional data, and the Universal Journal will explain more behaviour than any amount of clicking through screens. Then walk one end-to-end trace slowly, ideally order to cash, until you can narrate every step. Then learn the save sequence, because the asynchronous update explains a whole category of incidents. Everything after that is detail you can look up, and you will know what to look up.

Want this taught live, with job support?

SAP Training is delivered live by working practitioners, with certification prep and placement support.

See SAP Training