Schwaiger | Schrödinger programmiert ABAP | E-Book | sack.de
E-Book

E-Book, Deutsch, 788 Seiten

Reihe: SAP Press

Schwaiger Schrödinger programmiert ABAP

Das etwas andere Fachbuch
3. Auflage 2019
ISBN: 978-3-8362-8210-9
Verlag: Rheinwerk
Format: PDF
Kopierschutz: 0 - No protection

Das etwas andere Fachbuch

E-Book, Deutsch, 788 Seiten

Reihe: SAP Press

ISBN: 978-3-8362-8210-9
Verlag: Rheinwerk
Format: PDF
Kopierschutz: 0 - No protection



Schrödinger kann schon ein bisschen programmieren, aber ABAP - so stellt er fest - ist eine ganz eigene Welt. Deshalb bringt ihm der Schwaiger Roland jetzt alles bei. Da raucht Schrödinger manchmal schon der Kopf vor lauter Datentypen, Klassen und Funktionsbausteinen. Doch dank vieler Übungen und Tipps hat er bald den Durchblick. Wetten, du auch?

Aus dem Inhalt:

  • ABAP-Grundlagen verstehen
  • Datentypen anlegen
  • Objekte und Interfaces einsetzen
  • Code in Module und Funktionen verpacken
  • Dynpros und Ereignisse verwenden
  • GUIs und Fiori-Oberflächen erstellen
  • Datenbanken, SAP HANA, SQL, CDS
  • Zugriffsschutz einrichten
  • Dynamische Programmierung


Dr. Roland Schwaiger studierte an der Bowling Green State University, OH (USA) Computer Science und an der Universität Salzburg (Österreich) Angewandte Informatik und Mathematik und promovierte dort im Bereich Mathematik. Nach mehrjähriger Assistententätigkeit an der Universität Salzburg kam er 1996 als Softwareentwickler zur SAP AG und entfaltete dort seine Fähigkeiten für drei Jahre im Bereich Human Resources in einem anregenden und inspirierenden Umfeld. Seit 1999 ist er als freiberuflicher Trainer, Lektor, Berater und Entwickler tätig (Zertifizierter Development Consultant SAP NetWeaver 2004 - Application Development Focus ABAP). Er setzt seine akademische Vorbildung und das bei SAP erworbene Wissen, abgerundet durch einen MBA in Prozess- und Projektmanagement, für die Softwareentwicklung in konkreten Entwicklungsprojekten und SAP-Schulungen ein. Die dort wiederum erworbenen Erkenntnisse trägt er zurück in die akademische Welt und verknüpft so Theorie und Praxis.
Schwaiger Schrödinger programmiert ABAP jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


