von Daniel Appelt

Datenbank - agnostische Abfragen in SAP CAP: So funktionieren sie

Im Cloud Application Programming Model der SAP sollten Datenbankabfragen nicht direkt in SQL, sondern in der deklarativen Query-Sprache CQL geschrieben werden.

Der CDS-Compiler und die CAP-Datenbankadapter wandeln CQL-Abfragen automatisch in das jeweils passende SQL für verschiedene Datenbank-Systeme um. Das macht Anwendungen portabel und vereinfacht deren Wartung.

 

  • Der CDS-Compiler zerlegt CQL-Abfragen in ein internes Modell, validiert sie und wendet nötige Transformationen an.
  • DB-Backend-Implementierungen übersetzen das interne Modell in datenbankspezifisches SQL – beispielsweise @cap-js/hana für SAP HANA.
  • Der CAP-Adapter übergibt die generierten SQL-Statements an den jeweiligen Datenbanktreiber.

CQL-Abfragen erinnern stark an SQL. Der Umstieg von SQL sollte daher leichtfallen. In CAP für NodeJS könnte eine CQL-Abfrage folgendermaßen aussehen:

Zur Laufzeit übersetzt CAP die Funktion seconds_between je nach Ziel-Datenbank automatisch in korrektes SQL:

  • HANA: SECONDS_BETWEEN(shippedAt, createdAt)
  • PostgreSQL: EXTRACT(EPOCH FROM (shippedAt - createdAt))
  • SQLite: (julianday(shippedAt) - julianday(createdAt)) * 86400

Der Einsatz Datenbank - agnostischer Abfragen bietet folgende Vorteile:

  • Portabilität: Wechsel der Datenbank ohne Änderung der Abfragen.
  • Produktivität: Einmal schreiben, überall ausführen.
  • Wartbarkeit: Keine duplizierten SQL-Varianten, zentrale Logik.
  • Sicherheit: Frühzeitige Validierung durch den CDS-Compiler.

Durch das Schreiben von Abfragen in CQL/CDS sorgt SAP CAP automatisch dafür, dass Funktionen wie seconds_between in das jeweils passende SQL übersetzt werden. Das vereinfacht die Entwicklung, Wartung und Datenbankwechsel. Für spezielle Anforderungen kann in Ausnahmefällen auch datenbankspezifisches SQL in CAP genutzt werden.

 

 

Herr Daniel Appelt

Senior Consultant & Developer SAP BI

ABRACON GmbH

+49 228 - 410 31 00

Ihr Ansprechpartner

Daniel Appelt ist SAP BI Senior Consultant und Entwickler bei der ABRACON GmbH. Seit 2002 konzipiert und realisiert der diplomierte Informatiker Entwicklungsprojekte im Business Intelligence-Umfeld. Sein Schwerpunkt liegt auf der Entwicklung SAP-basierter Web- und Mobilanwendungen, mit denen er innovative Lösungen für vielfältige Kundenanforderungen umsetzt.

zurück zur Übersicht

x