Klassen (ABAP-Objects)
Die objektorientierte Erweiterung von ABAP - genannt ABAP Objects - wird für SAP-Entwickler zunehmend bedeutender und kein SAP-Programmierer kann sich heutzutage nur auf die prozeduale Programmierung beschränken. Gerade bei komplexen Software-Systemen kann die Objektorientierung ihre Stärken ausspielen. Mehr und mehr wird die Objektorierung im SAP-Kernsystem und von Beratern im Projekt genutzt und schon allein deswegen kommt heute kein SAP-Entwickler am Verständnis der Objektorientierung vorbei.
Siehe Kategorie:ABAP OO.
Globale Klassen (Class Builder/Transaktion SE24)
- Die Transaktion SE24 (Class Builder) ist die zentrale Transaktion für die Pflege von Klassen und Interfaces.
- In die Transaktion Object Navigator (SE80) sind die Funktionalitäten ebenfalls direkt integriert.
Lokale Klassen
Konstantenklasse
Elementare Konzepte von ABAP-Objects
Sichtbarkeit (Public/Protected/Private)
Methoden
Konstruktor
Attribute
Interfaces
Events
Vererbung
Garbage-Collector
Casting
Klassenbasierte Ausnahmen
Design Pattern
SAP-Technologien mit ABAP-Objects
- SAP-Controls
- Web-Dynpro
- Office-Integration mit OLE2
- u. a.
SAP-Klassen
ALV-Controls
Vor- und Nachteile ABAP-Objects
Testprogramme
Tabellen
Entwicklungsobjekte Klasse/Methoden
- Die Namen der Methoden werden zusammen mit der Klasse als einzelne Entwicklungsobjekte (Implementierung Methoden) gespeichert.
- Programm-ID = LIMU und Objekttyp = METH. Bei Objektname wird der Eintrag aus dem Klassennamen und dem Methodennamen zusammengesetzt.
- Die Definition der Methoden wird in 3 verschiedene Entwicklungsobjekte gespeichert, dies berücksichtigt die Sichtbarkeit: Private, Protected und Public.
- Hier gibt es die Objekttypen CPUB, CPRO und CPRI. Programm-ID = LIMU.
- Die gesamte Klasse kann auch in einen Transportauftrag geschrieben werden. Dann sind alle Methoden inklusive deren Schnittstellen/Parameter darin enthalten.
- Zur Programm-ID "R3TR" gibt es dann den Objekttyp "CLAS" und Objekttyp "CLAS"
Es gibt noch ein Entwicklungsobjekt mit dem Objekttyp CLSD (Klassendefinition (ABAP Objects)). Hier ist mir nicht 100% klar, was damit konkret gemeint ist, bzw. welche Implikationen der Transport dieses Entwicklungsobjektes zur Folge hat.
Gesamte Klasse transportieren über SE80
- Eine globale Klasse kann viele Methoden enthalten, die dann jeweils auf die Public-/Protected-/Private-Schnittstelle zugreifen. Diese Entwicklungen können in mehreren Transportaufträgen landen, sodass man am Ende dann unsicher ist beim Produktivtransport welche Transportaufträge zusammen zu transportieren sind, damit es nicht beim Transport zu fehlenden Objekten kommt und einem Syntaxfehler in der Klasse. Dann möchte man manchmal die gesamte Klasse transportieren, um diese Gefahr auszuschließen.
- Transaktion SE80 und die Klasse aufrufen (hier im Beispiel "ZCL_SD_MV45AFZZ")
- Die Klasse markieren und mit rechter Maustaste "Weitere Funktionen - Transporteintrag schreiben"
- Es wird dann der folgende Eintrag in den Transportauftrag geschrieben, mit Objekttyp "CLAS" und Objekttyp "CLAS". Dieses Entwicklungsobjekt sollte man nur nach sorgfältiger Überlegung in einen Transportauftrag geschrieben werden und sich dann wirklich bewusst sein, dass die gesamte Klasse transportiert wird. Bei umfangreichen für den Kunden zentralen Klassen sollte man den Transport ins Produktivsystem zwingend in einer Zeit durchführen, wo möglichst wenig Leute am System arbeiten und keine Jobs laufen, und dann möglichst 1-2 Berater/Entwickler zur Verfügung haben, die dann bei Problemen im Produktivsystem schnell das Problem fixen können.
Web-Links
- Wikipedia über ABAP-Objects
- SAP-Hilfe: Übersichtsgrafik zu Klassen
- SAP-Hilfe: Klassen
- SCN: ABAP-Objects Tutorial, von Horst Keller u. a.
Literatur
- ABAP Objects: Das neue umfassende Handbuch zu Konzepten, Sprachelementen und Werkzeugen in ABAP OO, 2016, von Felix Roth
- Anwendungsentwicklung mit ABAP Objects, 2014, von Thorsten Franz und Tobias Trapp
- ABAP Objects - Grundlagen und Anwendung der objektorientierten Programmierung in ABAP, 2007, von Frank Wolf
- ABAP Objects - ABAP Programmierung mit SAP NetWeaver, 2006, von Horst Keller
- Praktischer Einstieg in ABAP Objects, 2003, von Günther Färber und Julia Kirchner