An den Leser ... 2  Schrödingers Büro ... 4  Schrödingers Werkstatt ... 6  Schrödingers Wohnzimmer ... 8  Impressum ... 10  Inhaltsverzeichnis ... 12  Vorwort ... 24  1.  Eine Nudelmaschine für zu Hause -- Die SAP, das SAP-System und ABAP ... 27  Servus Schrödinger!!! ... 28  Schrödingers SAP-System ... 31  Die SAP -- Das Unternehmen ... 33  SAP-System ... 34  Die Erfolgsgeschichte: Vom ABAP zum ABAP ... 37  Kompilieren/Interpretieren ... 41  ABAP allgemein ... 42  ABAP-Syntax ... 43  Beispiel ABAP ... 45  Schrödingers ABAP ... 46  2.  Rein in die Küche -- raus aus der Küche -- Starten mit dem SAP-System ... 47  Anmelden zum Tauchkurs: Eintauchen in die SAP-Welt ... 48  Alles ist Transaktion -- Transaktionen als Shortcuts ... 50  Melde dich an! -- SAP-Anmeldung ... 51  Transaktion starten ... 53  Willkommen Schrödinger! -- SAP-Willkommenstext ... 54  Die Auslage des SAP-Systems -- SAP GUI-Aufbau ... 57  Alles auf einen Blick -- SAP Easy Access ... 59  Modus Operandi -- Zusätzliche Fenster öffnen ... 61  Das ist doch kein Thema ... 63  Hüben und drüben, nichts als Üben -- Rolands Folterkammer oder Übung macht den Meister ... 64  Hoppi-Galoppi ... SAP Fiori ... 66  3.  Ciao a tutti! (Hallo Welt!) -- Der 20-Minuten-Einstieg in die ABAP-Programmierung ... 69  Einsteigen und anschnallen! ... 70  Object Navigator -- Die integrierte Entwicklungsumgebung ... 72  Entwicklung organisieren -- Systemlandschaft, Änderungsauftrag ... 73  Ihr neuer Auftrag lautet: Auftragsanlage ... 75  Organisationskapsel Paket ... 77  Vom Entwickler zum Pakettier -- Paket anlegen ... 79  Einen Schritt zurück und bald zwei nach vorne ... 82  Die Infos zum Aufbau einer Datenbanktabelle ... 83  Das zweischichtige Domänenkonzept ... 84  Technisches Fundament eines Typs -- Domäne anlegen ... 86  Lege die Bedeutung an -- Datenelement anlegen ... 89  Kühlschrankdesign -- DB-Tabelle anlegen ... 91  Daten verarbeiten -- Programm anlegen ... 95  Das ABAP-Einmaleins -- Grundlegende Syntax ... 96  Der Durchblicker -- Programm entwickeln ... 98  Her mit den Daten -- DB-Zugriff ... 100  Jetzt lese ich ... 101  Ohne Struktur läuft nichts -- Grundlegende Programmstruktur ... 102  Alles muss es auch nicht sein -- Einfaches Selektionsbild ... 104  Layouten und Daten transportieren -- Ein einfaches Dynpro ... 108  Dekorieren der Auslage -- Dynpro-Layout ... 111  Ablauflogik ohne Ablaufdatum -- Ablauflogik programmieren ... 117  Ein Shortcut für den User -- Transaktionscode anlegen/ausführen ... 121  Aufbruch in eine neue Welt: ABAP Development Tools ... 122  4.  AAA -- Alles außer ABAP -- ABAP-Infrastruktur und -Werkzeuge ... 125  Warum? ... 126  Die Ablage der Entwicklungsobjekte -- Repository ... 127  Wer suchet der findet -- Suchen mit dem Repository Infosystem ... 132  Suchen und Finden -- Repository Infosystem ... 134  Geschichtet, aber nicht gefaltet -- ABAP-Infrastruktur ... 135  Wohin mit dem Anwender -- Speicherorganisation extern und intern ... 138  Werkzeugkiste -- Entwicklungswerkzeuge ... 140  Object Navigator -- Der Regisseur ... 141  Repository Browser ausnutzen ... 143  Repository Browser browsen ... 144  Synchron oder aus dem Tritt -- Objekt-Browser-Synchronisation ... 147  ABAP Editor -- Die Schreibmaschine ... 149  Debugger -- Der Kammerjäger ... 152  Debugger entschleunigt ... 153  Verwendungsnachweis -- Der Rückwärtssucher ... 157  Die ADT können das auch ... 160  5.  Schräge Typen* *also jetzt nicht der Schwaiger Roland -- Datentypen und -objekte ... 165  Vorspann ... 165  Von 0 auf 100 in wenigen Seiten -- Technik der Datenspeicherung im Hauptspeicher ... 166  Variables Standgas -- Datenobjekte ... 168  Variablen sind zum Angreifen ... 169  Variablendeklaration inline ... 170  Ein typischer Blickwinkel -- Datentypen ... 171  Anders betrachtet -- Datentypen ... 173  Die Vermessung ... 174  Ansprache -- Datenobjekte verwenden ... 175  Dynamik pur oder Statik nur? -- Statisch und dynamisch typisierte Variablen ... 176  Mein lokaler Typ ... 177  Zuerst mal elementar lokal -- Lokale elementare Typen ... 178  Dann elementar global -- Globale elementare Typen ... 180  Elementar global con domäne -- Domäne ... 183  Strukturell lokal -- Lokale strukturierte Typen ... 186  Struktur global -- Globale strukturierte Typen ... 188  Tabellarisch -- typisch/intern -- Lokaler Tabellentyp ... 192  Her mit der internen Tabelle ... 193  Wie viel Spalten hätten Sie denn gerne -- Zeilentyp ... 194  Normal, sortiert oder doch gehasht -- Tabellenart ... 195  Open the door please -- Schlüssel ... 197  Heute mal kopflos -- Kopfzeile ... 198  Tabellen für alle -- Globaler Tabellentyp ... 199  Operation: Table -- Tabellenoperationen ... 201  Bibliothek einräumen ... 203  Einzeln geht es auch -- Einzelverarbeitung von Tabelleneinträgen ... 205  Ändern und Löschen zum Abrunden -- Noch mehr Tabellenoperationen ... 206  Eine kleine Gutenachtgeschichte (über CDS) ... 207  6.  Si parla ABAP? Echtes Küchenlatein -- ABAP-Syntax I ... 213  Von Kontrollen und Schleifen ... 213  Zuweisungen, Operationen, Funktionen ... 214  Bitte nicht abweisen -- Zuweisungen ... 217  Was du darfst und was du sollst -- Konvertierungsregeln ... 219  Ketten ohne Perlen -- Zeichenketten-Funktionen ... 221  Von Segmenten und Offsetten -- Zeichenketten-Operationen ... 225  Ohne Rechnung, ohne mich -- Arithmetische Operationen ... 227  Notandor -- Logische Ausdrücke ... 228  Verzweige, falls ... -- IF ... THEN ... ELSE ... 230  Cassis -- CASE ... WHEN ... ENDCASE ... 232  Schleifen ... 233  Bedingungslose Schleifen -- DO ... ENDDO ... 233  Krasses Projekt für Hardcore-ABAPer ... 234  Bedingte Schleife -- Fußgesteuert ... 236  Bedingte Schleife -- Kopfgesteuert ... 237  Jetzt aber mal systematisch -- Systemfelder ... 238  Großbaustelle Rezeptprogramm ... 240  7.  Kleine Häppchen sind leichter wiederverdaut( „Schluss mit Spaghetti!“ ) -- ABAP-Syntax II ... 243  Motivation durch Demotivieren ... 244  Den richtigen Zeitpunkt finden -- Ereignisblöcke ... 245  Ereignisreiche Programme -- Ereignisschlüsselwörter ... 246  Ereignisse: Rekapitulation mit Selbstreflexion ... 247  Zur richtigen Zeit an irgendeinem Fleck? ... 249  Meine schönsten Ereignisse -- Rahmenprogramm ... 250  Dynpros mit Modul -- PBO, PAI, HOV ... 252  Module, ganz kurz -- Dynpro-Programmierung ... 253  Aber nun mit Schnittstelle -- Unterprogramme ... 254  Definiere zuerst! Unterprogramm-Definition ... 255  Übergeben und Übernehmen -- Schnittstellenparameter für das Unterprogramm ... 256  Lesen von DB mit Kapsel -- DB-Zugriff in Unterprogramm ... 258  Ein Typ muss es sein -- Schnittstelle typisieren ... 259  Bitte mit Typ -- Typisieren ... 260  Warum in die Ferne schweifen? -- Lokale Variablen ... 261  Sichtbar oder nicht -- Lokale Überdeckung ... 262  Aufruf bitte -- Unterprogramm-Aufruf ... 263  Totalumbau ... 264  Globale Wiederverwendung -- Funktionsbausteine ... 268  Funktionsgruppe ... 270  Leg dir eine Funktionsgruppe an ... 273  Es ist so weit, global bereit -- Funktionsbaustein ... 274  Her mit dem Rezept ... 276  Haaalloooooo -- Funktionsbaustein-Aufruf ... 279  Dein Finale ... 281  8.  Schrödinger zeigt Klasse -- ABAP Objects ... 283  Motivation zur OO ... 284  Begriffe aus der Realität ... 285  Holistische Sichtweise ... 287  Modellierung ... 288  Erst denken, dann lenken: Einfache UML als Analysewerkzeug zur Visualisierung von Klassen/Objekten ... 292  Klasse Kaffee(-vollautomat) auf dem Papier ... 294  Ohne meine Kollaborateure bin ich nichts ... 296  Klasse oder doch Objekt ... 298  Klasse Lokal ... 300  Dein kleines Objektistan ... 303  Kaffee für zwei ... 306  Datenablage -- Attribute ... 308  Wasserstand und Pause ... 310  Klasse Attribute, oder was? ... 311  Privat verkalkt/Private Attribute ... 314  Ab jetzt mit Methode -- Schrödinger frischt auf ... 315  Mit Methode -- ran an den Code ... 316  Die Schnittstelle der Methode ... 320  Ganz spezielle Methoden ... 323  Methoden mit Fülle ... 325  Selbstreferenz ... 328  Statisches Attribut ... 329  Methodenaufruf ... 330  Laufzeit sequenziert ... 332  Methoden für den Wasserbehälter ... 334  Von lokal nach global ... 336  Going global -- SE24 ... 337  Attribute und Methoden ... 338  Kaffeebohnen im Behälter ... 342  Senden und Empfangen ... 346  Sender mit Sendungsbedürfnis ... 347  Nächster Zubereitungsschritt: der Empfänger ... 348  Objektorientiertes Verkuppeln ... 349  Kaffee s'il vous plaît ... 351  9.  Erben oder nicht, das ist hier die Frage: Pasta di Erbe -- Vererbung ... 353  Motivation ... 354  Vererben und Erben von Klassen ... 357  Vererbung lokal ... 360  Meister der Pyramiden ... 362  Globale Vererbung: Ein praktisches Beispiel im SAP-Standard ... 364  Was wird wie und wo vererbt ... 367  Redefinieren -- Polymorphie von Methoden ... 371  Redefinieren als globale Herausforderung ... 374  Statische und dynamische Typen von Klassen mit ein wenig Casting ... 380  Festigung der Einsichten ... 382  Down-Cast ... 385  Abstrakte Klassen ... 388

