Aufgrund einer technischen Störung sind wir derzeit telefonisch nicht erreichbar. Wir arbeiten bereits an der Behebung. Vielen Dank für Ihr Verständnis.

Roth | Kundeneigene Erweiterungen mit ABAP | E-Book | www.sack.de
E-Book

E-Book, Deutsch, 594 Seiten

Reihe: SAP Press

Roth Kundeneigene Erweiterungen mit ABAP

Das umfassende Handbuch
1. Auflage 2019
ISBN: 978-3-8362-8209-3
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection

Das umfassende Handbuch

E-Book, Deutsch, 594 Seiten

Reihe: SAP Press

ISBN: 978-3-8362-8209-3
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection



Über dieses Buch

Alle Technologien in einem Band! Ob Sie zukunftssichere Erweiterungen programmieren oder mit den Modifikationen in Ihren SAP-Systemen aufräumen möchten – hier erhalten Sie das erforderliche Wissen. Jede Methode wird ausführlich und mit Codebeispielen erläutert: User-Exits, klassische und neue BAdIs, Business Transaction Events, implizite und explizite Erweiterungspunkte u. v. m.

Aus dem Inhalt:

  • Klassische Erweiterungstechniken und Modifikationen
  • Enhancement Framework
  • Erweiterungskonzept für SAP S/4HANA
  • Erweiterung des ABAP Dictionary
  • User-Exits
  • Customer-Exits
  • Klassische und neue BAdIs
  • Business Transaction Events
  • Implizite und explizite Erweiterungspunkte
  • Modifikationsabgleich
  • Erweiterung von CDS, BOPF, AMDP, SAP Fiori
  • Erweiterung von IMG, IDocs, BAPIs
  • Erweiterungsmöglichkeiten bereitstellen


Felix Roth ist selbstständiger ABAP-Trainer, -Entwickler und Berater (LOOP AT Consulting). Er berät Kunden in verschiedenen Entwicklungsprojekten und beschäftigt sich vor allem mit den neuesten SAP-Technologien. Seit 2014 hält er regelmäßig SAP-Schulungen, u.a. beim Rheinwerk Verlag.
Roth Kundeneigene Erweiterungen mit ABAP jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


  Einleitung ... 17

  1.  Erweiterungstechniken von SAP im Überblick ... 21


       1.1 ... Modifikationen ... 22

       1.2 ... User Exits ... 22

       1.3 ... Customer Exits ... 23

       1.4 ... Klassische Business Add-ins ... 23

       1.5 ... Business Transaction Events ... 24

       1.6 ... Enhancement Framework ... 25

       1.7 ... Abgleich von Erweiterungen ... 29

       1.8 ... Vererbung und Redefinition von Klassen ... 29

       1.9 ... CDS Views erweitern ... 30

       1.10 ... Geschäftsobjekte erweitern ... 31

       1.11 ... ABAP Managed Database Procedures erweitern ... 31

       1.12 ... OData-Services erweitern ... 32

       1.13 ... Fiori-Apps erweitern ... 33

       1.14 ... BAPI-Funktionsbausteine erweitern ... 34

       1.15 ... IDocs erweitern ... 35

       1.16 ... Zusammenfassung ... 35

