Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Vorwort
24
1 Eine Nudel­maschine für zu Hause
27
Servus Schrödinger!!!
28
Die SAP – Das Unternehmen
31
SAP-System
32
Die Erfolgsgeschichte: Vom ABAP zum ABAP
35
Kompilieren/Interpretieren
39
ABAP allgemein
40
ABAP-Syntax
40
Schrödingers ABAP
43
2 Rein in die Küche – raus aus der Küche
45
Anmelden zum Tauchkurs: Eintauchen in die SAP-Welt
46
Alles ist Transaktion – Transaktionen als Shortcuts
48
Melde dich an! – SAP-Anmeldung
49
Transaktion starten
51
Willkommen Schrödinger! – SAP-Willkommenstext
52
Die Auslage des SAP-Systems – SAP-GUI-Aufbau
55
Alles auf einen Blick – SAP Easy Access
57
Modus Operandi – Zusätzliche Fenster öffnen
59
Das ist doch kein Thema
61
Hoppi-Galoppi … SAP Fiori
64
3 Ciao a tutti! (Hallo Welt!)
67
Einsteigen und anschnallen!
68
Object Navigator – Die integrierte ­Entwicklungsumgebung
70
Entwicklung organisieren – ­Systemlandschaft, Änderungsauftrag
71
Ihr neuer Auftrag lautet: Auftragsanlage
73
Organisationskapsel Paket
74
Vom Entwickler zum Pakettier – Paket anlegen
77
Die Infos zum Aufbau einer Datenbanktabelle
80
Das zweischichtige Domänenkonzept
82
Technisches Fundament eines Typs – Domäne anlegen
83
Lege die Bedeutung an – Datenelement anlegen
87
Kühlschrankdesign – DB-Tabelle anlegen
88
Der ultimative Tabellenpflegebildgenerator
92
96
Das ABAP-Einmaleins – Grundlegende Syntax
97
Der Durchblicker – Programm entwickeln
100
Her mit den Daten – DB-Zugriff
102
Ohne Struktur läuft nichts – Grundlegende Programmstruktur
104
Layouten und Daten transportieren – Ein einfaches Dynpro
109
Ablauflogik ohne Ablaufdatum – Ablauflogik programmieren
118
Ein Shortcut für die User – Transaktionscode anlegen/ausführen
122
Aufbruch in eine neue Welt: ABAP Development Tools
124
4 AAA – Alles außer ABAP
127
Warum?
128
Die Ablage der Entwicklungsobjekte – Repository
129
Wer suchet der findet – Suchen mit dem Repository Infosystem
132
Geschichtet, aber nicht gefaltet – ABAP-Infrastruktur
136
Wohin mit dem Anwender – Speicherorganisation extern und intern
140
Object Navigator – Der Regisseur
142
Repository Browser ausnutzen
145
Repository Browser browsen
146
Synchron oder aus dem Tritt – Objekt-Browser-Synchronisation
149
ABAP Editor – Die Schreibmaschine
150
Debugger – Der Kammerjäger
153
Debugger entschleunigt
155
Verwendungsnachweis – Der Rückwärtssucher
159
Die ADT können das auch
161
5 Schräge Typen* *also jetzt nicht der Schwaiger Roland
167
Vorspann
167
Von 0 auf 100 auf wenigen Seiten – Technik der Datenspeicherung im Hauptspeicher
168
Variables Standgas – Datenobjekte
170
Variablen sind zum Angreifen
171
Variablendeklaration inline
172
Ein typischer Blickwinkel – Datentypen
173
Anders betrachtet – Datentypen
175
Ansprache – Datenobjekte verwenden
177
Dynamik pur oder Statik nur? – Statisch und dynamisch typisierte Variablen
178
Mein lokaler Typ
179
Zuerst mal elementar lokal – Lokale elementare Typen
180
Dann elementar global – Globale elementare Typen
182
Strukturell lokal – Lokale strukturierte Typen
188
Struktur global – Globale strukturierte Typen
190
Tabellarisch – typisch/intern – Lokaler Tabellentyp
194
Her mit der internen Tabelle
195
Wie viel Spalten hätten Sie denn gerne – Zeilentyp
196
Normal, sortiert oder doch gehasht – Tabellenart
197
Open the door please – Schlüssel
199
Heute mal kopflos – Kopfzeile
200
Tabellen für alle – Globaler Tabellentyp
200
Operation: Table – Tabellenoperationen
203
Einzeln geht es auch – Einzelverarbeitung von Tabelleneinträgen
206
Ändern und Löschen zum Abrunden – Noch mehr Tabellenoperationen
208
6 Si parla ABAP? ­Echtes Küchen­latein
215
Von Kontrollen und Schleifen
215
Zuweisungen, Operationen, Funktionen
216
Bitte nicht abweisen – Zuweisungen
218
Was du darfst und was du sollst – ­Konvertierungsregeln
221
Ketten ohne Perlen – Zeichenketten-Funktionen
223
Ohne Rechnung, ohne mich – Arithmetische Operationen
231
NOTANDOR – Logische Ausdrücke
232
Verzweige, falls … – IF … THEN … ELSE
234
Schleifen
237
Bedingungslose Schleifen – DO … ENDDO
237
Krasses Projekt für Hardcore-ABAPer
238
Bedingte Schleife – Fußgesteuert
240
Bedingte Schleife – Kopfgesteuert
241
Jetzt aber mal systematisch – ­Systemfelder
242
Die neue ABAP-Syntax
244
7 Kleine Häppchen sind leichter ­wiederverdaut( »Schluss mit Spaghetti!« )
253
Motivation durch Demotivieren
253
Den richtigen Zeitpunkt finden – Ereignisblöcke
255
Ereignisreiche Programme – Ereignisschlüsselwörter
256
Zur richtigen Zeit an irgendeinem Fleck?
259
Dynpros mit Modul – PBO, PAI, HOV
261
Module, ganz kurz – Dynpro-Programmierung
263
Aber nun mit Schnittstelle – Unterprogramme
264
Definiere zuerst! Unterprogramm-Definition
265
Übergeben und Übernehmen – Schnittstellenparameter für das Unterprogramm
266
Ein Typ muss es sein – Schnittstelle ­typisieren
269
Bitte mit Typ – Typisieren
270
Warum in die Ferne schweifen? – Lokale Variablen
271
Sichtbar oder nicht – Lokale Überdeckung
271
Aufruf bitte – Unterprogramm-Aufruf
273
Globale Wiederverwendung – ­Funktionsbausteine
277
Funktionsgruppe
280
Leg dir eine Funktionsgruppe an
283
Es ist so weit, global bereit – ­Funktionsbaustein
284
Haaalloooooo – Funktionsbaustein-Aufruf
288
8 Schrödinger zeigt Klasse
293
Motivation zur OO
294
Begriffe aus der Realität
295
Holistische Sichtweise
297
Modellierung
298
Erst denken, dann lenken: Einfache UML als Analysewerkzeug zur Visualisierung von Klassen/Objekten
302
Klasse Kaffee(-vollautomat) auf dem Papier
304
Ohne meine Kollaborateure bin ich nichts
306
Klasse Lokal
310
Dein kleines Objektistan
313
Datenablage – Attribute
318
Klasse Attribute, oder was?
321
Mit Methode – ran an den Code
325
Die Schnittstelle der Methode
330
Ganz spezielle Methoden
333
Selbstreferenz
338
Statisches Attribut
339
Methodenaufruf
340
Laufzeit sequenziert
341
Methoden für den Wasserbehälter
343
Von lokal nach global
346
Going global – SE24
347
Attribute und Methoden
349
Senden und Empfangen
358
Sender mit Sendungsbedürfnis
359
Nächster Zubereitungsschritt: der Empfänger
361
Objektorientiertes Verkuppeln
362
9 Erben oder nicht, das ist hier die Frage: Pasta di Erbe
365
Vererben und Erben von Klassen
368
Vererbung lokal
372
Globale Vererbung: Ein praktisches Beispiel im SAP-Standard
376
Redefinieren – Polymorphie von Methoden
383
Redefinieren als globale Herausforderung
386
Statische und dynamische Typen von Klassen mit ein wenig Casting
392
Down-Cast
397
Abstrakte Klassen
400
10 Keine Details bitte
405
Schizophrenie?
406
Lokal zum Einsteigen
408
Schnittig und definiert
410
Volles Risiko – alles oder nichts
411
Klasse Zuordnung
411
Klasse Definition
413
Klasse Implementierung
414
Hast du gerufen?
416
Globalisierung mit positiven Auswirkungen
420
Eine global klasse Implementierung
423
Singleton-Party
425
11 Das Kapitel für ­Feiglinge
429
Ausnahmsweise behandelt
429
Eine kleine Geschichte der Ausnahmen
431
It’s RAISING men, hallelujah.
438
Ausnahmen melden …
438
… und behandeln
439
Ausnahmslos Objekte
445
Definieren geht vor
446
... und Ausnahmen behandeln, aber richtig! Mit Ausnahmeklassen.
453
12 Schrödingers Speisekarten-Albtraum
461
Erst mal eine solide Grundlage – ein leeres Programm
464
Eine Entscheidung, bitte: PARAMETERS
465
Die Auswahl lichtet sich – das erste Eingabefeld
466
Darf’s ein bisschen mehr sein? SELECT-OPTIONS
468
Vegetarisch, Fisch oder Fleisch – Radiobuttons mit Sofortwirkung
470
Drei Ereignisse, drei Aufgaben: AT SELECTION-SCREEN
472
Daten holen – SELECT mit JOIN und MESSAGE
474
Schreiben mit Stil – WRITE, TOP-OF-PAGE und ein bisschen Glamour
476
Das fertige Programm – das volle Speisekartenerlebnis
477
13 Most Valuable Cook (MVC)
483
Dein Wirtshaus, dein Rahmenprogramm
485
Vier Sichten – und die Köchin dirigiert
489
Schwing den Kochlöffel – Module schreiben
490
Decken und garnieren – der Layout-Editor
492
À la carte – durch die Speisekarte blättern
496
Kellner mit Bestellbuch – GUI-Status
498
Bestellung aufnehmen – OK-Code
502
Ich nehm eh immer Wiener Schnitzel – zielsicher zu einer Mahlzeit
503
Tellerwechsel – das Detail-Pop-up als zweites Dynpro
505
Speisentypänderung prüfen – CHAIN-FIELD
507
14 Ravioli
511
15 Bäume, Bäume, Bäume … und langsam wächst daraus ein Wald
513
Aus Grau mach bunt – die Evolution der SAP-Oberflächen
514
Der kleinstmögliche SAPUI5-Werkzeugkoffer
519
Dein Cockpit einrichten – BAS abonnieren und Dev Space anlegen
519
Hello OData-World!
521
Bei Aufruf Service (und dessen Analyse)
524
Destinationen oder »Wohin soll ich mich wenden?«
529
Weg 1: Selbst gebaut – OData V2 mit SEGW und eine Freestyle-App
530
Erst mal Rucksack packen – zwei Tabellen fürs Gepäck
531
Der Service Builder – ein SEGW-Projekt anlegen
534
Ein bisschen ABAP muss sein – GET_ENTITYSET und GET_ENTITY
536
Und jetzt die Oberfläche – eine schlanke Freestyle-App
541
So eine schöne Aussicht – der Haupt-View
546
Einer muss ja die Kontrolle haben – der Haupt-Controller für Auswahl und Navigation
548
Das Routing – zwei Seiten, eine App
550
Jetzt geht’s ans Detail – Positionen über die Association abbilden
552
Weg 2: SAP Fiori Elements – die Fertigpackung
555
Weg 3: RAP – wenn der Service aus dem eigenen Backend kommt
565
Erster Baustein – das CDS-Datenmodell
566
Zweiter Baustein – die Verhaltensdefinition
571
Zwischenspiel 1: Die Draft-Tabelle anlegen
574
Zwischenspiel 2: Den Behavior Pool implementieren
576
Dritter Baustein – der Business-Service
577
16 Raus aus meiner Küche!
583
Berechtigungsrundumschlag
583
Die Details zur Berechtigung
590
Der Berechtigungs-Selbstchecker – S_TCODE prüfen
592
Warum mag mich keiner – SU53
594
Finger weg von meinem View!
596
17 Vorratskammer ­einrichten mit ziemlich viel Schnickschnack
601
Freiland-Datenhaltung – ­Daten persistieren
602
Warum einfach, wenn es mit Schnittstelle geht – Die Datenbankschnittstelle
604
Transparente Tabelle en Detail
606
Ohne Technik keine Tabelle – Technische Einstellungen
614
619
Mehr als eine Tabelle
620
Welcher Wert ist möglich – Fremdschlüssel
623
Ich will auch anders suchen – Sekundärindex
628
Definieren und Realisieren – Datenbankobjekt
632
Mein erster Eintrag – Datenbanktabellen-Einträge erzeugen
634
Artenvielfalt im Dictionary – Weitere Tabellenarten
635
18 Vorratskammer plündern
637
Erster Takt – SQL
637
Zweiter Takt – SQL
638
Eingelagert und geplündert – Datenpufferung
639
Datenmanipulator nativ – DML mit Native SQL
640
Einfach definieren – Datendefinition mit dem ABAP Dictionary
640
Alles recht und schön – Berechtigungen und Konsistenzprüfungen
641
ABAP SQL grundiert – Basisbefehlssatz aus ABAP SQL
641
Verklausuliert – SELECT-Klausel
642
Woher? FROM source
647
Da geht noch mehr – Weitere Klauseln
649
Und jetzt alles kombiniert – SELECT-Beispiel
650
Mehr als eine Tabelle ist auch okay – Views
655
Schritt für Schritt zum View mit ­relationalen Operatoren
660
Da will ich auch nicht alles – Selektionsbedingungen
668
Mit Views programmieren
671
Weil du so brav warst – Programmieren mit Views
674
Die CDS-Beziehungskiste: Von Joins und Assoziationen
676
19 Vorratskammer in Schuss halten
681
Lesen ist Silber, Schreiben ist Gold – DELETE, UPDATE, MODIFY und INSERT
681
Sichere Daten – Transaktionskonzept
682
Von einem Zustand zum nächsten – Datenbank-LUW
684
Aktionen bündeln – SAP-LUW
687
Und jetzt auch noch transaktional – SAP-Transaktion
689
Und noch eins und noch eins und … – INSERT
695
Massendaten einfügen
698
Weg damit – DELETE
702
Halt, Sperre! – Sperrkonzept
707
20 Mit Schirm, Charme – und vielleicht noch ­einem Melonensorbet
709
21 Täglich wechselnde Speisekarten
711
Dynamische Programmierung hat nichts mit Beweglichkeit zu tun
712
Feldsymbole
712
Datenrefs
714
RTTS = RTTI + RTTC
716
Überschrift finden
717
Dynamische Tokens
719
Dynamisches Feld
720
Dynamischer Typ
721
Dynamische Komponente
722
Dynamische Bedingung
722
Dynamisches Unterprogramm
724
Programmerzeugung im Hauptspeicher
724
Programmerzeugung im Repository
725
Bildnachweis
728
Index
729