SAP-Praxishandbuch – ABAP Teil 1: Konzeption, Entwicklung, Debugging

Auf der Grundlage langjähriger Entwicklungserfahrung habe ich Methoden und Verfahren gesammelt, die tagtäglich für die Umsetzung von Kundenanforderungen benötigt werden. Dieser so entstandene Werkzeugkasten geht über das reine ABAP-Grundlagenwissen hinaus, das für das Verständnis dieses Buches vorausgesetzt wird.

SAP-Praxishandbuch – ABAP Teil 1: Konzeption, Entwicklung, Debugging

SAP-Praxishandbuch ABAP: Teil I: Konzeption, Entwicklung und Debugging
  • 330 Seiten - 30.01.2015 (Veröffentlichungsdatum) - Espresso Tutorials (Herausgeber)

Es werden Themen behandelt, die der professionelle Entwickler täglich anwendet und sonst nur durch den Besuch vieler ABAP-Seminare erfährt. Wenige Entwickler verwenden das komplette ABAP-Repertoire. Die meisten nutzen lediglich einen Bruchteil dessen, was ABAP bietet – die Essenz aus ABAP, die sie für ihre täglichen Arbeiten benötigen.

Das ist es, was sie zu professionellen ABAP-Entwicklern macht.

Anforderungen und die Konzeption einer Lösung

Am Anfang jeder Entwicklung steht ein Kundenwunsch. In diesem Kapitel wird daher eine Anforderung aus der Praxis dargestellt. Ich zeige Ihnen auf, wie aus dem Kundenwunsch ein Konzept zur Realisierung der Anforderung in SAP entsteht. Bei den weiteren Erläuterungen von Methoden und Verfahren wird dieses Beispiel soweit als möglich zugrunde gelegt.

»Ärmel aufkrempeln genügt nicht mehr – jetzt brauchen wir Konzepte«. Dieser bedeutende Satz eines Vertriebs-Mitarbeiters zeigt ein heute leider noch immer existierendes Phänomen: Dem Kunden werden Funktionalitäten versprochen, die nicht oder zumindest nicht in der gewünschten Form umzusetzen sind. Der Aufwand und die Dauer der Entwicklungen werden unterschätzt. Oder aber der Entwickler erhält unzureichende Beschreibungen von dem, was er umsetzen soll.

Und so schlittern IT-Dienstleister von einem Desaster zum nächsten, und die Enttäuschungen beim Kunden wachsen.

Was unternommen werden kann, um diese Situation zu entschärfen:

  • Beteiligen Sie die Entwickler an den Kundengesprächen.
  • Lassen Sie den Entwicklungsaufwand nur von erfahrenen Entwicklern abschätzen.
  • Vereinbaren Sie Termine zwischen Anwendern und Entwicklern, in denen die geforderten Funktionalitäten abgestimmt werden.
  • Fassen Sie die so diskutierten Anforderungen schriftlich zusammen.
  • Lähmen Sie die Entwickler nicht durch ein aufgeblasenes Projekt-Controlling.
  • Vereinbaren Sie Testmodalitäten, d.h. Testfälle sowie deren Umfang, Test-Mitarbeiter und Testdauer.
  • Stellen Sie rechtzeitig hinreichende Hardware-Ressourcen zur Verfügung.
  • Schulen Sie die Anwender kurz vor der Produktivsetzung in den neuen Anwendungen.
  • Dokumentieren Sie die Entwicklungen in der Form, dass zum einen der Anwender begreift, wozu er die Entwicklungen nutzen kann, und zum anderen Sie einen anderen ABAP-Entwickler in die Lage versetzen, Ihre Arbeiten zu erweitern bzw. zu warten.

Eine Anforderung aus der Praxis

In Gesprächen zwischen dem Energieversorger und dem IT-Dienstleister ergeben sich folgende Anforderungen:

  • Die Vertragskonten des Kunden sollen als Kontoklasse die neue Kontoklasse »First Customer« erhalten.
  • Ein Geschäftspartner mit einem Vertragskonto der Kontoklasse »First Customer« soll für die Kundenbetreuer in der Geschäftspartner-Verwaltung kenntlich gemacht werden.
  • Im SAP Customer Interaction Center (CIC) soll der »First Customer« durch einen besonderen Eintrag in den Geschäftspartner-Kontakten kenntlich gemacht werden.

Vorüberlegungen zur Umsetzung der Anforderungen

Wie aus den Anforderungen hervorgeht, ist die Kennzeichnung der »First Customer« in verschiedenen SAP-Standard-Programmen erforderlich.

  1. Die Kennzeichnung im Vertragskonto erfordert das Einstellen (sogenanntes Customizen) einer neuen Kontoklasse.
  2. Die Darstellung eines »First Customers« in der Geschäftspartner-Verwaltung erfordert zusätzliche Felder in der Anzeige des Geschäftspartners.
  3. Die Zuordnung von Rahmenverträgen zu den Verträgen des Geschäftspartners erfordert zusätzliche Ein- und Auf die »fallenträchtige« ProgrammierungAusgabefelder in der SAP-Vertragsverwaltung.