TEIL I  Klassische Erweiterungstechniken ... 37

  2.  Erweiterung des ABAP Dictionarys ... 39


       2.1 ... Strukturerweiterungen ... 39

       2.2 ... Suchhilfenerweiterungen ... 42

       2.3 ... Indexerweiterungen ... 47

       2.4 ... Einzelwerterweiterung ... 48

       2.5 ... Zusammenfassung ... 50

  3.  Modifikationen ... 51


       3.1 ... Modifikationen am Quelltext ... 52

       3.2 ... Modifikationen an ABAP-Dictionary-Objekten ... 56

       3.3 ... User Exits ... 60

       3.4 ... Abgleich von Modifikationen und Erweiterungen ... 64

       3.5 ... Zusammenfassung ... 73

  4.  Customer Exits ... 75


       4.1 ... Customer Exits implementieren ... 75

       4.2 ... Funktions-Exits finden ... 85

       4.3 ... Menüerweiterungen ... 89

       4.4 ... Screenerweiterungen ... 98

       4.5 ... Zusammenfassung ... 112

  5.  Klassische Business Add-ins ... 113


       5.1 ... Ein klassisches BAdI implementieren ... 114

       5.2 ... Aufruf eines klassischen BAdIs ... 119

       5.3 ... Klassische BAdIs finden ... 121

       5.4 ... Filtersteuerung ... 123

       5.5 ... Menüerweiterungen ... 126

       5.6 ... Screenerweiterung ... 135

       5.7 ... Zusammenfassung ... 153

  6.  Business Transaction Events ... 155


       6.1 ... Einführung ... 155

       6.2 ... Ein BTE implementieren ... 160

       6.3 ... BTEs finden ... 167

       6.4 ... Zusammenfassung ... 169

  7.  Vererbung von Klassen ... 171


       7.1 ... Vererbung ... 171

       7.2 ... Redefinition ... 179

       7.3 ... Zusammenfassung ... 182

TEIL II  Erweiterungstechniken des Enhancement Frameworks ... 183

  8.  Das Enhancement Framework ... 185


       8.1 ... Architektur des Enhancement Frameworks ... 185

       8.2 ... Mit dem Enhancement Framework arbeiten ... 189

       8.3 ... Zusammenfassung ... 193

  9.  Implizite Erweiterungspunkte ... 195


       9.1 ... Erweiterungen am Kopf und Fuß von Entwicklungsobjekten ... 196

       9.2 ... Erweiterungen von globalen Klassen ... 200

       9.3 ... Erweiterung von Methoden ... 201

       9.4 ... Erweiterung von lokalen Klassen ... 203

       9.5 ... Funktionsbausteinerweiterungen ... 204

       9.6 ... Debugging impliziter Erweiterungspunkte ... 206

       9.7 ... Zusammenfassung ... 208

10.  Explizite Erweiterungsoptionen ... 209


       10.1 ... Erweiterungspunkte ... 209

       10.2 ... Erweiterungssektionen ... 212

       10.3 ... Explizite Erweiterungsoptionen finden ... 215

       10.4 ... Zusammenfassung ... 218

11.  Neue Business Add-ins ... 219


       11.1 ... Quelltexterweiterungen ... 221

       11.2 ... Filtersteuerung ... 234

       11.3 ... Menüerweiterungen ... 239

       11.4 ... Screenerweiterungen ... 246

       11.5 ... Migration klassischer BAdIs ... 261

       11.6 ... Mehrfachverwendung von BAdIs ... 267

       11.7 ... Zusammenfassung ... 269

12.  Das Switch Framework ... 271


       12.1 ... Architektur des Switch Frameworks ... 272

       12.2 ... Mit dem Switch Framework arbeiten ... 276

       12.3 ... Zusammenfassung ... 287

13.  Erweiterungen mit Transaktion SPAU_ENH abgleichen ... 289


       13.1 ... Abgleich durchführen ... 290

       13.2 ... Zusammenfassung ... 296

TEIL III  Erweiterbarkeit neuer Entwicklungstechnologien ... 297

14.  Erweiterung von CDS Views ... 299


       14.1 ... CDS-View-Erweiterungen ... 300

       14.2 ... Indirekte Erweiterung mit Extension Include Views ... 311

       14.3 ... CDS-Metadatenerweiterungen ... 314

       14.4 ... Zusammenfassung ... 317

15.  Erweiterung von ABAP Managed Database Procedures ... 319


       15.1 ... Ein AMDP-BAdI implementieren ... 319

       15.2 ... Aufruf einer AMDP-BAdI-Methode ... 322

       15.3 ... Zusammenfassung ... 324

16.  Erweiterung von Geschäftsobjekten ... 325


       16.1 ... Klassische Möglichkeiten der Erweiterung ... 326

       16.2 ... Erweiterungsobjekt anlegen ... 333

       16.3 ... Zusätzlichen Unterknoten anlegen ... 336

       16.4 ... Knotenfunktionen erweitern ... 341

       16.5 ... Zusammenfassung ... 349

