Entity Manipulation Language – Der Multiplikator, den Clean Core gebraucht hat

Clean Core scheitert oft nicht an der Strategie – sondern an der internen Umsetzung. EML ist der fehlende Baustein: die technische Brücke, die sicherstellt, dass Geschäftslogik auch intern sauber bleibt. Warum das entscheidend ist – und was RAP damit zu tun hat.

Was ist EML?

Die Entity Manipulation Language (EML) beschreibt einen Teil der Syntax innerhalb der ABAP-Programmiersprache von SAP, um mit RAP-Objekten zu interagieren.

Sie ermöglicht den Aufruf von Funktionen, die im Rahmen von RAP-Behaviour-Definitionen definiert wurden.

EML ist damit die technische Brücke zwischen der Behaviour Definition einer RAP-Entität und der tatsächlichen Nutzung dieser Entität innerhalb des Systems.

Warum ist EML wichtig?

Die Behaviour Definition definiert eine saubere Schnittstelle für die Funktionen einer Entität.

Im Fundament des RAP-Frameworks ist verankert, dass Funktionen sowohl von außerhalb als auch innerhalb des Systems angesprochen und aufgerufen werden können:

  • Von außen:
    Über die Freigabe einer Entität in der Service Definition – und damit die Ansprechbarkeit über REST-Aufrufe.
  • Von innen:
    Über die Verwendung der Entität mithilfe der Entity Manipulation Language.

Das Entscheidende dabei:

Für eine RAP-Entität ist es nicht relevant, ob sie von außerhalb oder innerhalb des Systems aufgerufen wird. Darum kümmert sich das Framework.

Damit bleibt der Kern der Geschäftslogik sauber und kann sich ausschließlich auf das Wesentliche konzentrieren – Clean Core

Die Spezialitäten des Aufrufenden spielen für die eigentliche Implementierung keine Rolle mehr. Genau das ist der architektonische Hebel.

Die Operation ACTION

Bei MODIFY ENTITIES finden wir außerdem den unscheinbaren – und oft vernachlässigten – Grund, warum EML so mächtig ist: die ACTION

Mit ACTION erhalten wir Zugriff auf alle zusätzlichen Funktionen, die die Behaviour Definition bereitstellt – unter Berücksichtigung aller Bedingungen und Berechtigungen, die der Vertrag der Entität definiert.

Dazu gehören:

  • Template-Actions
  • Statische Actions
  • Instanz-Actions

Mit oder ohne Parameter. Alles, was der Vertrag der Entität bereitstellt, kann genutzt werden.

Beispiel:

MODIFY ENTITIES OF Z_MyCoolEntity

  ENTITY MyActualEntity

  EXECUTE myFancyAction

  RESULT DATA(resultData).

Warum sind Actions so wichtig?

Actions bilden eine wichtige Säule des Fundament der Behaviour Definition.

Jede Interaktion mit einer Entität, die über die klassischen CRUD-Funktionen hinausgeht, wird über eine Action abgebildet.

Aus diesem Grund gehören auch die sogenannten Draft-Actions in diese Kategorie.

Der komplette Prozess des Überführens eines Drafts in einen aktiven Datensatz wird über Actions gesteuert.
Da EML Actions beliebig aufgerufen werden können, ist keine Erweiterung der ABAP-Syntax durch zusätzliche Schlüsselwörter erforderlich.

Das bedeutet konkret:

  • Kein Zuwachs der ohnehin umfangreichen ABAP-Schlüsselwortliste
  • Maximale Wiederverwendbarkeit des bestehenden Sprachmodells

Ein Beispiel ist das Konzept des „Collaborative Draft“. Auch hier wurde dieses Prinzip konsequent genutzt. Ohne Anpassung des ABAP-Sprachmodells kann die Share-Funktion im Rahmen des Drafts verwendet werden.

 

RAP im Rahmen des Clean Core – und die Relevanz der EML

Das RAP-Entwicklungsmodell bietet genau das, was notwendig ist, um den Clean-Core-Gedanken umzusetzen.

Das Herzstück – die Behaviour Definition – stellt eine klar definierte Schnittstelle bereit:

  • Für die Außenwelt (Webanwendungen, Fremdsysteme)
  • Für die interne Verwendung im eigenen System

Gerade intern war es in der Vergangenheit häufig problematisch:

  • Abkürzungen wurden genommen
  • Direkt passende, bequeme oder bekannte Funktionsbausteine oder Klassen verwendet
  • Tabellen wurden unmittelbar ausgelesen

Es wurde alles genutzt, was kurzfristig und schnell funktionierte – auf Kosten der Zukunftsfähigkeit des Systems und der Integrität der Anwendungen. - Stichwort: Technische Schulden

Deshalb war es zwingend erforderlich, dass RAP nicht nur einen eleganten Weg für die UI-Bereitstellung bietet, sondern ebenso einen sauberen Mechanismus für die interne Nutzung derselben Verträge und Schnittstellen.

Und genau darum ist die Entity Manipulation Language nicht nur ein "nice to have"-Feature, sondern das abrundende Element zur Vollständigkeit des RAP-Entwicklungsmodels.

Fazit

EML ist weit mehr als nur eine weitere Syntaxergänzung in ABAP.

Sie ist:

  • Der interne Zugriffspunkt auf Behaviour-Definitionen
  • Der Garant für saubere Schnittstellen
  • Der technische Enabler für Clean Core
  • Und damit ein entscheidender Multiplikator für nachhaltige SAP-Architekturen

Jetzt – und für die Zukunft eines sauberen Kerns.