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.
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:
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.
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:
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).
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:
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.
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:
Gerade intern war es in der Vergangenheit häufig problematisch:
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.
EML ist weit mehr als nur eine weitere Syntaxergänzung in ABAP.
Sie ist:
Jetzt – und für die Zukunft eines sauberen Kerns.