ABAP Objects

Objektorientiertes ABAP für moderne Clean Core SAP Systeme

Motivation

(C) Brandeis Consulting📁

Was ist Objektorientierung (OO)?

Objektorientierung in Programmiersprachen ist ein Programmierparadigma, bei dem wir Software nicht als eine Abfolge von Anweisungen, sondern als eine Sammlung von Objekten entwerfen.

Jedes Objekt ist wie ein kleines, autonomes Paket, das sowohl Daten (seine Eigenschaften) als auch Funktionen (sein Verhalten) bündelt, die auf diese Daten wirken.

Wir machen das, weil es uns hilft, komplexe Probleme in kleinere, besser verwaltbare Teile zu zerlegen.

(Google Gemini)

(C) Brandeis Consulting📁

Orientierung auf Objekte

Interpretation

Orientierung hier im Sinne von Ausrichtung auf eine bestimmte Perspektive oder ein Ziel.
Objekte sind das, was wir in der Realität wahrnehmen: z.B. Auto, Maschine, Paket.
Aus Sicht der SAP Entwicklung reden wir häufig über Business Objekte wie Kunde, Ansprechpartner, Auftrag, Produkt, Charge, Arbeitsplatz.

Orientierung Ziel/Fokus
Prozessorientierung Effizienz, Fehlerreduktion, Standardisierung
Kundenorientierung Kundenzufriedenheit, Bindung, Marktanpassung
Serviceorientierung Optimaler Service & Support
Datenorientierung Datenqualität, Echtzeit, Transparenz, Regeln
Qualitätsorientierung Fehlervermeidung, Exzellenz
Werteorientierung Handeln nach Prinzipien/Werten
Ergebnisorientierung Zielerreichung, Output
Mitarbeiterorientierung Zufriedenheit, Motivation, Bindung
Nachhaltigkeitsorientierung Ressourcenschonung, Umweltfreundlichkeit
(C) Brandeis Consulting📁

Objektorientierung = "aus der Perspektive des Objektes"


Perspektive Gesamtsystem

Perspektive Gesamtsystem

Perspektive des Objektes "Ameise"

Perspektive Ameise

(C) Brandeis Consulting📁

Warum Objektorientierung?

Wir nutzen Objektorientierung, um:

  • Komplexität zu reduzieren:
    Sie hilft uns, große Systeme in kleinere, verständliche Module zu zerlegen.
  • Wiederverwendbarkeit zu fördern:
    Einmal definierte Klassen können an verschiedenen Stellen im Programm oder sogar in anderen Projekten wiederverwendet werden. Das spart Zeit und Aufwand.
  • Code lesbarer und wartbarer zu machen:
    Da Daten und Funktionen, die zusammengehören, in einem Objekt gebündelt sind, ist der Code logischer strukturiert und Fehler können leichter gefunden und behoben werden.
  • API Definition
    Die objektorientierten Grundkonzepte unterstützen den Entwicklungsansatz API First. In SAP Systemen werden objektorientierte Konzepte deshalb häufig von Frameworks, Anwendungen u.a. als Erweiterungskonzept verwendet.
(C) Brandeis Consulting📁

Wann objektorientierte Programmierung (OOP) nutzen und wann nicht?

Geeignet

  • Entwicklung von grafischen Benutzeroberflächen (GUI), bei denen Fenster, Buttons und Events als Objekte modelliert werden.
  • Simulationssoftware, etwa zur Modellierung von Fahrzeugen oder Tieren, mit verschiedenen Eigenschaften und Verhaltensweisen pro Objekt.
  • Spieleentwicklung, bei der Spielfiguren, Gegner, Boni und Level als Objekte mit speziellen Eigenschaften agieren.
  • Unternehmensanwendungen wie Warenwirtschafts- oder Buchhaltungssysteme, in denen Kunden, Rechnungen und Artikel klar abgegrenzt werden.
  • Verwaltung komplexer Datenstrukturen
    Wenn das Denken in Tabellen nicht mehr ausreicht: z.B. Graph Daten

Eher ungeeignet

  • Mathematische Algorithmen (z. B. Sortier-, Matrix- oder numerische Methoden), wo prozedurale oder funktionale Ansätze meist effizienter sind.
  • Skripting kleiner Automatisierungsaufgaben, wie einfache Texttransformationen oder Batch-Verarbeitung.
  • Anbindung und Verarbeitung großer Mengen relationaler Daten aus Datenbanken.
  • Systemprogrammierung, etwa für Betriebssysteme, Treiber oder eingebettete Systeme, bei denen Ressourcenknappheit und Effizienz entscheidend sind.
  • Daten-Streaming- oder Pipeline-Anwendungen, die auf funktionsorientierten Verarbeitungsschritten beruhen.

Quelle: Perplexity

(C) Brandeis Consulting📁

Objektorientierung einfach erklärt

  • Unterscheidung Klasse (der "Bauplan") und Objekt (die konkrete Ausprägung, auch "Instanz")
  • Die Klasse definiert Eigenschaften und Methoden
  • Jedes Objekt hat individuelle Eigenschaften, die durch Methoden gelesen oder verändert werden können
  • Zusatzkonzept Ereignisse: Objekte können anderen Objekten - auch Objekten anderer Klassen - "Bescheid sagen"


