Rheinwerk < openbook > SAP-Wissen aus erster Hand
SAP-Wissen aus erster Hand.
 
Inhaltsverzeichnis
Vorwort zur vierten Auflage
1 ABAP und die ersten Schritte im SAP-System
2 ABAP Dictionary
3 Programmieren im ABAP Editor
4 Felder und Berechnungen
5 Modifikation von Zeichenketten
6 Debugging von Programmen
7 Modifikation von transparenten Datenbanktabellen
8 Rechnen mit Datum und Zeit, Mengen und Währungen
9 Mit Daten in einer Datenbanktabelle arbeiten
10 Programmablaufsteuerung und logische Ausdrücke
11 Selektionsbildschirme
12 Interne Tabellen
13 Modularisierung von Programmen
14 Weiterführende Themen
A Icons auf einen Blick
B Abkürzungsverzeichnis
C Die Autoren
Stichwortverzeichnis

Download:
- Beispielprogramme, ca. 23 KB

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Einstieg in ABAP von Karl-Heinz Kühnhauser, Thorsten Franz
Buch: Einstieg in ABAP

Einstieg in ABAP
Pfeil 13 Modularisierung von Programmen
Pfeil 13.1 Überblick
Pfeil 13.2 Quelltext-Module
Pfeil 13.3 Prozeduren
Pfeil 13.3.1 Unterprogramme
Pfeil 13.3.2 Funktionsbausteine
Pfeil 13.3.3 ABAP-Klassen
Pfeil 13.4 Speicherbereiche für Datenübergabe
Pfeil 13.4.1 Globales SAP Memory
Pfeil 13.4.2 Lokales SAP Memory
Pfeil 13.4.3 ABAP Memory
Pfeil 13.4.4 Shared Objects
Pfeil 13.5 Codebeispiele zur Modularisierung
Pfeil 13.6 Codebeispiele zum Aufruf fremder Reports
 
Zum Seitenanfang

13.2    Quelltext-Module Zur vorigen ÜberschriftZur nächsten Überschrift

Unser Codebeispiel aus dem letzten Kapitel, den Report Z_TEILNEHMERLISTE12_ITAB_WA (siehe Listing 12.1), kann man mit bereits gut 160 Zeilen Code nicht als übersichtlich und gut gegliedert bezeichnen. Wie würde eine solche »Spaghetti-Programmierung« erst nach 2.000 Zeilen aussehen?

Um den Report besser zu strukturieren und zu gliedern, kopieren Sie ihn zunächst in den Report Z_TEILNEHMERLISTE13. Für den Deklarationsteil legen Sie dort ein eigenes Include-Programm Z_TEILNEHMER_DEKLARATIONEN an, der alle Datendeklarationen enthalten soll. Mit folgender Anweisung binden Sie den Inhalt des Reports Z_TEILNEHMER_DEKLARATIONEN in Ihren Report Z_TEILNEHMERLISTE13 so ein, dass nach der Generierung ein einziges Laufzeitobjekt entsteht:

INCLUDE z_teilnehmer_deklarationen.

Den Namen eines Includes sollten Sie stets so wählen, dass die Zuordnung zum Hauptprogramm leicht erkennbar ist. (Wie Sie wissen, kann ein Include zwar theoretisch auch in mehreren Hauptprogrammen verwendet werden, dies ist aber aus den genannten Gründen eher von Nachteil und wird nicht empfohlen.)

Die Wirkung der Anweisung ist daher die gleiche, als wenn Sie den Quellcode des Include-Programms anstelle der INCLUDE-Anweisung in das Hauptprogramm kopiert hätten.

[»]  Sonderregelung

Beachten Sie eine kleine »Sonderregelung« für die INCLUDE-Anweisung: Sie muss vollständig in einer einzigen Zeile stehen, und es dürfen keine weiteren Anweisungen in dieser Zeile vorkommen.

Der Deklarationsteil des Hauptprogramms soll im Endstadium nur noch aus Kommentarzeilen und INCLUDE-Anweisungen bestehen, etwa:

* Deklarationsteil
INCLUDE z_teilnehmer_deklarationen.

Für das Anlegen des Include-Programms gibt es wiederum zwei Wege: Zum einen können Sie das Programm über die ABAP Workbench und den Einstiegsbildschirm im ABAP Editor anlegen, wie Sie bisher auch neue Reports angelegt haben; lediglich bei den Programmeigenschaften müssen Sie darauf achten, kein ausführbares Programm anzulegen, sondern ein Include-Programm (siehe Abschnitt 3.2, »ABAP Editor im Überblick«).