17.  Erweiterung von OData-Services ... 351


       17.1 ... OData-Services überdefinieren ... 352

       17.2 ... Standardfall: Entitätstyp mit Struktur ... 359

       17.3 ... Sonderfall: Entitätstyp ohne Struktur ... 374

       17.4 ... Erweiterten Service testen ... 382

       17.5 ... Zusammenfassung ... 384

18.  Erweiterung von SAP-Fiori-Apps ... 385


       18.1 ... In-App-Erweiterungen mit webbasierten Werkzeugen ... 386

       18.2 ... Programmatische Erweiterung ... 400

       18.3 ... Zusammenfassung ... 412

TEIL IV  Weiterführende Themen ... 415

19.  Erweiterungen in eigenen Anwendungen bereitstellen ... 417


       19.1 ... Explizite Erweiterungspunkte bereitstellen ... 418

       19.2 ... Erweiterungssektionen bereitstellen ... 421

       19.3 ... Erweiterungsspot verwalten ... 423

       19.4 ... Neue Business Add-ins bereitstellen ... 425

       19.5 ... Menüerweiterungen ermöglichen ... 443

       19.6 ... Screenerweiterungen ermöglichen ... 448

       19.7 ... AMDP-BAdI anlegen ... 454

       19.8 ... Zusammenfassung ... 461

20.  Erweiterung von Web-Dynpro-Anwendungen ... 463


       20.1 ... Erweiterungsimplementierung anlegen ... 464

       20.2 ... Controller erweitern ... 466

       20.3 ... Views erweitern ... 470

       20.4 ... Windows erweitern ... 474

       20.5 ... Eine Web-Dynpro-Komponente erweitern ... 476

       20.6 ... Zusammenfassung ... 495

21.  Erweiterung des Code Inspectors ... 497


       21.1 ... Einführung in den Code Inspector ... 498

       21.2 ... Code Inspector um eigene Prüfungen erweitern ... 500

       21.3 ... Zusammenfassung ... 515

22.  Erweiterung von BAPIs ... 517


       22.1 ... Übergabe kundeneigener Felder mit EXTENSIONIN ... 518

       22.2 ... Auslesen kundeneigener Felder mit EXTENSIONOUT ... 525

       22.3 ... Zusammenfassung ... 526

23.  Erweiterung des Einführungsleitfadens ... 527


       23.1 ... Eigenen Einführungsleitfaden anlegen ... 528

       23.2 ... Eine Erweiterung des Standardeinführungsleitfadens anlegen ... 534

       23.3 ... Zusammenfassung ... 538

24.  Erweiterung von IDocs ... 539


       24.1 ... Erweiterung für ein IDoc anlegen ... 540

       24.2 ... IDoc-Erweiterung testen ... 548

       24.3 ... Zusammenfassung ... 555

  Anhang ... 557


       A ... Beschaffung von Daten: Arbeitsspeicher ... 559

       B ... Beschaffung von Daten: Dirty Assign ... 563

       C ... Mögliche Konfliktfälle beim Abgleich von Erweiterungen in Transaktion SPAU_ENH ... 567

       D ... Fragen und Antworten zum Verständnis dieses Buches ... 573

       E ... Der Autor ... 583

  Index ... 585


1.6    Enhancement Framework


Das Enhancement Framework wurde mit dem Release SAP NetWeaver 7.0 im Jahr 2004 eingeführt. Es stellt für mehrere neue modifikationsfreie Erweiterungstechnologien eine Reihe von Transaktionen bereit. Zur besseren Übersicht wurde eine Organisationsstruktur eingeführt, um die systemübergreifenden Erweiterungsoptionen (und Ihre Implementierungen) verwalten zu können. So können Sie beispielsweise auf Anhieb entwicklungsobjektübergreifende Erweiterungen erkennen und diese direkt im System dokumentieren.

Die Haupttransaktion zur Arbeit mit dem Enhancement Framework ist SE20. Ich behandle das Enhancement Framework und seine Komponenten in Teil II dieses Buches.

