#ABAP SQL#CDS#HANA

Pagination in ABAP SQL: offset vs keyset, measured

Why OFFSET degrades with page depth while keyset keeps a constant cost: a curve measured on 2.4 million rows and how to choose.

Sep 29, 2026

#ABAP#ABAP Cloud#ABAP CDS

Why is your CDS view poorly structured?

How to structure a CDS view into Basic, Composite and Consumption layers, and why mixing them breaks your Fiori apps and your reports.

Sep 7, 2026

#ABAP#CDS#VDM

Well-structured CDS: the VDM layer that won't embarrass you in three years

Basic, Composite, Consumption. The Virtual Data Model isn't bureaucracy: it's what separates a model that scales from a plate of spaghetti. With a real ABAP CDS code example.

Jul 8, 2026

#ABAP#CDS#parameters

Parameters in CDS: stop cloning the same view twelve times

A view with the year and company code hardcoded in the WHERE isn't reusable, pollutes the plan cache and forces you to maintain copies. Typed parameters fix all three. With real DDL and the recompilation trap.

Mar 27, 2026

#ABAP#CDS#associations

Associations vs joins in CDS: the detail that changes the HANA plan

A JOIN always runs; an association only when someone navigates it. In reused views that cuts data transfer by 30 to 80 percent. With real DDL and the cardinality trap.

Mar 25, 2026

#ABAP#CDS#annotations

The six CDS annotations you should always declare (and one that can lie to you)

compareFilter, authorizationCheck, clientHandling, preserveKey. Not decoration: omitting them costs 15 to 30 percent on views with joins, and one of them, misdeclared, returns wrong results with no warning.

Mar 22, 2026

#ABAP#CDS#performance

CDS performance: logic goes where the data is, not the other way round

The LOOP with a SELECT SINGLE inside was normal in ECC. In S/4HANA it's the cardinal sin. Code pushdown, why the native join beats FOR ALL ENTRIES, and the string function that turns 1 second into 60.

Mar 21, 2026

#ABAP#CDS#annotations

Analytical and semantic annotations: the CDS that Fiori and SAC understand on their own

A decimal without @Semantics is just a number. With the right annotations, Fiori formats the currency, SAC converts amounts and temporal drill-down works with no UI code. With real cube and dimension DDL.

Mar 19, 2026

← All posts