Das Grob-Konzept der Lösung

Das Datenmodell ist die Grundlage jeder Entwicklung. Ein ABAP-Entwickler muss wissen, wo welche Daten zu finden sind, ob bestehende SAP-Standardtabellen erweitert werden können und ob das Anlegen einer neuen kundeneigene Tabelle erforderlich ist.

Das Detail-Konzept der Lösung

Anpassungen von SAP-Standard-Programmen
Anzeige der Kontoklasse »First Customer« im Vertragskonto

Diese Anzeige wird durch das Einstellen (Customizen) der neuen Kontoklasse in der Prüftabelle zum Feld Kontoklasse des Vertragskontos erzielt. Das Customizing wird im zweiten Teil des »SAP-Praxishandbuchs ABAP« behandelt.

Anzeige von »First Customer« im Geschäftspartner

Für modifikationsfreie Erweiterungen im Geschäftspartner werden die Transaktionen BUPT und BUCO verwendet. Die Lösung dieser Problemstellung finden Sie im zweiten Teil vom »SAP-Praxishandbuch ABAP«, im Kapitel »Änderungen und Erweiterungen im SAP-Standard«.

Das SAP Data Dictionary

Grundlage einer jeden ABAP-Entwicklung sind die Daten, die durch das Programm verarbeitet werden. Vor der ersten Programmierzeile muss sich der Entwickler im Klaren sein, wo die zu bearbeitenden Daten zu finden sind und in welcher Form sie im SAP-System gespeichert werden.

Ein SAP-System verfügt über Zigtausende von Datenbanktabellen. Diese enthalten Daten oder werden als Prüftabellen für Einträge in den Datenbanktabellen verwendet. Um den Überblick über diese Informationsfülle zu behalten, wurde das Data Dictionary als das zentrale Hilfsmittel zur Verfügung gestellt.

Die SE11 – Einstieg zum Dictionary

SAP-Praxishandbuch ABAP - Teil 1 - Transaktion SE11
Abbildung 2.1: Die Transaktion SE11 – das Data Dictionary

Das Data Dictionary ermöglicht das Anlegen, Ändern, Prüfen, Aktivieren, Löschen und Kopieren von

  • Tabellen,
  • Views,
  • Datentypen (Datenelementen, Strukturen und Tabellentypen),
  • Typgruppen,
  • Domänen,
  • Suchhilfen,
  • Sperrobjekten.

Tabelleneigenschaften

Besitzt eine Tabelle wie in Abbildung 2.4 als erstes Schlüsselfeld das Feld »MANDT« bzw. »CLIENT« mit dem Datenelement »MANDT«, so ist die Tabelle mandantenabhängig. Das bedeutet, dass die jeweiligen Tabelleneinträge nur in dem genannten SAP-Mandanten sichtbar sind.

SAP-Praxishandbuch ABAP - Teil 1 - Tabelle BUT000
Abbildung 2.4: Die mandantenabhängige Tabelle BUT000

Tabellenindizes

Damit in Tabellen mit vielen Datensätzen die benötigten Datensätze möglichst schnell gefunden werden, werden sogenannte Tabellenindizes angelegt. Ein erster Index entsteht automatisch bei der Definition von Primärschlüsselfeldern der Tabelle.

Als Beispiel dient die Datenbanktabelle für Vertragskonten (FKKVKP). Diese Tabelle hat die Primärschlüssel »Mandant«, »Vertragskonto« und »Geschäftspartner«.

SAP-Praxishandbuch ABAP - Teil 1 - Tabelle FKKVKP
Abbildung 2.8: Die Tabelle FKKVKP für die Verwaltung von Vertragskonten

Richtig debuggen

Die SAP hat den Entwicklern vor geraumer Zeit einen neuen Debugger zur Verfügung gestellt. Der Debugger hat sich durch die Neuerungen zu einem sehr mächtigen Hilfsmittel entwickelt.

Klassischer und neuer ABAP-Debugger

Nach dem Start des Debuggers und der Eingabe einer Vertragsnummer wird der Debugger geöffnet. Durch das Icon wird der gewünschte Vertrag selektiert. Der Debugger springt unverzüglich an.

SAP-Praxishandbuch ABAP - Teil 1 - Debugger
Abbildung 3.1: Der klassische Debugger

Der klassische Debugger besitzt folgende Bildschirmbereiche (Abbildung 3.1):

  1.    Pull-down-Menü,
  2. Icon-Leiste,
  3. Button-Leiste,
  4. Beschreibung des angezeigten Programms,
  5. Quellcode mit der aktuellen Position des Programms (blauer Pfeil),
  6. Variablenbereich, in dem zunächst Felder angezeigt werden können
  7. Zeile für System-Variablen (z.B. den SY-SUBRC).

Debugger starten, beenden und wechseln

Sie können den Debugger über zwei Wege starten:

  • Es wird ein Programm aufgerufen, und der Debugger wird über die Eingabe von /h in der Kommandozeile eingeschaltet.
  • Der Entwickler setzt im ABAP-Editor an der Stelle einen Breakpoint, an der das Programm anhalten soll.

