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 1 ABAP und die ersten Schritte im SAP-System
Pfeil 1.1 Architektur des SAP-Systems im Überblick
Pfeil 1.1.1 Technische Architektur
Pfeil 1.1.2 Betriebswirtschaftlich-organisatorische Architektur
Pfeil 1.1.3 Plattformunabhängigkeit
Pfeil 1.2 Anwendungsprogramme und Laufzeitumgebung
Pfeil 1.2.1 Workprozesse
Pfeil 1.2.2 Struktur von ABAP-Programmen
Pfeil 1.3 Anmelden und Abmelden am System
Pfeil 1.3.1 Betriebswirtschaftlicher Modulüberblick
Pfeil 1.3.2 ABAP Workbench
Pfeil 1.3.3 Abmelden vom SAP-System
 
Zum Seitenanfang

1.2    Anwendungsprogramme und Laufzeitumgebung Zur vorigen ÜberschriftZur nächsten Überschrift

Im SAP-System wird bei SAP-GUI-basierten Anwendungsprogrammen grundsätzlich zwischen Reports und Dynpros unterschieden.

  • Reports
    Reports sind ursprünglich nichts anderes als Batch-Programme, die Listen erzeugen, Datenschnittstellen versorgen etc. Klassische Reports können zwar über einen Selektionsbildschirm mit Startparametern versorgt werden, laufen dann aber immer nach derselben Programmlogik ab. Während der Programmausführung kann der Anwender nicht mehr steuernd eingreifen.

  • Dynpros
    Bei den dynamischen Programmen, den sogenannten Dynpros, ist hingegen ein Eingriff in den Programmablauf während der Ausführung möglich. Dynpros arbeiten mit Folgen von Dialogbildschirmen. Der Programmablauf hängt davon ab, wie der Anwender den Dialogbildschirm ausfüllt oder welche Funktionen er auslöst.

Diese Grenze verschwimmt jedoch bereits seit langer Zeit. So können Reports seit einigen Releases Bildschirmlisten mit vielen interaktiven Funktionen besitzen. Neue Werkzeuge wie der SAP List Viewer (ALV) befördern diesen Trend. Hinzu kommen Innovationen wie der SAP NetWeaver Business Client (NWBC), mit dem Dynpros und Webinhalte innerhalb eines Anwendungsbildschirms gemischt werden können. Dazu werden leichtgewichtige Webanwendungen, sogenannte CHIPs (Collaborative Human Interface Part), auf dem Bildschirm in einer Seitenleiste namens Sidepanel dargestellt.

Für den Einstieg in ABAP geht dieses Buch auf die Dynpros lediglich im Zusammenhang mit Selektionsbildschirmen und Listausgaben auf dem Bildschirm ein (siehe Kapitel 11, »Selektionsbildschirme«).

 
Zum Seitenanfang

1.2.1    Workprozesse Zur vorigen ÜberschriftZur nächsten Überschrift

Alle in ABAP geschriebenen Anwendungsprogramme laufen in ABAP-Workprozessen auf dem Applikationsserver. Damit sind die Programme unabhängig von Betriebssystem und Datenbank (siehe Abschnitt 1.1.1, »Technische Architektur«). Workprozesse sind Systembenutzer des Datenbanksystems, deren Anzahl und deren Typ beim Start eines SAP-Systems festgelegt werden – als würde eine vordefinierte Anzahl von Leitungen oder Kanälen zum Datenbanksystem aufgebaut, die unterschiedliche Eigenschaften bzw. Typen haben.

[»]  Dispatcher

Wie viele Benutzer sich an einem SAP-System anmelden, ist technisch durch die Architektur des Systems nicht begrenzt. In der Praxis ist die Zahl der Benutzer häufig erheblich größer als die Zahl der zur Verfügung stehenden Workprozesse. Deshalb kann ein Benutzer für die Dauer seiner Anmeldung nicht einem Workprozess fest zugewiesen werden. Die Verteilung der Benutzeranforderungen auf die gerade freien Workprozesse regelt ein eigenes Subsystem, der sogenannte Dispatcher.

