CDS Views sind hervorragend geeignet, um Datenmodelle deklarativ zu beschreiben. Sie stoßen jedoch an ihre Grenzen, wenn komplexere Logik oder dynamische Berechnungen benötigt werden, die sich nicht in einer normalen View abbilden lassen. Für solche Fälle gibt es CDS Table Functions.
Eine Table Function ist eine spezielle CDS-Definition, die als Schnittstelle fungiert und auf eine AMDP-Methode (ABAP Managed Database Procedure) verweist. Diese Methode wird in einer ABAP-Klasse implementiert und direkt in der HANA-Datenbank ausgeführt. Damit können auch aufwendige Berechnungen, HANA-spezifische Funktionen oder dynamische Logik umgesetzt werden, die mit normalem SQL oder CDS nicht möglich wären. In ADT legt man Table Functions mit der Syntax define table function with parameters an. Dabei wird die Struktur der Ausgabedaten beschrieben und es können Parameter definiert werden, die zur Laufzeit übergeben werden. Die eigentliche Logik selbst liegt nicht im CDS, sondern in der AMDP-Methode, die in SQLScript implementiert ist. Der typische Ablauf besteht darin, dass man zunächst die Table Function im CDS definiert, anschließend eine ABAP-Klasse mit der zugehörigen AMDP-Methode implementiert und diese Logik dann in SQLScript schreibt. Danach lässt sich die Table Function im Open SQL oder in anderen CDS-Views wie eine ganz normale Tabelle verwenden. Table Functions sind also die Brücke zwischen dem deklarativen CDS-Ansatz und der prozeduralen Logik in der Datenbank. Sie erweitern den Spielraum erheblich, bleiben aber dennoch in die CDS-Welt integriert. Für einfache Szenarien sind View Entities weiterhin die richtige Wahl, doch wenn es um fortgeschrittene Berechnungen und dynamische Anforderungen geht, sind Table Functions das Mittel der Wahl.
ABAP Core Data Services (CDS) sind eine moderne Möglichkeit in SAP ABAP, Datenbankabfragen und Datenmodelle zu definieren.
Sie sind ein semantisches Schichtmodell auf der Datenbank, mit dem man Daten deklarativ beschreibt, statt rein prozedural in ABAP zu programmieren.