10.  Keine Details bitte -- Der Blick durch Interfaces ... 393  Schizophrenie? ... 394  Lokal zum Einsteigen ... 397  Schnittig und definiert ... 398  Volles Risiko -- alles oder nichts ... 399  Klasse Zuordnung ... 400  Klasse Definition ... 401  Klasse Implementierung ... 402  Von Suchmaschinen und Tilden ... 403  Hast du gerufen? ... 404  Die vielen Gestalten der Methoden ... 406  Globalisierung mit positiven Auswirkungen ... 409  Global klasse Implementierung ... 411  Singleton-Party ... 413

11.  Das Kapitel für Feiglinge -- Ausnahmen ... 417  Ausnahmsweise behandelt ... 418  Eine kleine Geschichte der Ausnahmen ... 420  Noch mal langsam: Mit SY-SUBRC. Ausnahmewert wird gesetzt ... ... 424  ... und von dir behandelt ... 425  It's RAISING man, hallelujah. ... 426  Ausnahmen melden ... ... 426  ... und behandeln ... 427  The Catcher in the System ... 430  Ausnahmen melden (mit Nummern) ... ... 430  ... und behandeln (nach Nummern) ... 431  Ausnahmslos Objekte ... 433  Definieren geht vor ... 435  Ausnahmen melden (mit Ausnahmeklassen) ... ... 437  ... und Ausnahmen behandeln, aber richtig! Mit Ausnahmeklassen. ... 440  Das ausnahmengespickte Projekt ... 441