Der Dispatcher versucht dahingehend zu optimieren, dass aufeinanderfolgende Dialogschritte einer Anwendung möglichst denselben Workprozess erhalten. Falls dies jedoch nicht möglich ist, werden die einzelnen Dialogschritte einer Anwendung unterschiedlichen Workprozessen zugewiesen.

Ein ABAP-Workprozess kann eine Anwendung ausführen und hat Zugriff auf Speicherbereiche, in denen sich die Objekte und Daten der laufenden Anwendungsprogramme befinden. Er stellt darüber hinaus drei wesentliche Dinge zur Verfügung:

  • Dynpro-Prozessor
    Alle Anwendungsprogramme verfügen über eine Ablauf- und eine Verarbeitungslogik. Für die Ablauflogik ist der Dynpro-Prozessor zuständig. Er reagiert auf Benutzeraktionen in Bildschirmmasken und steuert den weiteren Programmablauf. Er ist mit anderen Worten für den Dialog und die Dialogsteuerung zuständig, kann aber beispielsweise nicht rechnen.

  • ABAP-Prozessor
    Der ABAP-Prozessor ist für die eigentliche Verarbeitungslogik verantwortlich. Er erhält Bildschirmeingaben vom Dynpro-Prozessor und sendet diesem Bildschirmausgaben. Der ABAP-Prozessor kann arithmetische und logische Operationen durchführen, Berechtigungen prüfen, Zugriffe sperren und freigeben und über die Datenbankschnittstelle auf der Datenbank lesen und schreiben.

  • Datenbankschnittstelle
    Für den Datenbankzugriff über die Datenbankschnittstelle existiert ein datenbankunabhängiger Satz von ABAP-Anweisungen, die unter der Bezeichnung Open SQL zusammengefasst werden. Mittels Open SQL wird über die Datenbankschnittstelle jedes zertifizierte Datenbanksystem mit einem einheitlichen SAP-Kommandosatz angesprochen. Durch diese Kapselung ist es für die ABAP-Programmierung normalerweise nicht einmal mehr notwendig zu wissen, welches physische Datenbanksystem unter dem SAP-System vorhanden ist.

    Es besteht auch die Möglichkeit, die Datenbank direkt mit ihren eigenen SQL-Anweisungen (Native SQL) anzusprechen. Dieses Vorgehen war bis vor Kurzem in der SAP-Welt noch verpönt, da jede SAP-basierte Anwendung vollständig unabhängig von dem eingesetzten Datenbanksystem sein sollte. Im Zusammenhang mit SAP HANA wurde das Tabu gelockert, um HANA-spezifische Funktionen in ABAP-Anwendungen nutzbar zu machen. Aufgrund erhöhter Sicherheits- und Stabilitätsrisiken wird dieser Weg nur ausnahmsweise gewählt und für Einsteiger nicht empfohlen.

Auch wenn es bei der praktischen Arbeit am System zunächst nicht so erscheint, spielt doch der ABAP-Prozessor eher eine untergeordnete, passive Rolle und der Dynpro-Prozessor eine aktive. Letzterer bestimmt, welche Module (siehe Abschnitt 1.2.2, »Struktur von ABAP-Programmen«) in welcher Reihenfolge aufgerufen werden, die der ABAP-Prozessor dann ausführt. Bei diesen häufig verwendeten Standardaufgaben werden die Dynpros implizit aus den ABAP-Anweisungen der Verarbeitungslogik generiert. In allen anderen Fällen müssen die entsprechenden Werkzeuge und Anweisungen für den Dynpro- bzw. den ABAP-Prozessor verwendet werden.

[ ! ]  Zwei Welten