Breakpoint bei Anweisung – erste Wahl bei der Fehlersuche

Leider sind Fehlermeldungen in vielen Fällen nicht sprechend, d.h., der Anwender erhält eine Fehlermeldung, die den ursächlichen Fehler nicht beschreibt. Für die Fehleranalyse, ausgelöst durch SAP-Standard-Programme oder Kundenentwicklungen, ist der Debugger zur Fehleranalyse die erste Wahl.

Das folgende Beispiel ist konstruiert, aber in der Praxis durchaus oft zu finden. Dazu starten wir folgende Kundenentwicklung zur Umstellung von Ableseeinheiten (siehe Abbildung 3.5).

SAP-Praxishandbuch ABAP - Teil 1 - Ableseinheiten
Abbildung 3.5: Start der Kundenentwicklung zur Umstellung von Ableseeinheiten

Nach dem Programmstart erhält der Anwender in der Statuszeile die Meldung »Unzureichendes Customizing« – eine Fehlermeldung ohne Aussagekraft! Aus ihr wird nicht ersichtlich, um welchen Fehler es sich handelt und wie der Fehler behoben werden kann.

ABAP-Entwicklung

In diesem Kapitel werde ich Ihnen spezielle, immer wieder oder zumindest oft benötigte Verfahren und Methoden in der ABAP-Entwicklung vorstellen.

Dokumentation von Programmen

Kunden von IT-Dienstleistern zahlen mitunter eine beachtliche Summe für die Entwicklung von Programmen. Im Gegenzug hat der Entwickler die Aufgabe, das Programm in einer Form zu dokumentieren, die es dem unerfahrenen Anwender ermöglicht, zu verstehen, welche Eingaben ein Programm erfordert, welche Funktion(en) es besitzt und welche Ergebnisse ein Programmlauf erzeugt.

SAP-Praxishandbuch ABAP - Teil 1 - Ableseinheiten
Abbildung 3.5: Start der Kundenentwicklung zur Umstellung von Ableseeinheiten

Strukturierung und Lesbarkeit von Programmen

Kundenentwicklungen werden im Regelfall über einen längeren Zeitraum genutzt, was impliziert, dass diese Entwicklungen aller Voraussicht nach Änderungen unterliegen. Diese Änderungen oder Erweiterungen können bereits nach kurzer Zeit oder erst nach Monaten oder Jahren erfolgen.

Kundenentwicklungen können auf ganz einfache Art strukturiert werden. Das Hauptprogramm steuert eine Reihe von Unterprogrammen, Funktionsbausteinen oder Methoden, in denen die eigentliche Programmlogik enthalten ist.

SAP-Praxishandbuch ABAP - Teil 1 - Programmstruktur
Abbildung 4.7: Eine lesbare Programmstruktur

Was bisher erreicht wurde

Ausgehend von der in Kapitel 1 dargestellten Anforderung aus der Praxis, sind Sie nun in der Lage, mit den bisher erläuterten Methoden folgende Lösungen zu erarbeiten:

  • Erstellung der kundeneigenen Tabelle ZRAHMENVERTRAG,
  • Erweiterung des Customer-Includes CI_EVER für die Zuordnung von Rahmenverträgen zu Versorgungsverträgen,
  • Einrichten der Tabelle ZRAHMENVERTRAG als Suchhilfe zum Feld »Rahmenvertrag« in der SAP-Tabelle EVER (Versorgungsverträge),
  • Anlegen einer Suchhilfe für die Auswahl von Rahmenverträgen in der SAP-Standard-Transaktion zum Ändern und Anlegen von Versorgungsverträgen.

Bis auf das Customizing der Prüftabelle »Kontoklasse« wurden damit alle Grundlagen für das Speichern neuer Daten mithilfe des Data Dictionaries geschaffen.

Ebenso können Sie komfortable Programme erstellen für

  • den Upload von Rahmenvertragsdaten,
  • die Umstellung der Vertragskonten auf eine neue Kontoklasse,
  • die Umstellung der Ableseeinheit über eine neue Zeitscheibe in den Anlagen,
  • die Erstellung spezifischer Geschäftspartnerkontakte mit einer neuen Kontaktklasse sowie
  • die Anpassung von Abschlagsplänen.

Um alle Anforderungen im vorgestellten Beispiel abzudecken, fehlen Methoden und Verfahren zur modifikationsfreien Erweiterung von SAP-Standard-Programmen. Diese werden im zweiten Teil des SAP-Praxishandbuchs erläutert.

SAP-Praxishandbuch - ABAP Teil 1: Konzeption, Entwicklung, Debugging 29,95 €
  • Anfänger
  • Fortgeschrittene
  • Experte
4

Das erwartet Sie:

SAP-Praxishandbuch - ABAP Teil 1: Konzeption, Entwicklung, DebuggingSeiten: 328- Sprache: de

Programmieranforderungen strukturieren, SAP Customer Include und Tabellen definieren.

  • Anforderungen und die Konzeption einer Lösung
  • Das SAP Data Dictionary verstehen und verwenden
  • Debuggen für Einsteiger und Fortgeschrittene