Anmerkung: im linken Bild statt Eigentum das Wort Attribute verwenden.

Quelle: https://www.computerweekly.com/de/definition/Objektorientierte-Programmierung-OOP

(C) Brandeis Consulting📁

Wo begegnet uns Objektorientierung in der Praxis?

(C) Brandeis Consulting📁

Objektorientierung in Computerspielen: "Doom" (1993)

(C) Brandeis Consulting📁

Objektorientierung in Film und Fernsehen: "Herr der Ringe" (2002)


  • Für den zweiten Teil der Herr der Ringe Trilogie (Kinostart 2002) wurde eine gigantische Schlacht benötigt
  • Die größte Herausforderung war, die unglaubliche Menge an benötigten Kämpfern zu simulieren
  • Dies wurde mit Computergrafik gelöst: die Kämpfer wurden einzeln betrachtet, bekamen Aktionen/Bewegungen und konnten über ein simuliertes "Gehirn" selbständig Entscheidungen treffen
  • Lustig: in den ersten Versuchen sind die Orks vor der Schlacht weggelaufen...
(C) Brandeis Consulting📁

Objektorientierung in grafischen Oberflächen (Windows 3.0 - 1990)

(C) Brandeis Consulting📁

Objektorientierung in Werkzeugen für grafische Oberflächen (Delphi 1.0 - 1995)

  • In Rapid Application Development Werkzeugen (RAD) werden UI Elemente objektorientiert programmiert
  • In vielen aktuellen Low-Code/No-Code-Lösungen wurde dieses RAD-Konzept jetzt "wiederentdeckt"
  • Quelle: https://gdksoftware.com/how-to-update-delphi
(C) Brandeis Consulting📁

Objektorientierung in Physik-Simulationen

  • Komplexe Szenarien der Realität werden in Einzelobjekte zerlegt und ihre Eigenschaften und Verhaltensweisen objektorientiert abgebildet
  • In einer virtuellen Simulationsumgebung werden die Objekte in einer Szene platziert und mit vorgegebenen aber auch zufälligen Rahmenbedingungen über einen gewissen Zeitraum beobachtet
  • Quelle: https://ekiefl.github.io/2021/03/25/pooltool-start/
(C) Brandeis Consulting📁

Objektorientierung in Mixed Reality

(C) Brandeis Consulting📁

Objektorientierung in "alten" SAP Welt

(C) Brandeis Consulting📁

Objektorientierung für SAPGUI Kontrollen

(C) Brandeis Consulting📁

Objektorientierung in "neuen" SAP Welt

(C) Brandeis Consulting📁

Objektorientierte Konzepte im SAP ABAP (Beispiele)

  • SAP-Standard-Frameworks
    • SAPGUI Controls
    • Web Dynpro für ABAP (WDA)
    • Business Object Processing Framework (BOPF)
    • ABAP RESTful Application Programming Model (RAP)
  • Business-Objekte und Services
    • SAP Business Workflow
    • Business Add-Ins (BAdIs)
    • Business APIs (BAPIs)
  • ABAP Hilfsklassen und Utilities
    • Klassenbasierte APIs: z.B. CL_GUI_FRONTEND_SERVICES
    • ABAP Unit Tests
    • Ausnahmeklassen
  • Kundenindividuelle Toolboxen und APIs
(C) Brandeis Consulting📁

Übungsszenario: Würfel-Casino

Demoszenario Würfelspiel

  • Wir spielen würfeln
  • Über verschiedene Übungen werden einzelne Aspekte der objektorientierten Programmierung mit SAP ABAP vorgestellt
  • Moderne ABAP Syntax und der Umgang mit den neuen SAP Entwicklungswerkzeugen stehen ebenfalls im Fokus der Übungen

Funktionsbeschreibung

  • Es wird die komplexe Situation in einem Würfel-Casino simuliert
  • Die Teilnehmer würfeln in verschiedenen Würfelspielen gegeneinander
  • Ein Spielführer leitet das Würfelspiel und wacht über die Einhaltung der Regeln
  • Am Ende der Runde bzw. des Spiels wird der Sieger gekührt und die Rangliste veröffentlicht
  • Ein Assistent kümmert sich um die Teilnehmer...

Lernziele

  • Grundkonzepte der Objektorientierung
  • Grundlagen ABAP Objects
  • Objektorientierten ABAP Code verstehen und debuggen können
  • Architektur und Entwurfsmuster
(C) Brandeis Consulting📁

| Innovationsorientierung | Neuerungen, Differenzierung am Markt | | Mitarbeiterorientierung | Zufriedenheit, Motivation, Bindung | Easy Soft GmbH (Work-Life-Blend), Google (Arbeitsumfeld) | Nachhaltigkeitsorientierung | Ressourcenschonung, Umweltfreundlichkeit | Unternehmen mit ESG-Strategien, Toyota Hybrid | Qualitätsorientierung | Fehlervermeidung, Exzellenz | Deutsche Mittelständler, japanische Industrie | Wettbewerbsorientierung | Marktanteile, Konkurrenzfähigkeit | Aggressive Pricing-Strategien z.B. bei Discountern | Sicherheitsorientierung | Risikominimierung, Schutz | Versicherungsbranche, Chemieindustrie