ABAP- und Dynpro-Prozessor bilden zwei verschiedene Welten mit unterschiedlichen Aufgaben, jeweils eigenen Werkzeugen, Kommandosätzen, Datendeklarationen und Speicherbereichen. Beispielsweise sind Feldinhalte aus der einen Welt nicht automatisch in der anderen Welt bekannt. Die Übergabe von Feldinhalten erfolgt zu genau festgelegten Zeitpunkten und nur dann, wenn auf der anderen Seite namensgleiche Felder vorhanden sind. Es gibt Anweisungen, die nur in ihrer jeweils eigenen Welt funktionieren. So kann etwa der Dynpro-Prozessor keine arithmetischen Operationen ausführen. Andererseits gibt es Anweisungen, die in beiden Welten vorkommen, jedoch dort jeweils unterschiedliche Bedeutungen und unterschiedliche Zusätze haben.

Die Gesamtheit der beteiligten Workprozesse des ABAP- und des Dynpro-Prozessors wird als ABAP-Laufzeitumgebung bezeichnet. Diese steuert die Bildschirme und Verarbeitungsblöcke gleichermaßen.

 
Zum Seitenanfang

1.2.2    Struktur von ABAP-Programmen Zur vorigen ÜberschriftZur nächsten Überschrift

Jedes ABAP-Programm besteht grundsätzlich aus zwei Teilen: dem Deklarationsteil und den Verarbeitungsblöcken. Im Deklarationsteil werden Typen, Tabellen, Strukturen, Arbeitsbereiche, Felder etc. definiert. Deklarationen für globale Daten stehen im gesamten Report mit all seinen Unterprogrammen zur Verfügung und sind in allen internen Verarbeitungsblöcken auf sämtlichen Ebenen bekannt. Im Gegensatz hierzu stehen lokale Daten, die in einer Prozedur deklariert werden, nur in genau dieser Prozedur zur Verfügung. Ferner finden wir im Deklarationsteil beispielsweise noch die Deklarationen von Selektionsbildern.

Zusammengefasst enthält der Deklarationsteil:

  • Deklarationsanweisungen für die globalen Daten, Tabellen und Typen

  • alle Definitionen und Parameter für den Selektionsbildschirm

  • falls mit ABAP Objects gearbeitet wird: alle Deklarationen von programminternen Klassen

[»]  ABAP Objects

ABAP Objects bezeichnet die Erweiterung der ABAP-Sprachelemente um objektorientierte Elemente. Damit sind Kapselung, Interfaces, Vererbung etc. auch in ABAP objektorientiert möglich. Mit der Einführung von ABAP Objects ist eine »Rechtschreibreform«, d. h. eine strengere Syntaxprüfung verbunden. Mehr zu ABAP Objects lesen Sie in Kapitel 12, »Interne Tabellen«.

Der zweite Teil sind die Verarbeitungsblöcke des Programms: Sie sind technisch betrachtet modulare Einheiten, die vom Dynpro-Prozessor nach bestimmten Regeln aufgerufen werden können. Betriebswirtschaftlich könnte man Verarbeitungsblöcke als kleine gekapselte Teilaufgaben betrachten. Hierzu gehören:

  • Dialogmodule
    Dialogmodule und Prozeduren werden durch ABAP-Anweisungen aufgerufen, z. B. der Selektionsbildschirm oder die Listausgabe auf dem Bildschirm. Die Listausgabe ist das Ergebnisbild des Programms, das z. B. bei Hintergrundprogrammen auch auf einen Drucker geleitet werden kann.

  • Ereignisblöcke
    Ereignisblöcke (kurz Ereignisse) werden mit Ereignisschlüsselwörtern eingeleitet. Sie enden implizit, z. B. durch den Beginn des nachfolgenden Ereignisses oder durch das Programmende. Beispielsweise ist der Beginn einer neuen Seite bei einer Druckliste ein Ereignis, mit dem das Drucken des Seitenkopfes ausgelöst wird. Andere Ereignisse sind das Auswählen einer Listzeile durch einen Doppelklick oder das Drücken eines Buttons im Dialogbildschirm.

  • Prozeduren
    Prozeduren sind beispielsweise Methoden in ABAP-Klassen, Unterprogramme oder Funktionsbausteine. Funktionsbausteine sind standardisierte Unterprogramme für häufig vorkommende Aufgaben, z. B. für den Upload oder den Download von Daten. Sie werden in dieser Rolle zunehmend von ABAP-Klassen abgelöst (siehe Abschnitt 1.3.2, »ABAP Workbench«).