Der zweite Weg führt direkt aus dem ABAP Editor des Reports Z_TEILNEHMERLISTE13 durch Vorwärtsnavigation in den Editor des Include-Programms: Durch einen Doppelklick auf den Programmnamen beginnen Sie die Vorwärtsnavigation. Das Objekt existiert noch nicht, und das System fragt, ob das Objekt angelegt werden soll. Sie beantworten die Abfrage mit Ja. Danach legen Sie in diesem Beispiel das Objekt wieder als lokales Objekt an. In der Praxis würden Sie hier natürlich eine bestehende Auftragsnummer verwenden oder einen neuen Transportauftrag anlegen. Nach diesem Mausklick öffnet sich sofort wieder der ABAP Editor – Sie befinden sich allerdings in einem neuen Report und editieren nun das Include-Programm (siehe Abbildung 13.1).

Include-Programm editieren

Abbildung 13.1    Include-Programm editieren

Als Erstes sollte Ihnen auffallen, dass es im Quellcode keine REPORT-Anweisung gibt. Dies ist auch richtig so, denn es handelt sich nicht um einen ausführbaren Report. Wenn Sie über das Menü SpringenEigenschaften zu den Programmeigenschaften des Reports wechseln, sehen Sie auch, dass das System als Programmtyp ein Include-Programm angelegt hat (siehe Abbildung 13.2). Diesen Typ hätten Sie hier auch angeben müssen, wenn Sie das Include-Programm auf dem ersten angedeuteten Weg direkt über die ABAP Workbench angelegt hätten.

In dieses Include-Programm schreiben Sie nun alle nötigen Datendeklarationen, die zuvor im Report Z_TEILNEHMERLISTE12_ITAB_WA fast eine DIN-A4-Seite füllten, d. h. die Zeilen 12 bis 52. Nachdem Sie alle erforderlichen Anweisungen in das Include-Programm hineingeschrieben oder -kopiert haben, prüfen und aktivieren Sie dieses Programm, um es auch tatsächlich nutzen zu können. Mit dem Zurück-Button (inline image) kehren Sie in Ihr Hauptprogramm zurück.

Programmeigenschaften eines Include-Programms

Abbildung 13.2    Programmeigenschaften eines Include-Programms

[ ! ]  Schachtelungen möglich, aber nicht gut lesbar

Include-Programme sind schachtelbar, d. h. dass in einem Include-Programm ein anderes Include-Programm aufgerufen werden kann. Außerdem können beliebig viele INCLUDE-Anweisungen in einem solchen Report vorkommen. Für unser Beispiel hätten Sie demnach theoretisch für jede interne Tabelle ein eigenes INCLUDE anlegen können – zu beachten ist lediglich, dass die INCLUDE-Anweisung an der logisch richtigen Stelle im Quelltext stehen muss.

Es gibt (abschreckende) Beispiele von SAP-Standardprogrammen, bei denen die ersten beiden Programmebenen nur aus INCLUDE-Anweisungen bestehen und erst ab der dritten Ebene altbekannte Anweisungen erscheinen, wie beispielsweise DATA. Aus Gründen der Übersichtlichkeit und der Wartbarkeit empfehlen wir Ihnen, auf das Schachteln von Includes zu verzichten und sie höchstens zur Modularisierung auf der obersten Programmebene zu verwenden.

Generell sollten Sie abwägen, ob es der Lesbarkeit und Editierbarkeit eines Programms dienlich ist, den Quellcode auf mehrere Includes zu verteilen – und ob Sie die angestrebte Quelltext-Modularisierung nicht auch mit fortgeschrittenen Techniken der Wiederverwendung, wie Funktionsbausteinen und ABAP-Klassen, erreichen können.

Das Include-Programm wird bereits bei der Syntaxprüfung für das Hauptprogramm einbezogen, als ob die Quellcode-Zeilen im Hauptprogramm stünden.

 


Ihre Meinung?

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de

<< zurück
 Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Einstieg in ABAP Einstieg in ABAP
Jetzt Buch bestellen

 Buchempfehlungen
Zum Rheinwerk-Shop: SAP – Der technische Einstieg
SAP – Der technische Einstieg


Zum Rheinwerk-Shop: ABAP Objects – Das umfassende Handbuch
ABAP Objects – Das umfassende Handbuch


Zum Rheinwerk-Shop: ABAP-Entwicklung für SAP S/4HANA
ABAP-Entwicklung für SAP S/4HANA


Zum Rheinwerk-Shop: Kundeneigene Erweiterungen mit ABAP
Kundeneigene Erweiterungen mit ABAP


Zum Rheinwerk-Shop: Schrödinger programmiert ABAP
Schrödinger programmiert ABAP


Zum Rheinwerk-Shop: Migration nach SAP S/4HANA
Migration nach SAP S/4HANA


Zum Rheinwerk-Shop: Design Thinking mit SAP
Design Thinking mit SAP


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und in die Schweiz
InfoInfo

 
 


Copyright © Rheinwerk Verlag GmbH 2020
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 
[Rheinwerk]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern