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 3 Programmieren im ABAP Editor
Pfeil 3.1 ABAP-Report anlegen
Pfeil 3.2 ABAP Editor im Überblick
Pfeil 3.2.1 Modi des ABAP Editors
Pfeil 3.2.2 Steuerung des ABAP Editors
Pfeil 3.3 ABAP-Programme verstehen und bearbeiten
Pfeil 3.4 ABAP-Report ausführen
Pfeil 3.5 Datenbanktabelle lesen und ausgeben
Pfeil 3.6 Aufbereitung von Listen
Pfeil 3.6.1 Kettensatz
Pfeil 3.6.2 Linien
Pfeil 3.6.3 Leerzeilen
Pfeil 3.7 Quellcode schreiben und editieren
 
Zum Seitenanfang

3.5    Datenbanktabelle lesen und ausgeben Zur vorigen ÜberschriftZur nächsten Überschrift

Wenn Sie in einem Report mit Datenbanktabellen arbeiten möchten, müssen Sie in dem Report eine Workarea deklarieren, d. h. einen Arbeitsbereich einrichten, in dem Sie die Daten aus der Tabelle bearbeiten können Für unsere Tabelle ZTEILNEHMER erreichen Sie dies über folgende Anweisung:

DATA wa_zteilnehmer TYPE zteilnehmer.

Mit der DATA-Anweisung wird eine gleichnamige Struktur im Programm angelegt, die den gleichen Datentyp wie die Datenbanktabelle besitzt, die Workarea.

Alle Felder der Struktur haben die gleichen Namen und Datentypen wie die Felder der Datenbanktabelle. So können Sie beim Lesen der Datensätze aus der Datenbanktabelle Satz für Satz in die Struktur stellen und anschließend weiterverarbeiten.

[ ! ]  Obsolete TABLES-Anweisung

In älteren Programmen finden Sie auch die obsolete Anweisung TABLES, mit der ein Tabellenbereich oder auch Tabellenarbeitsbereich deklariert wird. Dieser erzeugt für die referenzierte Datenbanktabelle eine gleichnamige Datenstruktur in Ihrem Programm.

Einige Kommandos für Datenbankzugriffe besitzen eine Kurzform ohne Angabe der Workarea, bei der implizit der Arbeitsbereich mit dem Namen der Tabelle verwendet wird. Unter bestimmten Umständen wird die Verwendung solcher obsoleter Anweisungen von der Programmierumgebung als Fehler betrachtet – Sie sollten sich ihre Verwendung daher gar nicht erst angewöhnen, auch wenn sie Ihnen gewiss oft in alten Programmen begegnen werden.

[ ! ]  Bindestrich

Die Felder der Struktur sprechen Sie dabei mit dem Namen der Workarea und ihrem Feldnamen an: das Feld TNAME der Workarea WA_ZTEILNEHMER beispielsweise mit WA_ZTEILNEHMER-TNAME. Der erste Namensbestandteil ist der Strukturname, der zweite der Feldname. Beachten Sie den Bindestrich zwischen diesen beiden Teilen: Er trennt die Namensbestandteile ohne Leerzeichen. Merken Sie sich für das weitere Arbeiten auch, dass Sie den Bindestrich nur für diesen Zweck verwenden; benutzen Sie ihn z. B. nie bei Variablennamen.

Selbstverständlich merkt sich niemand bei allen Feldern der verwendeten Datenbanktabellen die Typdeklarationen. Falls es nötig ist nachzulesen, wechseln Sie per Vorwärtsnavigation, d. h. mit einem Doppelklick auf den Tabellennamen, in das ABAP Dictionary. Hier können Sie auf der Registerkarte Felder die erforderlichen Informationen zu den Feldern ablesen. Anschließend kehren Sie mit dem Zurück-Button (inline image) in den ABAP Editor zurück.

Dies ist die einfachste Form, die Zeilen einer Datenbanktabelle satzweise in einer Liste auszugeben:

SELECT * FROM zteilnehmer INTO wa_zteilnehmer.
WRITE / wa_zteilnehmer.
ENDSELECT.

Die SELECT-Anweisung bedeutet umgangssprachlich, dass die Sätze aus der Tabelle ZTEILNEHMER Satz für Satz in die Workarea übertragen werden. Das Sternchen (*) bewirkt, dass alle Felder eines Satzes übertragen werden. Möchten Sie stattdessen nur einen Teil der Felder übertragen, müssten Sie statt des Sternchens die Felder als Feldliste angeben.

Die folgenden Zeilen zeigen, wie Sie die zu übertragenden Felder gezielt benennen und auch den Zielfeldern der Workarea ausdrücklich zuordnen können. Wir werden aber im Folgenden nicht weiter auf Feldlisten eingehen, da es sich eher um eine Technik zur Optimierung handelt, die Sie beim Einstieg in ABAP noch nicht konsequent verwenden müssen.

SELECT tgeburtsdatum tname
FROM zteilnehmer
INTO (wa_zteilnehmer-tgeburtsdatum, wa_zteilnehmer-tname)
ORDER BY PRIMARY KEY.
...
ENDSELECT.
[ ! ]  Feldliste oder Sternchen

Wenn Sie das Sternchen verwenden und viele Felder in die Workarea übertragen, die Sie gar nicht wirklich benötigen, kann dies bei großen Tabellen negative Auswirkungen auf die Programmlaufzeit haben.

Als Faustregel können Sie sich merken: Wenn Sie fast alle Felder auch benötigen, verwenden Sie getrost das Sternchen. Wenn Sie die Hälfte oder weniger der Tabellenfelder benötigen, geben Sie die Felder als Feldliste an.

Das Kommando SELECT entspricht in dieser Form einer Schleifenverarbeitung. Alle Sätze der Datenbanktabelle werden Satz für Satz in die Programmstruktur übertragen. Die Struktur der Schleife beginnt mit der Anweisung SELECT und endet mit der Anweisung ENDSELECT.

Um die Zeilen Ihrer Datenbanktabelle sortiert nach dem Primärschlüssel (in unserem Beispiel nach der Teilnehmernummer) Zeile für Zeile in einer Liste auszugeben, modifizieren Sie die Anweisung mit dem Zusatz ORDER BY PRIMARY KEY:

SELECT * FROM zteilnehmer INTO wa_zteilnehmer
ORDER BY PRIMARY KEY.
WRITE / wa_zteilnehmer.
ENDSELECT.
[ ! ]  Sortierung der Datensätze

Die Datensätze, die von einer SELECT-Anweisung zurückgegeben werden, werden von Hause aus nicht in einer bestimmten Reihenfolge sortiert. Es gibt jedoch verschiedene Zusätze zu der SELECT-Anweisung, mit denen Sie eine Sortierreihenfolge festlegen können. Solange diese Zusätze nicht verwendet werden, bleibt es der Datenbank überlassen, in welcher Reihenfolge die Ergebnissätze angeordnet werden. Selbst eine zufällige, bei jedem Aufruf wechselnde Sortierung wäre denkbar. Tatsächlich sortieren aber die meisten Datenbanken die Ergebnissätze »freiwillig« nach dem Primärschlüssel der jeweiligen Datenbanktabelle. Viele Programmierer haben sich daher angewöhnt, dieses Verhalten der Datenbank fest vorauszusetzen und ihre Programmlogik darauf aufzubauen.

Wird in Ihrem Unternehmen die In-Memory-Datenbank SAP HANA eingeführt, kann diese Gewohnheit viele Probleme verursachen, denn SAP HANA liefert die Ergebnissätze nicht mehr automatisch nach dem Primärschlüssel sortiert zurück, sondern benötigt dazu eine ausdrückliche Aufforderung in Form des Zusatzes ORDER BY PRIMARY KEY. In den folgenden Programmbeispielen in diesem Buch verwenden wir diesen Zusatz manchmal und manchmal nicht. Als Faustregel haben wir dabei gelten lassen: Wenn die Programmlogik von aufsteigenden Schlüsseln ausgeht, ist eine Sortierung erforderlich. Sollen Listen mit Teilnehmernummern o. Ä. ausgegeben werden, sortieren wir ebenfalls nach dem Schlüssel, weil eine sortierte Liste für den Anwender intuitiver ist.

 


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