Mehr zu Ereignisblöcken lesen Sie in Kapitel 11, »Selektionsbildschirme«.

ABAP-Programme sind modular aufgebaut, damit die einzelnen Verarbeitungsblöcke den entsprechenden Dialogschritten zugeordnet und vom Dialogprozessor aufgerufen werden können. Ein Verarbeitungsblock besteht normalerweise aus mehreren ABAP-Anweisungen. Werden nach dem Deklarationsteil explizit keine Verarbeitungsblöcke, wie Ereignisse, in den Quellcode geschrieben, sind alle nachfolgenden ABAP-Anweisungen per Definition Teil des Ereignisblocks START-OF-SELECTION.

[»]  Lesbarkeit, Transparenz und Wartbarkeit

Von Anfang an sollten Sie beim Erstellen eigener Programme diese Modularisierungsmöglichkeiten nutzen, um den Quellcode zu gestalten. Lesbarkeit, Transparenz und Wartbarkeit sind Qualitätskriterien für ein gutes Programm. Es reicht nicht, wenn das Programm tut, was es soll – dies wird ohnehin erwartet. Ein den Programmiergrundsätzen entsprechendes Programm muss darüber hinaus von einer fremden dritten Person gelesen werden können wie ein Buch. Diese Person muss verstehen, was im Quellcode geschieht und warum. Sie muss bei Bedarf auch schnell die Stelle für eine eventuell nötige Programmänderung finden und dort die Änderung vornehmen können. Voraussetzung hierfür ist natürlich, dass diese fremde dritte Person über hinreichende Qualifikationen verfügt.

Zu Ihrem Erstaunen werden Sie übrigens überraschend schnell selbst diese dritte Person sein: Gesetzliche und organisatorische Veränderungen stellen häufig neue Anforderungen an ein Programm, die eingebaut werden müssen. Interessanterweise kann es auch bei den eigenen Programmen vorkommen, dass diese bereits nach sechs Monaten untersucht werden müssen, als ob sie von einer fremden Person geschrieben worden wären.

Wird ein ABAP-Programm ausgeführt, werden dessen Verarbeitungsblöcke vom Dynpro-Prozessor aufgerufen. Die Steuerung übernimmt dabei die ABAP-Laufzeitumgebung. Ein Programm kann demnach nur dann ausgeführt werden, wenn der erste Verarbeitungsblock des Programms, beispielsweise LOAD-OF-PROGRAM, von der Laufzeitumgebung aufgerufen werden kann. Der Start des Programms kann durch einen Benutzer, aber auch durch das System selbst ausgelöst werden. Grundsätzlich können Sie jedem Programm einen Menüpfad und einen Transaktionscode (das ist ein Kürzel, das Sie eingeben können, um unter Umgehung des regulären Menüpfads direkt einen bestimmten SAP-Dialog aufzurufen) zuordnen; für die Navigation stehen damit alle Möglichkeiten zur Verfügung.

Eine zu ändernde Stelle sollte wiederum so modularisiert werden, dass sie keine unerwünschten Seiteneffekte erzeugt. Stellen Sie sich ein Baukastensystem vor, bei dem Sie einen Baustein entfernen und durch einen anderen ersetzen, ohne dass der Baukasten durcheinandergerät. Sie tauschen ein Modul gegen ein anderes aus, und das System muss weiterlaufen wie zuvor – nur eben mit einem neuen Modul, das mehr kann als das alte.

Es lohnt sich daher in jedem Fall, die Grundsätze Lesbarkeit, Transparenz und Änderbarkeit zu beachten. Spätestens am Ende dieses Buches werden Sie hierzu in der Lage sein.

 


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