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 9 Mit Daten in einer Datenbanktabelle arbeiten
Pfeil 9.1 Berechtigungskonzept
Pfeil 9.2 Sperrkonzept
Pfeil 9.3 Open-SQL-Anweisungen
Pfeil 9.3.1 Neuen Datensatz anlegen
Pfeil 9.3.2 Bestehenden Datensatz ändern
Pfeil 9.3.3 Datensatz modifizieren
Pfeil 9.3.4 Datensatz löschen
Pfeil 9.4 Komfortable Alternative: Persistente Klassen
Pfeil 9.5 Codebeispiel zu INSERT
Pfeil 9.6 Codebeispiel zu UPDATE
Pfeil 9.7 Codebeispiel zu MODIFY
Pfeil 9.8 Codebeispiel zu DELETE
 
Zum Seitenanfang

9.5    Codebeispiel zu INSERT Zur vorigen ÜberschriftZur nächsten Überschrift

Den Einsatz der verschiedenen Open-SQL-Anweisungen, die Sie in diesem Kapitel kennengelernt haben, zeigen wir Ihnen in den folgenden Abschnitten jeweils im Rahmen eines Beispiel-Reports. Listing 9.1 macht den Anfang mit einem Beispiel zur Anweisung INSERT.

 1  *&---------------------------------------------*
2 *& Report Z_TEILNEHMERLISTE09_INSERT *
3 *& *
4 *&---------------------------------------------*
5 *& *
6 *& *
7 *&---------------------------------------------*
8
9 REPORT z_teilnehmerliste09_insert.
10
11 * Korrekt: Workarea deklarieren
12 DATA: wa_zteilnehmer02 TYPE zteilnehmer02.
13
14 * Veraltet: Tabellenarbeitsbereich deklarieren
15 TABLES zteilnehmer02.
16
17 * Zeichenkette deklarieren
18 DATA: tnr TYPE zteilnehmer02-tnummer.
19
20 * Tabellenzeilen vor der Veränderung der Tabelle
21 SELECT * FROM zteilnehmer02 INTO wa_zteilnehmer02
22 ORDER BY PRIMARY KEY.
23 WRITE: / wa_zteilnehmer02-tnummer,
24 wa_zteilnehmer02-tname,
25 wa_zteilnehmer02-tgeburtsdatum,
26 wa_zteilnehmer02-tgeschlecht,
27 wa_zteilnehmer02-tkurspreis,
28 wa_zteilnehmer02-twaehrung,
29 wa_zteilnehmer02-zzkfztyp,
30 wa_zteilnehmer02-zzkurstitel.
31 ENDSELECT.
32 tnr = wa_zteilnehmer02-tnummer.
33 SKIP.
34
35 * neuen Datensatz anlegen aus Workarea
36 tnr = tnr + 1.
37 CLEAR wa_zteilnehmer02.
38 wa_zteilnehmer02-tnummer = tnr.
39 wa_zteilnehmer02-tname = 'Schmidt'.
40 wa_zteilnehmer02-tgeburtsdatum = '19980808'.
41 wa_zteilnehmer02-tgeschlecht = 'M'.
42 wa_zteilnehmer02-tkurspreis = '999'.
43 wa_zteilnehmer02-twaehrung = 'EUR'.
44 wa_zteilnehmer02-zzkfztyp = 'KOMBI'.
45 wa_zteilnehmer02-zzkurstitel = 'SAP-Finanzwesen'.
46 INSERT zteilnehmer02 FROM wa_zteilnehmer02.
47 WRITE: / ' Insert aus Workarea
liefert sy-subrc', sy-subrc.
48
49 * Veraltet: neuen Datensatz anlegen aus
Tabellenarbeitsbereich
50 tnr = tnr + 1.
51 zteilnehmer02-tnummer = tnr.
52 zteilnehmer02-tname = 'Schmidt'.
53 zteilnehmer02-tgeburtsdatum = '19990909'.
54 zteilnehmer02-tgeschlecht = 'W'.
55 zteilnehmer02-tkurspreis = '999'.
56 zteilnehmer02-twaehrung = 'EUR'.
57 zteilnehmer02-zzkfztyp = 'KOMBI'.
58 zteilnehmer02-zzkurstitel = 'SAP-Finanzwesen'.
59 INSERT zteilnehmer02.
60 WRITE: / ' Insert aus Tabellenarbeitsbereich liefert
sy-subrc', sy-subrc.
61
62 * Tabelleninhalt nach der Veränderung auflisten
63 SELECT * FROM zteilnehmer02 INTO wa_zteilnehmer02
64 ORDER BY PRIMARY KEY.
65 WRITE: / wa_zteilnehmer02-tnummer,
66 wa_zteilnehmer02-tname,
67 wa_zteilnehmer02-tgeburtsdatum,
68 wa_zteilnehmer02-tgeschlecht,
69 wa_zteilnehmer02-tkurspreis,
70 wa_zteilnehmer02-twaehrung,
71 wa_zteilnehmer02-zzkfztyp,
72 wa_zteilnehmer02-zzkurstitel.
73 ENDSELECT.

Listing 9.1    Report Z_TEILNEHMERLISTE09_INSERT

Anmerkungen zum Quellcode

Schauen Sie sich die folgenden Zeilen aus Listing 9.1 genauer an:

Zeile 12

Zur logischen Trennung zwischen Tabelle und Workarea wird eine Workarea deklariert, die mit der Tabelle im ABAP Dictionary strukturgleich ist und sich auf diese als Typ bezieht.

Zeile 15

In der veralteten Schreibweise wird mit der TABLES-Anweisung ein Tabellenarbeitsbereich angelegt – ein Datenobjekt im Programm, das mit der Datenbanktabelle namens- und strukturgleich ist und implizit als Workarea für diese dient. Diese Mehrfachverwendung des Tabellennamens kann verwirrend sein, weshalb Sie in neuen Programmen statt der TABLES-Anweisung explizit definierte Workareas mit einem eigenen Namen verwenden sollten, damit jederzeit klar ist, wann die Workarea und wann tatsächlich die Tabelle bearbeitet wird. Wir führen sie in diesem Programm nur ausnahmsweise auf, um zu zeigen, wie man es heute nicht mehr macht (auch wenn Ihnen diese Schreibweise noch oft in alten Programmen begegnen wird).

Zeile 21 bis 31

Für den Vergleich des Tabelleninhalts vorher und nachher wird der alte Tabelleninhalt ausgegeben. Der Zusatz ORDER BY PRIMARY KEY bewirkt ein Verhalten, das ohnehin bei den meisten Datenbanken implizit auftritt, nämlich die Sortierung der Ergebnismenge nach dem Tabellenschlüssel. Lediglich bei der Datenbank SAP HANA wird die Ergebnismenge nur bei expliziter Angabe dieses Zusatzes nach dem Tabellenschlüssel sortiert.

Zeile 32

Das Feld TNR erhält die zuletzt gelesene, d. h. (dank unserer expliziten Vorgabe für die Sortierung) die höchste Teilnehmernummer. Diese Information ist wichtig, weil die Teilnehmernummer ein Schlüsselfeld ist.

Zeile 36

Die Teilnehmernummer wird um 1 erhöht. Der neue Satz soll lückenlos mit der nächsthöheren Teilnehmernummer eingefügt werden. Hier wird auch deutlich, warum es in Zeile 21 wichtig war, die Ergebnismenge nach dem Tabellenschlüssel zu sortieren: Der letzte Satz der Ergebnismenge soll auch der mit der höchsten Teilnehmernummer sein.

Zeile 37

In der Workarea steht noch der zuletzt gelesene Satz aus der Tabelle. Damit der neu anzulegende Satz mit Sicherheit nur aus den richtigen Daten besteht und kein alter Bestand übernommen wird, muss die Workarea vor dem erneuten Füllen initialisiert werden.

Zeile 38 bis 45

Die Workarea wird mit den neuen Satzinhalten gefüllt.

Zeile 46 und 47

Der neue Satz wird auf die Datenbanktabelle geschrieben; zur Sicherheit wird der Returncode des Kommandos mit Kommentar ausgegeben. In der Praxis wird der Returncode natürlich nicht in einer Liste ausgegeben, sondern im Programm abgefragt. Je nach Inhalt wird im positiven Fall die Verarbeitung fortgesetzt oder eine Fehlerbehandlung eingeleitet. Wie dies funktioniert, lernen Sie allerdings erst im folgenden Kapitel 10, »Programmablaufsteuerung und logische Ausdrücke« – deshalb muss hier die Listausgabe als Notnagel dienen.

Zeile 50

Es soll noch ein neuer Satz auf die Datenbank geschrieben werden. Deshalb wird die Teilnehmernummer hochgezählt.

Zeile 51 bis 58

Die Feldinhalte für den neuen Satz werden diesmal im Tabellenarbeitsbereich aufgebaut, nicht in der Workarea. Auch für den Tabellenarbeitsbereich gilt, dass er bei Mehrfachverwendung vor dem Neubeschreiben initialisiert werden muss. Im Beispiel wird der Arbeitsbereich nur einmal verwendet, deshalb kann man hier die CLEAR-Anweisung weglassen.

Zeile 59 und 60

Die Datenbanktabelle wird aus dem Tabellenarbeitsbereich heraus mit einem neuen Satz bestückt. Aus Sicherheitsgründen wird der Returncode des Kommandos mit in der Liste ausgegeben.

Zeile 63 bis 73

Zur Kontrolle werden alle Sätze der Datenbanktabelle nach der Datenbankänderung noch einmal gelesen und in die Liste geschrieben. Diesmal verwenden Sie auch in der SELECT-Anweisung die Workarea anstelle des Tabellenarbeitsbereiches. Wieder geben wir den Zusatz ORDER BY PRIMARY KEY an, um die Ergebnismengen leichter vergleichen zu können.

Ausgabe des Quellcodes

Die Datenbanktabelle hatte durch die bisherigen Arbeiten drei Datensätze. Nach den beiden INSERT-Anweisungen sind die Sätze 4 und 5 neu hinzugekommen (siehe Abbildung 9.1).

Listbild zum INSERT-Beispiel

Abbildung 9.1    Listbild zum INSERT-Beispiel

 


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