Nach der Lektüre sollten Sie folgende Verständnisfragen beantworten können:

  • Mit welchen Funktionen aktivieren und deaktivieren Sie den Erweiterungsmodus?

  • Woran können Sie erkennen, dass für ein SAP-Entwicklungsobjekt eine Erweiterung im Rahmen des Enhancement Frameworks angeboten wird?

  • Werden Erweiterungsimplementierungen immer durchlaufen?

  • Können Sie für Ihre eigenen Entwicklungen eigene BAdIs und Erweiterungsoptionen anlegen, damit Ihre Kunden Ihre Produkte erweitern können?

  • Sehen Sie die Implementierungen zu einer Erweiterung im Debugger?

1.6.1    Explizite Erweiterungspunkte


Bei expliziten Erweiterungspunkten handelt es sich wie bei User Exits und den Quelltexterweiterungen von User Exits um Stellen zur Erweiterung, die SAP im Quelltext vorgesehen hat. Diese sind modifikationsfrei und werden durch die Anweisung ENHANCEMENT-POINT eingeleitet. Im Rahmen einer Erweiterungsimplementierung können Sie nach einer solchen Anweisung eigenen Quelltext hinzufügen.

Explizite Erweiterungspunkte behandle ich in Kapitel 10, »Explizite Erweiterungsoptionen«.

Nach der Lektüre dieses Buches sollten Sie folgende Verständnisfragen beantworten können:

  • Wie können Sie einen expliziten Erweiterungspunkt implementieren?

  • Wie können Sie eine Erweiterungsimplementierung zu einem expliziten Erweiterungspunkt wieder entfernen?

  • Kann ein expliziter Erweiterungspunkt mehrfach implementiert werden?

1.6.2    Explizite Erweiterungssektionen


Bei expliziten Erweiterungssektionen handelt es sich um von SAP vorgesehene Stellen im Quelltext, an denen der originale Quelltext ersetzt werden kann. Der zu ersetzende Quelltext wird dazu von den Anweisungen ENHANCEMENT-SECTION und END-ENDENHANCEMENT-SECTION eingeschlossen.

Durch eine an dieser Stelle eingefügte Erweiterungsimplementierung wird der originale Quelltext nicht mehr ausgeführt (auch wenn dieser nicht auskommentiert wurde). Stattdessen wird der durch die Erweiterungsimplementierung hinzugefügte Quelltext ausgeführt.

Explizite Erweiterungssektionen behandle ich ebenfalls in Kapitel 10, »Explizite Erweiterungsoptionen«.

Nach der Lektüre dieses Buches sollten Sie folgende Verständnisfrage beantworten können:

  • Kann eine explizite Erweiterungssektion mehrfach implementiert werden?

1.6.3    Implizite Erweiterungspunkte


Implizite Erweiterungspunkte sind Erweiterungspunkte, die die Möglichkeit bieten, Erweiterungen an von SAP nicht (explizit) vorgesehen Stellen durchzuführen. Zu diesen Stellen zählen insbesondere der Kopf- und Fußteil folgender Definitionen:

  • Funktionsbausteine (FUNCTION ... ENDFUNCTION)

  • Methoden (METHOD ... ENDMETHOD)

  • Formroutinen (FORM ... ENDFORM)

  • Includes (INCLUDE, nur am Ende)

  • lokale Typangaben (TYPES: BEGIN OF bzw. DATA: BEGIN OF, nur am Ende)

  • Erweiterungspunkte und Erweiterungssektionen (auch Erweiterungen können nochmals erweitert werden)

Zusätzlich gibt es für lokale Klassen spezielle Stellen am Ende jedes Sichtbarkeitsbereichs sowie vor den Methodendefinitionen und am Ende einer lokalen Klasse.

Neben diesen Stellen lassen sich aber auch globale Klassen und Interfaces, Funktionsbausteine und Web-Dynpro-Komponenten erweitern. Bei globalen Klassen und Interfaces betrifft dies die Attribute, Interfaces, Ereignisse und die verwendeten Typen. Bei Funktionsbausteinen haben Sie zumindest die Möglichkeit, die Schnittstelle um neue Parameter zu erweitern.

