BC401 ABAP Objects. GLIEDERUNG DES KURSES Version der Schulung: 10 Dauer der Schulung: 5 Tage
SAP-Copyright und Markenzeichen 2014 SAP AG. Alle Rechte vorbehalten. Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher Form auch immer, ohne die ausdrückliche schriftliche Genehmigung durch SAP AG nicht gestattet. In dieser Publikation enthaltene Informationen können ohne vorherige Ankündigung geändert werden. Die von der SAP AG oder deren Vertriebsfirmen angebotenen Software-Produkte können Software-Komponenten auch anderer Software-Häuser enthalten. Microsoft, Windows, Excel, Outlook und PowerPoint sind eingetragene Marken der Microsoft Corporation. IBM, DB2, DB2 Universal Database, System i, System i5, System p, System p5, System x, System z, System z10, System z9, z10, z9, iseries, pseries, xseries, zseries, eserver, z/vm, z/os, i5/os, S/390, OS/390, OS/400, AS/400, S/390 Parallel Enterprise Server, PowerVM, Power Architecture, POWER6+, POWER6, POWER5+, POWER5, POWER, OpenPower, PowerPC, BatchPipes, BladeCenter, System Storage, GPFS, HACMP, RETAIN, DB2 Connect, RACF, Redbooks, OS/2, Parallel Sysplex, MVS/ESA, AIX, Intelligent Miner, WebSphere, Netfinity, Tivoli und Informix sind Marken oder eingetragene Marken der IBM Corporation. Linux ist die eingetragene Marke von Linus Torvalds in den USA und anderen Ländern. Adobe, das Adobe-Logo, Acrobat, PostScript und Reader sind entweder Marken oder eingetragene Marken von Adobe Systems Incorporated in den USA und/oder anderen Ländern. Oracle ist eine eingetragene Marke der Oracle Corporation. UNIX, X/Open, OSF/1 und Motif sind eingetragene Marken der Open Group. Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame und MultiWin sind Marken oder eingetragenen Marken von Citrix Systems, Inc. HTML, XML, XHTML und W3C sind Marken oder eingetragene Marken des W3C, World Wide Web Consortium, Massachusetts Institute of Technology. Java ist eine eingetragene Marke von Sun Microsystems, Inc. JavaScript ist eine eingetragene Marke der Sun Microsystems, Inc., verwendet unter der Lizenz der von Netscape entwickelten und implementierten Technologie. SAP, R/3, SAP NetWeaver, Duet, PartnerEdge, ByDesign, SAP BusinessObjects Explorer, StreamWork und weitere im Text erwähnte SAP-Produkte und - Dienstleistungen sowie die entsprechenden Logos sind Marken oder eingetragene Marken der SAP AG in Deutschland und anderen Ländern weltweit. Business Objects und das Business-Objects-Logo, BusinessObjects, Crystal Reports, Crystal Decisions, Web Intelligence, Xcelsius und weitere im Text erwähnte Business- Objects-Produkte und -Dienstleistungen sowie die entsprechenden Logos sind Marken oder eingetragene Marken von Business Objects Software Ltd. Business Objects ist ein Unternehmen der SAP. Sybase und Adaptive Server, ianywhere, Sybase 365, SQL Anywhere und weitere im Text erwähnte Sybase-Produkte und -Dienstleistungen sowie die entsprechenden
Logos sind Marken oder eingetragene Marken von Sybase, Inc. Sybase ist ein Unternehmen der SAP. Alle anderen Namen von Produkten und Dienstleistungen sind Marken der jeweiligen Firmen. Die Angaben im Text sind unverbindlich und dienen lediglich zu Informationszwecken. Produkte können länderspezifische Unterschiede aufweisen. Dieses Material kann ohne vorherige Ankündigung geändert oder ergänzt werden. Dieses Material wird von der SAP AG und ihren Konzernunternehmen ( SAP-Konzern ) bereitgestellt und dient ausschließlich zu Informationszwecken. Für dieses Material übernimmt der SAP- Konzern keinerlei Haftung und Gewähr für Richtigkeit und Vollständigkeit der gemachten Angaben. Der SAP-Konzern steht lediglich für Produkte und Dienstleistungen nach der Maßgabe ein, die in der Vereinbarung über die jeweiligen Produkte und Dienstleistungen ausdrücklich geregelt ist. Keine der hierin enthaltenen Informationen ist als zusätzliche Garantie zu interpretieren. Copyright. Alle Rechte vorbehalten. iii
iv Copyright. Alle Rechte vorbehalten.
Über dieses Handbuch Dieses Handbuch ergänzt die Präsentation des Schulungsreferenten und dient als Nachschlagewerk. Es ist nicht zum Selbststudium geeignet. Typografische Konventionen Dieses Handbuch ist von Amerikanischen Englisch ins Deutsche übersetzt worden. Die folgenden typografischen Konventionen werden in diesem Handbuch verwendet: Diese Informationen werden in der Präsentation des Schulungsreferenten angezeigt. Demonstration Vorgehensweise Warnung oder Achtung Hinweis Zugehörige oder zusätzliche Informationen Moderierte Diskussion Steuerung der Benutzungsoberfläche Beispieltext Fenstertitel Beispieltext Copyright. Alle Rechte vorbehalten. v
vi Copyright. Alle Rechte vorbehalten.
Inhaltsverzeichnis ix Überblick über die Schulung 1 Kapitel 1: Einführung in die objektorientierte Programmierung 1 Lektion: Das objektorientierte Programmiermodell 1 Lektion: Analyse und Design mit Unified Modeling Language (UML) 3 Kapitel 2: Grundlegende objektorientierte Syntax 3 Lektion: Anlegen von lokalen Klassen 3 Lektion: Erzeugen von Objekten und Arbeiten mit Objekten 3 Lektion: Zugriff auf Methoden und Attribute 3 Lektion: Implementieren von Konstruktoren in lokalen Klassen 4 Lektion: Implementieren von Klassenkonstruktoren in lokalen Klassen 5 Kapitel 3: Vererbung und Casting 5 Lektion: Implementieren von Vererbung 5 Lektion: Implementieren von Up-Casts mithilfe von Vererbung 5 Lektion: Implementieren von Polymorphie mithilfe von Vererbung 5 Lektion: Implementieren von Down-Casts mithilfe von Vererbung 7 Kapitel 4: Interfaces und Casting 7 Lektion: Definieren und Implementieren lokaler Interfaces 7 Lektion: Polymorphie mithilfe von Interfaces implementieren 7 Lektion: Verknüpfen von Klassenmodellen mithilfe von Interfaces 9 Kapitel 5: Objektorientierte Ereignisse 9 Lektion: Implementieren von Ereignissen in lokalen Klassen 9 Lektion: Implementieren von Ereignissen in lokalen Interfaces 11 Kapitel 6: Objektorientierte Repository-Objekte 11 Lektion: Anlegen globaler Klassen 11 Lektion: Definieren und Implementieren globaler Interfaces 11 Lektion: Implementieren der Vererbung in globalen Klassen 13 Kapitel 7: Beispiele für objektorientiertes ABAP 13 Lektion: Implementieren eines einfachen ABAP List Viewer (ALV) 13 Lektion: Implementieren von Business Add-Ins (BAdIs) Copyright. Alle Rechte vorbehalten. vii
15 Kapitel 8: Objektorientierte Design Patterns 15 Lektion: Implementieren spezieller objektorientierter Techniken 15 Lektion: Implementieren des Singleton-Patterns 15 Lektion: Implementieren von Factory-Klassen mithilfe von Freundschaft 15 Lektion: Implementierung persistenter Objekte 17 Kapitel 9: Objektorientierte Ausnahmebehandlung 17 Lektion: Behandlung von klassenbasierten Ausnahmen 17 Lektion: Definieren und Auslösen von Ausnahmen 17 Lektion: Implementierung erweiterter Ausnahmebehandlungstechniken 19 Kapitel 10: Run Time Type Services 19 Lektion: Implementieren der Run Time Type Identification 19 Lektion: Implementierung der Run Time Type Creation 21 Kapitel 11: Fortgeschrittene Techniken der objektorientierten Programmierung mit ABAP 21 Lektion: Fortgeschrittene Techniken der objektorientierten Programmierung mit ABAP 23 Kapitel 12: Fallstudie 23 Lektion: Entwicklung objektorientierter Fallstudien viii Copyright. Alle Rechte vorbehalten.
Überblick über die Schulung ZIELGRUPPE Diese Schulung richtet sich an die folgenden Zielgruppen: Anwendungsberater Entwicklungsberater Supportberater Entwickler Copyright. Alle Rechte vorbehalten. ix
x Copyright. Alle Rechte vorbehalten.
KAPITEL 1 Einführung in die objektorientierte Programmierung Lektion 1: Das objektorientierte Programmiermodell die Unterschiede zwischen prozeduralem und objektorientiertem Programmiermodell erläutern ABAP Objects beschreiben Lektion 2: Analyse und Design mit Unified Modeling Language (UML) Objekte klassifizieren Objekte und Klassen in UML modellieren Copyright. Alle Rechte vorbehalten. 1
Kapitel 1: Einführung in die objektorientierte Programmierung 2 Copyright. Alle Rechte vorbehalten.
KAPITEL 2 Grundlegende objektorientierte Syntax Lektion 1: Anlegen von lokalen Klassen lokale Klassen definieren Attribute definieren Methoden anlegen Lektion 2: Erzeugen von Objekten und Arbeiten mit Objekten Objekte erzeugen mit Objekten umgehen Lektion 3: Zugriff auf Methoden und Attribute Instanzmethoden aufrufen statische Methoden aufrufen funktionale Methoden aufrufen auf öffentliche Attribute zugreifen Lektion 4: Implementieren von Konstruktoren in lokalen Klassen Konstruktoren anlegen und verwenden Copyright. Alle Rechte vorbehalten. 3
Kapitel 2: Grundlegende objektorientierte Syntax Lektion 5: Implementieren von Klassenkonstruktoren in lokalen Klassen statische Konstruktoren anlegen und verwenden 4 Copyright. Alle Rechte vorbehalten.
KAPITEL 3 Vererbung und Casting Lektion 1: Implementieren von Vererbung Generalisierung und Spezialisierung erläutern Vererbung implementieren bei der Vererbung auf Komponenten von Klassen zugreifen Lektion 2: Implementieren von Up-Casts mithilfe von Vererbung Up-Casts mithilfe von Vererbung implementieren Lektion 3: Implementieren von Polymorphie mithilfe von Vererbung Polymorphie erläutern Polymorphie mithilfe von Vererbung implementieren Lektion 4: Implementieren von Down-Casts mithilfe von Vererbung Down-Casts mithilfe von Vererbung implementieren Klassenhierarchien modellieren Copyright. Alle Rechte vorbehalten. 5
Kapitel 3: Vererbung und Casting 6 Copyright. Alle Rechte vorbehalten.
KAPITEL 4 Interfaces und Casting Lektion 1: Definieren und Implementieren lokaler Interfaces Einsatzgebiete für Interfaces erläutern Generalisierungs- und Spezialisierungsbeziehungen durch Interfaces realisieren Lektion 2: Polymorphie mithilfe von Interfaces implementieren Polymorphie mithilfe von Interfaces implementieren Lektion 3: Verknüpfen von Klassenmodellen mithilfe von Interfaces Down-Casts mit Interfaces implementieren verschiedene Teilmodelle mithilfe von Interfaces integrieren Interface-Hierarchien anlegen und verwenden Copyright. Alle Rechte vorbehalten. 7
Kapitel 4: Interfaces und Casting 8 Copyright. Alle Rechte vorbehalten.
KAPITEL 5 Objektorientierte Ereignisse Lektion 1: Implementieren von Ereignissen in lokalen Klassen ereignisgesteuerte Methodenaufrufe implementieren Ereignisse auslösen und behandeln auf Ereignisse registrieren Sichtbarkeitsbereiche bei der Ereignisbehandlung erläutern Lektion 2: Implementieren von Ereignissen in lokalen Interfaces Ereignisse in lokalen Interfaces implementieren Copyright. Alle Rechte vorbehalten. 9
Kapitel 5: Objektorientierte Ereignisse 10 Copyright. Alle Rechte vorbehalten.
KAPITEL 6 Objektorientierte Repository- Objekte Lektion 1: Anlegen globaler Klassen globale Klassen anlegen globale Klassen testen globale Klassen verwenden Lektion 2: Definieren und Implementieren globaler Interfaces globale Interfaces definieren und implementieren lokale Klassen und Interfaces importieren Lektion 3: Implementieren der Vererbung in globalen Klassen UML-Diagramme für globale Klassen erzeugen die Vererbung in globalen Klassen implementieren mit globalen Klassen umgehen den Refactoring Assistenten verwenden Copyright. Alle Rechte vorbehalten. 11
Kapitel 6: Objektorientierte Repository-Objekte 12 Copyright. Alle Rechte vorbehalten.
KAPITEL 7 Beispiele für objektorientiertes ABAP Lektion 1: Implementieren eines einfachen ABAP List Viewer (ALV) einen einfachen ABAP List Viewer (ALV) implementieren ein Doppelklick-Ereignis für ABAP List Viewer (ALV) implementieren Lektion 2: Implementieren von Business Add-Ins (BAdIs) Business Add-Ins (BAdIs) beschreiben Copyright. Alle Rechte vorbehalten. 13
Kapitel 7: Beispiele für objektorientiertes ABAP 14 Copyright. Alle Rechte vorbehalten.
KAPITEL 8 Objektorientierte Design Patterns Lektion 1: Implementieren spezieller objektorientierter Techniken abstrakte Klassen implementieren finale Klassen implementieren auf interne Tabellen mit Objektreferenzen zugreifen Navigationsmethoden aufrufen die Sichtbarkeit des Instanzkonstruktors einschränken Lektion 2: Implementieren des Singleton-Patterns Factory-Methoden implementieren das Singleton-Pattern implementieren Lektion 3: Implementieren von Factory-Klassen mithilfe von Freundschaft Freundschaftsbeziehungen implementieren Lektion 4: Implementierung persistenter Objekte Persistenzdienste erklären persistente Klassen untersuchen persistente Objekte erzeugen Copyright. Alle Rechte vorbehalten. 15
Kapitel 8: Objektorientierte Design Patterns Daten mit persistenten Objekten lesen OO-Transaktionen anlegen 16 Copyright. Alle Rechte vorbehalten.
KAPITEL 9 Objektorientierte Ausnahmebehandlung Lektion 1: Behandlung von klassenbasierten Ausnahmen klassenbasierte Ausnahmen erklären klassenbasierte Ausnahmen behandeln klassenbasierte Ausnahmen debuggen Lektion 2: Definieren und Auslösen von Ausnahmen globale Ausnahmeklassen definieren klassenbasierte Ausnahmen auslösen Ausnahmen propagieren Lektion 3: Implementierung erweiterter Ausnahmebehandlungstechniken die Hierarchie vordefinierter Ausnahmeklassen erklären unterschiedliche Möglichkeiten der Ausnahmebehandlung beschreiben einen Neuversuch nach Ausnahmen durchführen wiederaufsetzbare Ausnahmen implementieren Ausnahmen erneut auslösen Ausnahmen aufeinander abbilden Copyright. Alle Rechte vorbehalten. 17
Kapitel 9: Objektorientierte Ausnahmebehandlung 18 Copyright. Alle Rechte vorbehalten.
KAPITEL 10 Run Time Type Services Lektion 1: Implementieren der Run Time Type Identification die Run Time Type Identification (RTTI) erklären Strukturtypeigenschaften zur Laufzeit abfragen Objekttypeigenschaften zur Laufzeit abfragen Lektion 2: Implementierung der Run Time Type Creation RTTC implementieren einen Tabellentyp zur Laufzeit anlegen Copyright. Alle Rechte vorbehalten. 19
Kapitel 10: Run Time Type Services 20 Copyright. Alle Rechte vorbehalten.
KAPITEL 11 Fortgeschrittene Techniken der objektorientierten Programmierung mit ABAP Lektion 1: Fortgeschrittene Techniken der objektorientierten Programmierung mit ABAP Shared Objects erklären ABAP-Unit-Tests erklären Copyright. Alle Rechte vorbehalten. 21
Kapitel 11: Fortgeschrittene Techniken der objektorientierten Programmierung mit ABAP 22 Copyright. Alle Rechte vorbehalten.
KAPITEL 12 Fallstudie Lektion 1: Entwicklung objektorientierter Fallstudien eine objektorientierte Fallstudie entwickeln Copyright. Alle Rechte vorbehalten. 23