12.  Spaghetti-Programmierung -- Selektionsbilder, Listen und Nachrichten (GUI I) ... 447  Vom kleinen Window-Farmer bis zum Groß-GUI-Besitzer: Jeder will ein Selektionsbild! ... 448  Selektionsbild für Beschränkte mit Liste ... 450  PARAMETERS: Das kleinere der Selektionsbild-Ungeheuer ... 452  Typ und Vorschlag ... 455  Hey, Checker! ... 457  Rund wie ein Radiobutton ... 459  „Du darfst“ war gestern, heute ist „Du musst“ ... 461  Abflug in den Keller ... 462  Aber satt war er noch immer nicht: SELECT-OPTIONS ... 465  Mehr, Mehrere, Mehreres (ohne Rauschen) ... 470  Zur Anwendung gebracht ... fast ... 474  Graue Theorie: Eingabehilfe, Prüftabelle ... 476  Entfessle den Künstler in dir: Screen-Gestaltung ... 478  Endlich Texte! ... 482  Wie im Hamsterrad ... 484  Ereignisreich geht's weiter ... 490  Tagesschau ... also eine Nachrichtensendung ... 493  L -- Li -- Lis -- List -- Liste ... 497  Keine Beichte notwendig: Interaktion mit einer Liste ... 504

13.  Lasagne aufs Auge -- Dynpro-Programmierung (GUI II) ... 507  Dynamisch programmieren ... 508  Wer schreit hier so? Rahmenprogramme, die Dynpros rufen! ... 512  Dreieinigkeit ... 515  Alles ist im Fluss und manchmal geht es im Kreis ... 517  Wohin soll ich mich wenden? ... 521  Wo Module bestimmen ... 522  Mit welchem Titel darf ich dich ansprechen? ... 525  Über der Fläche steht die Oberfläche ... 528  Die Gestaltung eines eigenen Menüs ... 531  Kannst du mit dem Druck umgehen? ... 534  FFFFF ... 537  Weck den Künstler in dir ... 539  Dein Dynpro ... 547  Sammle Elemente ... 549  Wohin mit den Daten? ... 551  Ablauflogik Reloaded ... 553  Dynpro rufen mal anders ... 561

14.  Ravioli -- Web-Dynpro-ABAP-Programmierung (GUI III) ... 565

15.  Wie Phönix aus der Asche -- SAPUI5 oder wie baue ich eine moderne Webanwendung (aus Sicht von SAP ;-)) ... 567  SAP Ju-Ai-Feif ... 568  Der kleinstmögliche SAPUI5-Werkzeugkoffer ... 571  Hello OData-World! ... 575  Bei Aufruf Service (und dessen Analyse) ... 578  Jetzt aber: Daten anzeigen lassen ... 581  Destinationen muss man haben ... 583  Was ist Ihre Destination, Herr Schödinger? ... 584  Eine Architektur für SAPUI5-Anwendungen ... 586  Wir generieren uns eine Anwendung ... 587

16.  Raus aus meiner Küche! -- Berechtigungen ... 593  Berechtigungsrundumschlag -- Überblick Berechtigungen ... 594  Am Anfang steht das Objekt mit Klasse -- Berechtigungsobjekt ... 597  Die Details zur Berechtigung ... 600  Der Berechtigungs-Selbstchecker -- S_TCODE prüfen ... 602  Experimente mit AUTHORITY-CHECK ... 604  Warum mag mich keiner -- SU53 ... 605  Finger weg von meinem View! ... 607

17.  Vorratskammer einrichten mit ziemlich viel Schnickschnack -- DB-Tabellen erstellen ... 611  Freiland-Datenhaltung -- Daten persistieren ... 612  Warum einfach, wenn es mit Schnittstelle geht -- Die Datenbankschnittstelle ... 614  Transparente Tabelle en Detail ... 617  Spalten und der Rest -- Tabellenfelder ... 620  Ohne Technik keine Tabelle -- Technische Einstellungen ... 625  Mehr als eine Tabelle ... 630  Welcher Wert ist möglich -- Fremdschlüssel ... 633  Ich will auch anders suchen -- Sekundärindex ... 638  Ändern oder nicht, was geht -- Erweiterungskategorie ... 641  Definieren und Realisieren -- Datenbankobjekt ... 643  Mein erster Eintrag -- Datenbanktabellen-Einträge erzeugen ... 644  Artenvielfalt im Dictionary -- Weitere Tabellenarten ... 646

18.  Vorratskammer plündern -- DB-Tabellen auslesen ... 647  Erster Takt -- SQL ... 648  Zweiter Takt -- SQL ... 648  Eingelagert und geplündert -- Datenpufferung ... 649  Datenmanipulator nativ -- DML mit Native SQL ... 650  Einfach definieren -- Datendefinition mit dem ABAP Dictionary ... 650  Alles recht und schön -- Berechtigungen und Konsistenzprüfungen ... 651  Open SQL grundiert -- Basisbefehlssatz aus Open SQL ... 651  Verklausuliert -- SELECT-Klausel ... 653  Wohin damit -- INTO target ... 656  Woher -- FROM source ... 657  Aber bitte nicht alles -- WHERE-Klausel ... 659  Da geht noch mehr -- Weitere Klauseln ... 660  Und jetzt alles kombiniert -- SELECT-Beispiel ... 661  Mehr als eine Tabelle ist auch okay -- Views ... 666  Schritt für Schritt zum View mit relationalen Operatoren ... 670  Da will ich auch nicht alles -- Selektionsbedingungen ... 679  Zusammenfassung in Bildern -- View-Definition ... 680  Mit Views programmieren ... 682  Weil du so brav warst -- Programmieren mit Views ... 684  Die CDS-Beziehungskiste: Von Joins und Assoziationen ... 686  Mit CDS-Views programmieren ... 688

19.  Vorratskammer in Schuss halten -- DB-Daten pflegen ... 691  Lesen ist Silber, Schreiben ist Gold -- DELETE, UPDATE, MODIFY und INSERT ... 692  Sichere Daten -- Transaktionskonzept ... 692  Von einem Zustand zum nächsten -- Datenbank-LUW ... 694  Bist du konsistent? ... 697  Aktionen bündeln -- SAP-LUW ... 698  Und jetzt auch noch transaktional -- SAP-Transaktion ... 699  Datenmanipulator-Entwicklungsrahmen -- Das Programm für die Open-SQL-Anweisungen ... 701  Und noch eins und noch eins und ... -- INSERT ... 706  Massendaten einfügen ... 708  Ändern muss man auch ab und zu -- UPDATE ... 711  Massendaten ... 712  Weg damit -- DELETE ... 714  Kombianweisung -- MODIFY ... 717  Halt, Sperre! -- Sperrkonzept ... 719  Die fünf Gebote der performanten DB-Programmierung ... 720

20.  Mit Schirm, Charme -- und vielleicht noch einem Melonensorbet -- Daten in Dateien, Datenablage ohne DB ... 721  Daten ohne Datenbank ... 722  GUI-Loads -- Upload und Download ... 722  Frontend Services ... 724  Pfad ermitteln ... 727  Download now, zumindest vorbereitet -- Download vorbereiten ... 729  Auch nett für Datenwiederverwendung -- Clipboard ... 730  Download now! ... 732  Einen hamma noch -- Upload ... 735  Daten auf dem Applikationsserver ... 737  OPEN House -- OPEN DATASET ... 738  DatenTRANSFER -- Daten schreiben ... 739  READ DATASET -- Daten lesen ... 741

21.  Täglich wechselnde Speisekarten -- Dynamische Programmierung ... 743  Dynamische Programmierung hat nichts mit Beweglichkeit zu tun ... 744  Feldsymbole ... 744  Datenrefs ... 746  RTTS = RTTI + RTTC ... 748  Überschrift finden ... 749  Dynamische Tokens ... 751  Dynamisches Feld ... 753  Dynamischer Typ ... 753  Dynamische Komponente ... 754  Dynamische Bedingung ... 754  Dynamisches Unterprogramm ... 756  Programmerzeugung im Hauptspeicher ... 756  Programmerzeugung im Repository ... 757  Bildnachweis ... 760  Index ... 761


Schwaiger, Roland
Dr. Roland Schwaiger studierte an der Bowling Green State University, OH (USA) Computer Science und an der Universität Salzburg (Österreich) Angewandte Informatik und Mathematik und promovierte dort im Bereich Mathematik. Nach mehrjähriger Assistententätigkeit an der Universität Salzburg kam er 1996 als Softwareentwickler zur SAP AG und entfaltete dort seine Fähigkeiten für drei Jahre im Bereich Human Resources in einem anregenden und inspirierenden Umfeld.
Seit 1999 ist er als freiberuflicher Trainer, Lektor, Berater und Entwickler tätig (Zertifizierter Development Consultant SAP NetWeaver 2004 – Application Development Focus ABAP). Er setzt seine akademische Vorbildung und das bei SAP erworbene Wissen, abgerundet durch einen MBA in Prozess- und Projektmanagement, für die Softwareentwicklung in konkreten Entwicklungsprojekten und SAP-Schulungen ein. Die dort wiederum erworbenen Erkenntnisse trägt er zurück in die akademische Welt und verknüpft so Theorie und Praxis.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.