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 7 Modifikation von transparenten Datenbanktabellen
Pfeil 7.1 Datenbanktabelle kopieren
Pfeil 7.2 Nicht-Schlüsselfelder ergänzen
Pfeil 7.2.1 Festwerte in Domäne einpflegen
Pfeil 7.2.2 Besonderheiten bei Währungs- und Mengenfeldern
Pfeil 7.2.3 Fremdschlüssel pflegen
Pfeil 7.3 Tabellen erweitern
Pfeil 7.3.1 Append-Strukturen pflegen
Pfeil 7.3.2 Include-Struktur einpflegen
Pfeil 7.4 Schlüsselfelder von Tabellen manipulieren
Pfeil 7.5 Tabellenfelder löschen
Pfeil 7.6 Tabellen löschen
 
Zum Seitenanfang

7.2    Nicht-Schlüsselfelder ergänzen Zur vorigen ÜberschriftZur nächsten Überschrift

Um eine kundeneigene, transparente Tabelle um Nicht-Schlüsselfelder zu ergänzen, gehen Sie analog zur Neuanlage von Feldern bei einer neuen Tabelle vor, wie sie in Abschnitt 2.2.1, »Datenelement anlegen«, beschrieben wurde. Sie vergeben Feldnamen, legen neue Datenelemente und Domänen an oder ordnen bestehende zu.

[»]  Aktivierungsreihenfolge beachten

Bei der Aktivierung der Objekte beachten Sie wieder die Reihenfolge: Um eine Tabelle aktivieren zu können, müssen alle referenzierten Datenelemente aktiviert sein, und um ein Datenelement aktivieren zu können, muss die referenzierte Domäne aktiviert sein. Deshalb müssen Sie alle Objekte auf Inkonsistenzen hin prüfen und zuerst die Domäne aktivieren, dann das Datenelement und anschließend die Tabelle. Bei mehreren Objekten ist das Vorgehen entsprechend; dies ist die grundsätzliche Vorgehensweise.

Versuchen Sie nun, die Tabelle um einige Felder zu erweitern. Zunächst bauen Sie ein Feld für das Geschlecht eines Teilnehmers bzw. einer Teilnehmerin ein. Es soll vom Typ CHAR sein, d. h. eine Zeichenkette, und die Länge 1 haben. Sinn des Feldes soll es sein, einen Geschlechtsschlüssel pflegen zu können. Das Feld in die Tabelle einzupflegen, ein Datenelement hierzu und für das Datenelement eine Domäne anzulegen, dürfte für Sie kein großes Problem mehr sein. Das Vorgehen wurde bereits in Abschnitt 2.2, »Datenelemente und Domänen«, beschrieben – zur Not können Sie es dort noch einmal nachlesen.

 
Zum Seitenanfang

7.2.1    Festwerte in Domäne einpflegen Zur vorigen ÜberschriftZur nächsten Überschrift

Bei der Domäne kommt jetzt allerdings etwas Neues hinzu: Es sollen nämlich nur bestimmte Werte für den Geschlechtsschlüssel zulässig sein. In späteren ABAP-Programmen soll eine Wertehilfe angeboten werden, und gleichzeitig sollen alle anderen Eingaben vom System abgewiesen werden, sodass im Feld für den Geschlechtsschlüssel nur die als richtig definierten gültigen Werte enthalten sein können. Eine Möglichkeit, dies zu erreichen, ist, in der Domäne Festwerte zu hinterlegen. Bei so kleinen Wertemengen wie beim Geschlechtsschlüssel ist dieses Vorgehen durchaus üblich und handhabbar. Bei großen Wertemengen geht man normalerweise etwas anders vor; diese Alternative wird Ihnen im Anschluss vorgestellt.

Um Festwerte in der Domäne zu hinterlegen, müssen Sie beim Anlegen im Pflegebildschirm der Domäne auf die Registerkarte Wertebereich wechseln und dort die zulässigen Festwerte eintragen (siehe Abbildung 7.9).

Festwerte in der Domäne pflegen

Abbildung 7.9    Festwerte in der Domäne pflegen

Hier pflegen Sie in Form von Einzelwerten drei Geschlechtsschlüssel für männlich (M), weiblich (W) und für den Fall, dass das Geschlecht unbekannt (U) ist.

[»]  Intervall als Festwert

Nur der Vollständigkeit halber sei erwähnt, dass Festwerte nicht nur in Form von Einzelwerten, sondern auch als Intervalle gepflegt werden können. Für unser Beispiel müssen wir auf diese Möglichkeit aber nicht weiter eingehen.

Nach dem Einpflegen der Festwerte ist der Rest bereits Routine: Sie müssen Domäne, Datenelement und Tabelle aktivieren; anschließend müssen Sie die Wirkung der Festwerte testen.

Bereits beim einfachen Pflegedialog im ABAP Dictionary bemerken Sie einen Unterschied: Wenn Sie jetzt das Eingabefeld für das Geschlecht betrachten, sehen Sie neben dem Eingabefeld ein Wertehilfesymbol (siehe Abbildung 7.10).

Wertehilfe für Datenauswahl

Abbildung 7.10    Wertehilfe für Datenauswahl

Durch einen Klick auf das Symbol oder durch Drücken der (F4)-Taste öffnet sich ein Fester mit der Wertehilfeliste (siehe Abbildung 7.11).

Wertehilfeliste

Abbildung 7.11    Wertehilfeliste

Den gewünschten Wert wählen Sie aus, indem Sie doppelt darauf klicken oder die Zeile markieren, d. h. diese einfach anklicken, und auf den Übernehmen-Button (inline image) klicken. Der Wert wird automatisch in das Eingabefeld für den Geschlechtsschlüssel übernommen.

[ ! ]  Eingabeprüfung

Bei der einfachen Dateneingabe im ABAP Dictionary erfolgt keine weitere Verprobung. Dies ist nicht weiter schlimm, weil ein Anwender nicht im Dictionary arbeitet, sondern in betriebswirtschaftlichen Anwendungen wie Finanz- und Rechnungswesen. Die vollständige Auswirkung von Festwerten in der Domäne bemerkt man erst in Programmen und Dialogen, die dieses Tabellenfeld verwenden, oder Feldern, die auf die referenzierte Domäne verweisen.

Die Eingabeprüfung erfolgt allerdings nur für die Datentypen CHAR und NUMC. Bei Bildschirmmasken kann die Eingabeprüfung dann so erfolgen, dass ausschließlich die Eingabe von Festwerten aus der Werteliste möglich ist. Mehr zu Eingabeprüfungen erfahren Sie in Kapitel 11, »Selektionsbildschirme«.

 
Zum Seitenanfang

7.2.2    Besonderheiten bei Währungs- und Mengenfeldern Zur vorigen ÜberschriftZur nächsten Überschrift

Bei Währungs- und Mengenfeldern gibt es einige Besonderheiten zu beachten. Zunächst gibt es dafür eigene Datentypen im ABAP Dictionary, da in diese Felder Beträge bzw. Mengen eingetragen werden. Der Datentyp für Währungsfelder ist CURR, der Datentyp für Mengenfelder lautet QUAN. Beide Felder entsprechen Betragsfeldern vom Typ DEC, und die maximale Feldlänge für diese Felder beträgt 31 Stellen. Wie Sie sich sicherlich gut vorstellen können, sind allein die Informationen über die Beträge und Mengen nicht ausreichend.

Bei Währungen benötigen Sie außer dem Betrag zusätzlich die Information, in welcher Währungseinheit der Betrag angegeben wird. Es existieren über 160 Währungen auf der Welt – harte und weiche –, entsprechende Wechselkurse und Bewertungen. Die Information, in welcher Währung ein Betrag angegeben wird, ist von entscheidender Bedeutung für das Finanz- und Rechnungswesen, und deshalb muss ein Betragsfeld für Währungen vom Typ CURR immer mit einem Referenzfeld für die Währungseinheiten vom Typ CUKY verknüpft sein. Das Feld vom Typ CUKY ist das Referenzfeld für den Währungsbetrag und hat eine feste Länge von fünf Stellen.

Bei Mengenfeldern gilt dies ebenso; hier verweisen die Betragsfelder für Mengen aber natürlich nicht auf Währungseinheiten, sondern auf Mengeneinheiten wie Liter oder Tonnen, die in Feldern vom Typ UNIT eingetragen sind. Auch die Felder vom Typ UNIT haben eine feste Länge, und zwar von zwei bzw. drei Stellen.

Zur praktischen Demonstration sollten Sie in unsere Tabelle zwei weitere Felder eintragen: Als Feld für den Währungsbetrag soll das Feld TKURSPREIS dienen und als Feld für die Währungseinheit das Feld TWAEHRUNG. Beide Felder nehmen Sie in die Feldliste auf und deklarieren entsprechende Datenelemente und Domänen (siehe Abbildung 7.12).

Tabelle mit Währungsfeldern

Abbildung 7.12    Tabelle mit Währungsfeldern

Im Gegensatz zu den bisher verwendeten Feldern können Sie bei Währungs- und Mengenfeldern die Tabelle nicht einfach aktivieren. Versuchen Sie es dennoch – wie gehabt über den Aktivieren-Button (inline image) –, erhalten Sie bei der Aktivierung eine Fehlermeldung (siehe Abbildung 7.13).

Fehlermeldung beim Aktivieren einer Tabelle

Abbildung 7.13    Fehlermeldung beim Aktivieren einer Tabelle

Die Einträge auf der Registerkarte Felder genügen daher leider nicht. Im Pflegebildschirm der Tabelle muss außerdem auf der Registerkarte Währungs-/Mengenfelder für das Betragsfeld der Währung vom Typ CURR das zugehörige Referenzfeld vom Typ CUKY eingetragen werden. Auf diese Weise sichert das ABAP Dictionary ab, dass zu jedem Währungsbetrag auch die Währungseinheit angegeben wird; analog gilt dies für Mengen. Dieses Referenzfeld kann in derselben Tabelle liegen, aber auch in einer anderen Tabelle. In unserem einfachen Beispiel liegt das Referenzfeld ebenfalls in der Tabelle ZTEILNEHMER02 (siehe Abbildung 7.14).

Referenzfeld für Währungsfeld pflegen

Abbildung 7.14    Referenzfeld für Währungsfeld pflegen

Nach der Pflege von Referenzfeld und Referenztabelle ist die Aktivierung der Tabelle kein Problem mehr. Wie bereits des Öfteren praktiziert, testen Sie nun die Funktionalität der Tabelle, indem Sie Datensätze im Pflegedialog des ABAP Dictionarys erfassen.

[»]  Eingabeprüfung über Fremdschlüssel

Es müsste alles wunderbar funktionieren, eigentlich viel zu gut: Noch können Sie nämlich jede beliebige, auch frei erfundene Abkürzung für eine Währung verwenden, da Sie bislang noch keine Eingabeprüfung eingebaut haben. Jeder verantwortungsbewusste Betriebswirtschaftler würde sich allerdings die Haare raufen. Damit nur echte und gültige Währungseinheiten eingepflegt werden können, müssen Sie einen Fremdschlüssel einbauen.

 
Zum Seitenanfang

7.2.3    Fremdschlüssel pflegen Zur vorigen ÜberschriftZur nächsten Überschrift

Durch die Verwendung von Fremdschlüsseln wird gewährleistet, dass nur gültige Werte aus einer Werteliste eingepflegt werden können. Um dieses Ziel zu erreichen, sind allerdings einige Vorarbeiten erforderlich.

Für unser Beispiel beginnen die Vorarbeiten im Datenelement ZTWAEHRUNG für das Feld TWAEHRUNG der Tabelle. Im Datenelement wird nicht auf eine selbst erfundene Domäne verwiesen, sondern auf die SAP-Standarddomäne WAERS für Währungseinheiten (siehe Abbildung 7.15).

Datenelement verweist auf SAP-Standarddomäne

Abbildung 7.15    Datenelement verweist auf SAP-Standarddomäne

Verzweigen Sie durch Vorwärtsnavigation in die Domäne und betrachten diese genauer, stellen Sie auf der Registerkarte Wertebereich fest, dass dort bereits die Wertetabelle TCURC eingetragen ist (siehe Abbildung 7.16).

Neben Festwerten und Intervallen ist das Hinterlegen von gültigen Werten in einer solchen Wertetabelle die dritte Möglichkeit, die gültigen Werte über die Domäne einzugrenzen. Wenn es zu viele Werte gibt oder es zu umständlich wäre, um sie fest in der Domäne zu hinterlegen, pflegt man diese Werte in einer eigenen Wertetabelle; in unserem Fall ist dies die Tabelle TCURC. Sie enthält alle im System gültigen Währungsbezeichnungen, insgesamt über 200 (siehe Abbildung 7.17).

Wertetabelle anstelle von Festwerten in Domäne

Abbildung 7.16    Wertetabelle anstelle von Festwerten in Domäne

Wertetabelle TCURC

Abbildung 7.17    Wertetabelle TCURC

Wendet man dieses Prinzip auf alle relevanten Tabellenfelder an, bedeutet dies, dass es global im System nur eine einzige Tabelle gibt, die die gültigen Währungseinheiten enthält, und damit nur eine einzige Tabelle, in der die Währungseinheiten zentral gepflegt werden müssen.

Um die Wertetabelle auch für Eingabeprüfungen nutzen zu können, müssen Sie bezüglich der Schlüsselfelder in der Wertetabelle und der referenzierenden Domäne Folgendes beachten:

  • Das Feld für den Währungsschlüssel muss in der Wertetabelle ein Schlüsselfeld sein. Das System sucht in der Wertetabelle über die Schlüsselfelder der Wertetabelle einen eindeutigen Satz.

  • In der Wertetabelle muss das Datenelement für das Feld des Währungsschlüssels auch auf die Domäne WAERS verweisen. Für das Feld WAERS in der Wertetabelle TCURC und das Feld TWAEHRUNG in der Fremdschlüsseltabelle ZTEILNEHMER02 muss dieselbe Domäne als Basis dienen. Die Domäne ist sozusagen die Datenzentrale, über die die Verknüpfungen laufen (siehe Abbildung 7.18).

Dieselbe Domäne für einschlägige Felder der Werte- und Fremdschlüsseltabelle

Abbildung 7.18    Dieselbe Domäne für einschlägige Felder der Werte- und Fremdschlüsseltabelle

So weit zu den Voraussetzungen und Vorarbeiten, um einen Fremdschlüssel pflegen zu können. Bezüglich der Eingabeprüfungen in unserer Tabelle ZTEILNEHMER02 ist noch nicht viel geschehen, außer dass anstelle von Festwerten in einer Domäne eine Wertetabelle angegeben wurde. Ziel soll es jedoch sein, eine Eingabeprüfung zu aktivieren, die nur Eingaben gemäß den Werten der Wertetabelle zulässt.

Die Inhalte der Tabelle ZTEILNEHMER02 sind damit von einem fremden Schlüssel und Inhalten einer anderen Tabelle abhängig. Die Eingabeprüfung für das Feld TKURSWAEHRUNG erfolgt durch den Abgleich gegen ein Feld einer anderen Tabelle, in diesem Fall der Tabelle TCURC. Aktiviert wird diese Abhängigkeit, indem Sie in der Tabelle ZTEILNEHMER02 einen Fremdschlüssel für das Feld TWAEHRUNG einpflegen. Die Tabelle, in die der Fremdschlüssel eingepflegt wird, d. h. Tabelle ZTEILNEHMER02, wird in diesem Zusammenhang Fremdschlüsseltabelle genannt. Die Tabelle, gegen die die gültigen Eingaben geprüft werden – in unserem Beispiel ist das die Tabelle TCURC –, heißt in diesem Zusammenhang Prüftabelle.

In der Tabelle ZTEILNEHMER02 wird nun der Fremdschlüssel für das Feld TWAEHRUNG gepflegt, indem Sie den Zeilenkopf markieren und auf den Button Fremdschlüssel (inline image) klicken (siehe Abbildung 7.19).

Fremdschlüsselbeziehung für Tabellenfeld pflegen

Abbildung 7.19    Fremdschlüsselbeziehung für Tabellenfeld pflegen

Ihnen wird ein Dialogfenster zur Pflege des Fremdschlüssels für dieses Feld angezeigt (siehe Abbildung 7.20). Sind die vorbereitenden Arbeiten und Voraussetzungen wie beschrieben erfüllt, schlägt das System vor, die Wertetabelle als Prüftabelle zu übernehmen.

Fremdschlüssel pflegen

Abbildung 7.20    Fremdschlüssel pflegen

Für den Fremdschlüssel werden alle Schlüsselfelder der Prüftabelle angeboten. Sie haben die Wahl, alle Schlüsselfelder für den Fremdschlüssel oder nur bestimmte Schlüsselfelder zu übernehmen. In unserem einfachen Beispiel soll nur das Feld WAERS der Prüftabelle verwendet werden.

Im Übrigen müssen Sie im Dialogfenster zur Pflege des Fremdschlüssels zunächst den Fremdschlüssel kurz beschreiben. In unserem Beispiel hat die Prüftabelle zwei Schlüsselfelder: Die Fremdschlüsselfelder, die nicht mit geprüft werden sollen, in diesem Beispiel der Mandant (MANDT), müssen Sie aus der Liste löschen, und das entsprechende Prüftabellenfeld sollten Sie als generischen Schlüssel markieren. Die Treffermenge ist hierdurch größer. Die Risikoabwägung muss in der Praxis von der betriebswirtschaftlichen Aufgabenstellung abhängig gemacht werden. Gibt es manche Währungen nur bei bestimmten Mandanten, müsste man den Mandanten eventuell mitberücksichtigen. Ist für alle Mandanten die Währungsregelung einheitlich, kann man ihn vernachlässigen.

[+]  Gültigkeitsbereich der Eingabeprüfung

Natürlich soll die Eingabeprüfung auch in relevanten Dialogbildschirmen greifen. Deshalb sollten Sie im Bereich Dynpro-Prüfung den Haken beim Ankreuzfeld Prüfung erwünscht setzen.

Für den Fall, dass das System die Falscheingabe mit einer Fehlernachricht Ihrer Wahl melden soll, können Sie die gewünschte Nachricht einpflegen. Auf das Thema Nachrichten gehen wir in Kapitel 11, »Selektionsbildschirme«, noch genauer ein. Sie müssen aber momentan keine bestimmte Fehlernachricht einpflegen. Wenn Sie die Felder Nachrichtennummer und Arbeitsgebiet leer lassen, erzeugt die Fremdschlüsselprüfung bei Erfassung ungültiger Werte eine generische Fehlermeldung.

In unserem Beispiel ist das Fremdschlüsselfeld darüber hinaus nicht identifizierend für die Fremdschlüsseltabelle, d. h. kein Schlüsselfeld, und wird auch nicht anderweitig für Definitionen verwendet. Es müssen deshalb keine semantischen Eigenschaften gepflegt werden; die Art des Fremdschlüsselfeldes ist nicht spezifiziert. Diese Einstellung wurde bereits vom System vorgeschlagen.

Die Kardinalität beschreibt die Fremdschlüsselbeziehung hinsichtlich der Anzahl der möglichen Treffersätze in der Fremdschlüsseltabelle und in der Prüftabelle. Die 1 auf der linken Seite der Kardinalität bedeutet, dass es zu jedem abhängigen Satz der Fremdschlüsseltabelle genau einen Satz in der Prüftabelle gibt. Damit ist der Fall ausgeschlossen, dass es Sätze in der Fremdschlüsseltabelle gibt, die sich auf keinen Satz in der Prüftabelle beziehen. Die 1 auf der rechten Seite der Kardinalität bedeutet, dass zu jedem Satz der Prüftabelle genau ein abhängiger Satz in der Fremdschlüsseltabelle existiert.

Uns sollen diese exemplarischen Beispiele genügen, und auch auf die Besonderheiten von generischen Schlüsseln soll hier nicht weiter eingegangen werden. Sichern Sie den eingepflegten Fremdschlüssel mit dem Übernehmen-Button.

Im ABAP Dictionary können Sie anschließend die Tabelle sicherheitshalber zunächst auf Inkonsistenzen hin prüfen und dann aktivieren. Nun testen Sie Ihre Einstellungen, indem Sie in die Tabelle weitere Einträge einpflegen. Sie können dabei beobachten, dass das System anders reagiert: Ist das Feld TWAEHRUNG fokussiert, d. h. angeklickt, erscheint hier ebenfalls ein Button für die Wertehilfe (siehe Abbildung 7.21).

Wertehilfe für Währungseinheit

Abbildung 7.21    Wertehilfe für Währungseinheit

Klicken Sie auf den Button oder drücken Sie die (F4)-Taste, wird Ihnen ein Pop-up-Fenster mit den möglichen Eingaben als Wertehilfeliste angezeigt (siehe Abbildung 7.22). Analog zum beschriebenen Vorgehen suchen Sie die richtige Währung, markieren diese und übernehmen sie. Die Verprobung ist wie bei den Festwerten erst im Anwendungsdialog vollständig wirksam.

Zum Abschluss dieser Arbeiten können Sie im ABAP Dictionary noch einmal überprüfen, welche Eingabehilfen hier hinterlegt wurden. Sie gehen hierzu im Bildschirm für die Tabellenpflege auf die Registerkarte Eingabehilfe/-prüfung. In den Spalten Fremdschlüssel, Prüftabelle, Herkunft der Eingabehilfe und Festwerte sehen Sie, welche Eingabehilfe für welches Feld aktiviert ist (siehe Abbildung 7.23).

Wertehilfefenster für Währungseinheiten

Abbildung 7.22    Wertehilfefenster für Währungseinheiten

Eingepflegte Eingabehilfen

Abbildung 7.23    Eingepflegte Eingabehilfen

 


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