Um Geschäftsanwendungen möglichst effizient und standardisiert modellieren und implementieren zu können hat SAP das Business Object Processing Framework für ABAP entwickelt.
SAP BOPF bietet viele Standardfunktionalitäten wie zum Beispiel das Lesen und Schreiben der Datenbanktabellen an. Dadurch kann ein Teil der Entwicklung standardisiert und Zeit eingespart werden. In diesem Beitrag werde ich die Grundlagen sowie die Vorteile und die Architektur des Frameworks vorstellen.
Voraussetzungen
Ursprünglich wurde das Framework von SAP für interne Entwicklungen, beispielsweise beim Transportmanagement, eingesetzt. Aufgrund der erhöhten Nachfrage wurde SAP BOPF dann auch für alle Entwickler veröffentlicht. Das Framework ist ab den folgenden Releases nutzbar:
- SAP Business Suite EHP5 SP11 / EHP6 SP05 / EHP7
- SAP NetWeaver 7.50
Überblick über das Programmiermodell
Im Zentrum von BOPF steht das Geschäftsobjekt. Dies kann zum Beispiel ein Produkt, ein Vertrag oder ähnliches sein.
Ein Geschäftsobjekt hält immer eine Menge an Knoten, welche die Logik des jeweiligen Geschäftsobjekts modellieren.
Diese Knoten sind hierarchisch angeordnet wobei auch Assoziationen realisierbar sind.
Jeder dieser Knoten ist mit einer eindeutigen, vom Framework generierten, ID ansprechbar.
Im Hintergrund wird für jeden dieser Knoten eine Tabelle sowie für jede Knoteninstanz ein Eintrag in der jeweiligen Tabelle angelegt.
Dabei geben die Attribute, die einem Knoten zugeordnet werden, die Spalten der jeweiligen Tabelle an.
Das Framework bietet die Möglichkeit, verschiedene Arten von Knoten, sogenannte Knotenentitäten, anzulegen:
- Aktion: In Aktionen wird das Verhalten eines Geschäftsobjekts implementiert. Aktionen werden explizit aufgerufen, zum Beispiel durch einen Klick eines Benutzers auf einen Button. Eine Aktion für das Geschäftsobjekt wäre beispielsweise “Vertrag verlängern”.
- Ermittlung: Ermittlungen werden im Gegensatz zu Aktionen nicht explizit, sondern automatisch angestoßen. Beispielsweise wenn ein Vertrag ausgelaufen ist.
- Validierung: Validierungen nutzt man zur Konsistenzprüfung von Knoten oder Aktionen.
- Abfrage: Um nach bestimmten Knoteninstanzen suchen zu können, können Abfragen verwendet werden.
- Assoziation: Mit Assoziationen können verschiedene Instanzen von Geschäftsobjekten zwischen verschiedenen Knoten verbunden werden.
Im folgenden Bild siehst du das eben Beschriebene zusammengefasst:

Beispiel
Damit du dir einen Eindruck machen kannst wie das in der Praxis aussieht, stellt SAP ein paar Beispielimplementierungen bereit, die du in der Transaktion BOBX (Framework zur Verwaltung von Business Objekten) findest. Hier kannst du alle bereits erstellten Geschäftsobjekte ansehen und bearbeiten. Im Bereich Transportierbare Business-Objekte -> Business-Objekte findest du zum Beispiel ein Geschäftsobjekt für Produkte (/BOBF/DEMO_PRODUCT). In der Detailansicht (Doppelklick auf das Business-Objekt) siehst du das Geschäftsobjekt und alle zugehörigen Knoten.

Unter “Knotenstruktur” sind alle Knoten hierarchisch dargestellt. Hier kannst du auch neue Knoten zum Geschäftsobjekt hinzufügen. Unter “Knotenelemente” sind noch einmal alle Knoten alphabetisch sortiert dargestellt. Hier können die einzelnen Knoten bearbeitet und um Funktionalität erweitert werden. Für den Wurzelknoten sind schon einige Funktionalitäten hinterlegt.

Um alle Produkte lesen zu können wurde beispielsweise eine Abfrage “SELECT_ALL” angelegt. Die Verbindung zu einem beschreibenden Text in verschiedenen Sprachen ist über eine Assoziation gelöst. Interessant ist auch die Validierung “CHECK_ROOT”, in der eine Prüfung auf auf Vollständigkeit und Korrektheit eines Produktkopfes stattfindet. Du kannst dich gerne einmal in dem und den weiteren Business-Objekten umsehen. In den nächsten Beiträgen gehe ich dann darauf ein, wie man ein eigenes Business-Objekt mit Funktionalitäten erstellt.
Fazit und Ausblick
SAP BOPF bietet eine gute Möglichkeit, um Geschäftsanwendungen zu modellieren und zu implementieren. Zudem kann durch den Einsatz von BOPF die Entwicklung standardisiert werden, was auch dazu führt, dass Entwickler nicht immer in eine neue Architektur einarbeiten müssen. Meiner Meinung nach ist es sinnvoll, BOPF anzuwenden, sofern keine projektbedingten Rahmenbedingungen dagegen sprechen.
In den nächsten Blogartikeln zeige ich dir, wie du ein eigenes Geschäftsobjekt anlegst, verwaltest und damit arbeitest.
Hast du noch Fragen?
Nutze gerne unsere Kommentarfunktion oder schreib mir direkt an adrian.gehrke@cgi.com
Du programmierst, bist ABAP-interessiert und hast Lust coole Projekte mit uns zu machen? Wir suchen dich! Schau doch mal in unserer Stellenbeschreibung vorbei.