Im ABAP-RESTful-Anwendungsprogrammiermodell definiert ein Business-Objekt eine bestimmte Entität, z.B. ein Reisebüro. Seine Definition besteht aus zwei Teilen: einer oder mehreren CDS-Views, die die Struktur des Objekts definieren, d.h. die darin enthaltenen Felder, und einer Verhaltensdefinition, die beschreibt, was Sie mit dem Business-Objekt tun können.

Die Verhaltensdefinition legt fest, welche der Standardoperationen create, update, delete erlaubt sind. Sie kann auch die Definition von Validierungen, Determinierungen und Aktionen enthalten. Validierungen prüfen, ob die Daten korrekt sind, wenn Sie einen Datensatz anlegen oder aktualisieren. Ermittlungen ändern Instanzen von Business-Objekten basierend auf Auslösebedingungen. Aktionen sind Nicht-Standardoperationen, die Sie verwenden, um benutzerdefiniertes, geschäftslogisches Verhalten bereitzustellen. Das Genehmigen einer Bestellung oder das Stornieren eines Flugs sind Aktivitäten, die Sie als Aktion implementieren würden.
Die Verhaltensimplementierung besteht aus einer oder mehreren ABAP-Klassen. Hier werden die Validierungen, Determinierungen und Aktionen implementiert. Bei den Standardoperationen unterscheidet das Modell zwei Implementierungsszenarien: Im nicht verwalteten Implementierungsszenario werden create, update und delete in der Verhaltensimplementierung implementiert. Im verwalteten Implementierungsszenario übernimmt die Laufzeit diese.
Business-Objekte werden häufig verwendet, um die Transaktionslogik für Fiori-Elements-Apps oder Web-APIs bereitzustellen. Sie können jedoch auch aus dem ABAP-Coding heraus über die Entity Manipulation Language (EML) darauf zugreifen. Dies ist eine Reihe von ABAP-Anweisungen, mit denen Sie Daten mithilfe von Business-Objekten anlegen, lesen, aktualisieren und löschen können.
Notiz
EML kann auch von der Verhaltensimplementierung eines Business-Objekts auf die Anwendungsdaten zugreifen.

In diesem Kapitel legen Sie eine Klasse an, die ein Business-Objekt zum Ändern von Reisebürodaten verwendet. Die View-Entität enthält das Schlüsselfeld AgencyID und verschiedene weitere Felder, die Informationen über das Reisebüro enthalten.
Verhaltensdefinition und -implementierung

Das Verhalten eines Business-Objekts besteht aus zwei Teilen: der Verhaltensdefinition und der Verhaltensimplementierung. Die Verhaltensdefinition enthält Informationen darüber, was das Business-Objekt tun kann, während die Verhaltensimplementierung das eigentliche Coding enthält, das das System ausführt.
Die Verhaltensimplementierung ist eine ABAP-Klasse. Sie deklarieren die Klasse in der Verhaltensdefinition in der Anweisung managed implementation in class <class> unique. Das eigentliche Coding der Verhaltensimplementierung ist in einer lokalen Klasse innerhalb der von Ihnen angegebenen globalen Klasse enthalten.

Eine Verhaltensdefinition ist ein wesentlicher Bestandteil eines Business-Objekts. Sie beschreibt, welche der Standardoperationen erlaubt sind, z.B. Anlegen, Aktualisieren, Löschen. Außerdem werden Prüfungen (Validierungen) definiert, die beim Anlegen oder Ändern von Daten durchgeführt werden.
Das Beispiel hier ist die Verhaltensdefinition für das Reisebüro. Am Anfang der Definition sehen Sie den Namen der CDS-View, die wir gerade angesehen haben, und dass dafür ein Alias definiert ist. Dies ist wichtig, da es sich um den Aliasnamen handelt, über den die Entität mit EML adressiert wird.
Die Verhaltensdefinition verknüpft die CDS-Entität auch mit der Datenbanktabelle, in der die Daten abgelegt sind. In diesem Fall verwendet das Business-Objekt zwei Tabellen: eine für aktive Daten und eine für Entwürfe (Daten, die unvollständig sind und nicht geprüft wurden). Es gibt auch Informationen, die für das Sperren der Daten, für Berechtigungsprüfungen und für die Parallelitätskontrolle relevant sind. Wir werden uns diese Informationen nicht im Detail ansehen. Sie müssen nur wissen, dass sich die Laufzeit um diese Probleme kümmern kann. Sie können auch CDS-Entitäten und Verhaltensdefinitionen basierend auf der Definition einer Datenbanktabelle generieren. In diesem Fall werden Sperren, Berechtigungsprüfungen und Parallelitätskontrollen automatisch behandelt.

Die globale Klasse der Verhaltensimplementierung (auch Behavior-Pool genannt) ist nur eine leere Klassendefinition mit dem speziellen Zusatz FOR BEHAVIOR OF gefolgt vom Namen der Verhaltensdefinition. Die eigentliche Implementierung der Verhaltensdefinition ist eine lokale Klasse innerhalb der globalen Klassendefinition. Sie greifen auf die Klasse zu, indem Sie auf die Registerkarte Lokale Typen klicken.
Die Verhaltensimplementierung enthält Business-Objekt-spezifischen Code, z.B. die Implementierung für Validierungen, Determinierungen und Aktionen. Ob sie auch Code für die Standardoperationen (create, update, delete und lock) enthält, hängt von den Details der Verhaltensdefinition ab. Die Verhaltensimplementierung für unser Business-Objekt enthält keinen Quelltext für die Standardoperationen. Dies liegt daran, dass das Business-Objekt die verwaltete Implementierungsart verwendet, in der sich die Laufzeit mit den Standardoperationen befasst.

Eine Validierung ist eine Prüfung, die die Laufzeit durchführt, wenn Daten geändert werden. Hier wird die Validierung immer beim Anlegen eines neuen Datensatzes durchgeführt (Trigger create;). Wenn ein vorhandener Datensatz geändert wird, wird die Validierung nur durchgeführt, wenn das Feld Name geändert wurde (Trigger field Name;).
Validierungen werden in der Verhaltensdefinition definiert. Für jede Validierung gibt es eine entsprechende Methode in der Verhaltensimplementierung.