In Web Dynpro ABAP gehen die Erweiterungsmöglichkeiten noch einen Schritt weiter: Hier können Sie jegliche Stellen, wie z.B. Controller oder den dazugehörigen Context, erweitern. Aber auch bestehende Oberflächen können Sie komplett modifizieren, also z.B. Elemente entfernen oder hinzufügen.

Implizite Erweiterungspunkte behandle ich in Kapitel 9, während die Erweiterung von Web-Dynpro-Komponenten in Kapitel 20 beschrieben wird.

Nach der Lektüre dieses Buches sollten Sie folgende Verständnisfragen beantworten können:

  • Wie können Sie sich die impliziten Erweiterungspunkte im Quelltext anzeigen lassen?

  • Worauf müssen Sie achten, wenn Sie einen Funktionsbaustein erweitern möchten?

  • Wie können Sie die Methoden einer globalen Klasse erweitern?

  • Warum sollten Sie sparsam mit impliziten Erweiterungen umgehen?

  • Wann sollten Sie zusammengesetzte Erweiterungsimplementierungen einsetzen?

1.6.4    Neue Business Add-ins


Mit der Einführung des Enhancement Frameworks wurden auch die klassischen BAdIs komplett überarbeitet und in die neue Architektur eingebettet. BAdIs sind nun keine losgelösten Erweiterungen mehr, sondern werden als explizite Erweiterungsoption immer einem Erweiterungsspot zugeordnet. Einem Erweiterungsspot können auch mehrere BAdIs zugeordnet sein (aber ausschließlich BAdIs und keine Erweiterungspunkte).

An der grundlegenden Funktionsweise der BAdIs hat sich dagegen nicht viel geändert: Die neuen BAdIs sind, wie klassische BAdIs auch, bereits an festen Stellen der Standardanwendungen vorgegeben und wurden objektorientiert realisiert. Sie können damit sowohl Quelltext als auch Menüs und Oberflächen erweitern.

Die Beschaffung eines BAdIs wird im Quelltext durch die Anweisung GET BADI realisiert, während die BAdI-Methoden mit der Anweisung CALL BADI aufgerufen werden. Durch die Suche nach diesen Anweisungen können Sie die dazugehörigen BAdIs finden und anhand des Typs der verwendeten Referenzvariablen identifizieren.

Die wesentlichen Transaktionen zur Arbeit mit BAdIs sind SE18 (BAdI-Builder: Definitionen) und SE19 (BAdI-Builder: Implementierungen). Neue BAdIs behandle ich in Kapitel 4, »Customer Exits«.

Nach der Lektüre dieses Buches sollten Sie folgende Verständnisfragen beantworten können:

  • Können Sie jedes BAdI implementieren?

  • Können Sie BAdIs mehrfach implementieren?

1.6.5    Switch Framework


Das Switch Framework ergänzt das Enhancement Framework und dient der Steuerung der Sichtbarkeit von Repository-Objekten, d.h. insbesondere von Erweiterungen. Diese Technologie wird vor allem für die SAP-Branchenlösungen (Industry Solutions) und die Enhancement Packages (EHPs) verwendet. Diese Komponenten werden zwar bereits mit dem Standardsystem ausgeliefert, aber zunächst nicht angeschaltet. Sie sind damit anfangs noch nicht verwendbar. Als SAP-Kunde können Sie diese Komponenten bei Bedarf aktivieren und somit neue Funktionalität im System verwenden.

Die Entwicklungsobjekte werden dazu im Switch Framework gruppiert und einem Schalter zugeordnet. Je nach Schalterstellung sind die Entwicklungsobjekte sichtbar oder unsichtbar.

Bei der...


Roth, Felix
Felix Roth ist selbstständiger ABAP-Trainer, -Entwickler und Berater (LOOP AT Consulting). Er berät Kunden in verschiedenen Entwicklungsprojekten und beschäftigt sich vor allem mit den neuesten SAP-Technologien. Seit 2014 hält er regelmäßig SAP-Schulungen, u.a. beim Rheinwerk Verlag.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.