Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
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 – Eigenes SAP-System runterladen
31
Schrödingers SAP-System – Das brauchst du dafür
33
Schrödingers SAP-System – Installieren
34
Testsystem in der Wolke
37
Die SAP – Das Unternehmen
39
SAP-System
40
Die Erfolgsgeschichte: Vom ABAP zum ABAP
43
Kompilieren/Interpretieren
47
ABAP allgemein
48
ABAP-Syntax
49
Beispiel ABAP
51
Schrödingers ABAP
52
2 Rein in die Küche – raus aus der Küche – Starten mit dem SAP-System
53
Anmelden zum Tauchkurs: Eintauchen in die SAP-Welt
54
Alles ist Transaktion – Transaktionen als Shortcuts
56
Melde dich an! – SAP-Anmeldung
57
Transaktion starten
59
Willkommen Schrödinger! – SAP-Willkommenstext
60
Die Auslage des SAP-Systems – SAP GUI-Aufbau
63
Alles auf einen Blick – SAP Easy Access
65
Modus Operandi – Zusätzliche Fenster öffnen
67
Hüben und drüben, nichts als Üben – Rolands Folterkammer oder Übung macht den Meister
69
3 Ciao a tutti! (Hallo Welt!) – Der 20-Minuten-Einstieg in die ABAP-Programmierung
71
Einsteigen und anschnallen!
72
Object Navigator – Die integrierte Entwicklungsumgebung
74
Entwicklung organisieren – Systemlandschaft, Änderungsauftrag
75
Ihr neuer Auftrag lautet: Auftragsanlage
77
Organisationskapsel Paket
79
Vom Entwickler zum Pakettier – Paket anlegen
81
Einen Schritt zurück und bald zwei nach vorne
84
Die Infos zum Aufbau einer Datenbanktabelle
85
Das zweischichtige Domänenkonzept
86
Technisches Fundament eines Typs – Domäne anlegen
88
Lege die Bedeutung an – Datenelement anlegen
91
Kühlschrankdesign – DB-Tabelle anlegen
93
Daten verarbeiten – Programm anlegen
97
Das ABAP-Einmaleins – Grundlegende Syntax
98
Der Durchblicker – Programm entwickeln
100
Her mit den Daten – DB-Zugriff
102
Jetzt lese ich
103
Ohne Struktur läuft nichts – Grundlegende Programmstruktur
104
Alles muss es auch nicht sein – Einfaches Selektionsbild
106
Layouten und Daten transportieren – Ein einfaches Dynpro
110
Dekorieren der Auslage – Dynpro-Layout
112
Ablauflogik ohne Ablaufdatum – Ablauflogik programmieren
118
Ein Shortcut für den User – Transaktionscode anlegen/ausführen
122
4 AAA – Alles außer ABAP – ABAP-Infrastruktur und -Werkzeuge
123
Warum?
124
Die Ablage der Entwicklungsobjekte – Repository
125
Wer suchet der findet – Suchen mit dem Repository Infosystem
130
Suche von oben – Suchen in der Anwendungshierarchie
132
Suchen und Finden – Repository Infosystem
133
Geschichtet, aber nicht gefaltet – ABAP-Infrastruktur
134
Wohin mit dem Anwender – Speicherorganisation extern und intern
137
Werkzeugkiste – Entwicklungswerkzeuge
139
Object Navigator – Der Regisseur
140
Repository Browser verschwinden lassen
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
5 Schräge Typen* *also jetzt nicht der Schwaiger Roland – Datentypen und -objekte
159
Vorspann
160
Von 0 auf 100 in wenigen Seiten – Technik der Datenspeicherung im Hauptspeicher
160
Variables Standgas – Datenobjekte
161
Variablen sind zum Angreifen
162
Ein typischer Blickwinkel – Datentypen
163
Anders betrachtet – Datentypen
165
Die Vermessung
166
Ansprache – Datenobjekte verwenden
167
Dynamik pur oder Statik nur? – Statisch und dynamisch typisierte Variablen
168
Mein lokaler Typ
169
Zuerst mal elementar lokal – Lokale elementare Typen
170
Dann elementar global – Globale elementare Typen
172
Elementar global con domäne – Domäne
175
Strukturell lokal – Lokale strukturierte Typen
178
Struktur global – Globale strukturierte Typen
180
Tabellarisch – typisch/intern – Lokaler Tabellentyp
184
Her mit der internen Tabelle
185
Wie viel Spalten hätten Sie denn gerne – Zeilentyp
186
Normal, sortiert oder doch gehasht – Tabellenart
187
Open the door please – Schlüssel
189
Heute mal kopflos – Kopfzeile
190
Tabellen für alle – Globaler Tabellentyp
191
Operation: Table – Tabellenoperationen
193
Bibliothek einräumen
195
Einzeln geht es auch – Einzelverarbeitung von Tabelleneinträgen
197
Ändern und Löschen zum Abrunden – Noch mehr Tabellenoperationen
198
6 Si parla ABAP? Echtes Küchenlatein – ABAP-Syntax I
199
Von Kontrollen und Schleifen
200
Zuweisungen, Operationen, Funktionen
200
Bitte nicht abweisen – Zuweisungen
203
Was du darfst und was du sollst – Konvertierungsregeln
205
Ketten ohne Perlen – Zeichenketten-Funktionen
207
Von Segmenten und Offsetten – Zeichenketten-Operationen
211
Ohne Rechnung, ohne mich – Arithmetische Operationen
213
Notandor – Logische Ausdrücke
214
Verzweige, falls … – IF … THEN … ELSE
216
Cassis – CASE … WHEN … ENDCASE
218
Schleifen
219
Bedingungslose Schleifen – DO … ENDDO
219
Krasses Projekt für Hardcore-ABAPer
220
Bedingte Schleife – Fußgesteuert
222
Bedingte Schleife – Kopfgesteuert
223
Jetzt aber mal systematisch – Systemfelder
224
Großbaustelle Rezeptprogramm
226
7 Kleine Häppchen sind leichter wiederverdaut („Schluss mit Spaghetti!“) – ABAP-Syntax II
229
Motivation durch Demotivieren
230
Den richtigen Zeitpunkt finden – Ereignisblöcke
231
Ereignisreiche Programme – Ereignisschlüsselwörter
232
Ereignisse: Rekapitulation mit Selbstreflexion
233
Zur richtigen Zeit an irgendeinem Fleck?
235
Meine schönsten Ereignisse – Rahmenprogramm
236
Dynpros mit Modul – PBO, PAI, HOV
238
Module, ganz kurz – Dynpro-Programmierung
239
Aber nun mit Schnittstelle – Unterprogramme
240
Definiere zuerst! Unterprogramm-Definition
241
Übergeben und Übernehmen – Schnittstellenparameter für das Unterprogramm
242
Lesen von DB mit Kapsel – DB-Zugriff in Unterprogramm
244
Ein Typ muss es sein – Schnittstelle typisieren
245
Bitte mit Typ – Typisieren
246
Warum in die Ferne schweifen? – Lokale Variablen
247
Sichtbar oder nicht – Lokale Überdeckung
248
Aufruf bitte – Unterprogramm-Aufruf
249
Totalumbau
250
Globale Wiederverwendung – Funktionsbausteine
254
Funktionsgruppe
256
Leg dir eine Funktionsgruppe an
259
Es ist so weit, global bereit – Funktionsbaustein
260
Her mit dem Rezept
262
Haaalloooooo – Funktionsbaustein-Aufruf
265
Dein Finale
267
8 Schrödinger zeigt Klasse – ABAP Objects
269
Motivation zur OO
270
Begriffe aus der Realität
271
Holistische Sichtweise
273
Modellierung
274
Erst denken, dann lenken: Einfache UML als Analysewerkzeug zur Visualisierung von Klassen/Objekten
278
Klasse Kaffee(-vollautomat) auf dem Papier
280
Ohne meine Kollaborateure bin ich nichts
282
Klasse oder doch Objekt
284
Klasse Lokal
286
Dein kleines Objektistan
289
Kaffee für zwei
292
Datenablage – Attribute
294
Wasserstand und Pause
296
Klasse Attribute, oder was?
297
Privat verkalkt / Private Attribute
300
Ab jetzt mit Methode – Schrödinger frischt auf
301
Mit Methode – ran an den Code
302
Die Schnittstelle der Methode
306
Ganz spezielle Methoden
309
Methoden mit Fülle
311
Selbstreferenz
314
Statisches Attribut
315
Methodenaufruf
316
Laufzeit sequenziert
318
Methoden für den Wasserbehälter
320
Von lokal nach global
322
Going global – SE24
323
Attribute und Methoden
324
Kaffeebohnen im Behälter
328
Senden und Empfangen
332
Sender mit Sendungsbedürfnis
333
Empfänger
334
Objektorientiertes Verkuppeln
335
Kaffee s'il vous plaît
337
9 Erben oder nicht, das ist hier die Frage: Pasta di Erbe – Vererbung
339
Motivation
340
Vererben und Erben von Klassen
343
Vererbung lokal
346
Meister der Pyramiden
348
Globale Vererbung: Ein praktisches Beispiel im SAP-Standard
350
Was wird wie und wo vererbt
353
Redefinieren – Polymorphie von Methoden
357
Redefinieren als globale Herausforderung
360
Statische und dynamische Typen von Klassen mit ein wenig Casting
366
Festigung der Einsichten
368
Down-Cast
371
Abstrakte Klassen
374
10 Keine Details bitte – Der Blick durch Interfaces
379
Schizophrenie?
380
Lokal zum Einsteigen
383
Schnittig und definiert
384
Volles Risiko – alles oder nichts
385
Klasse Zuordnung
386
Klasse Definition
387
Klasse Implementierung
388
Von Suchmaschinen und Tilden
389
Hast du gerufen?
390
Die vielen Gestalten der Methoden
392
Globalisierung mit positiven Auswirkungen
395
Global klasse Implementierung
397
Singleton-Party
399
11 Das Kapitel für Feiglinge – Ausnahmen
403
Ausnahmsweise behandelt
404
Eine kleine Geschichte der Ausnahmen
406
Nochmal langsam: Mit SY-SUBRC. Ausnahmewert wird gesetzt …
410
… und von dir behandelt
411
It’s RAISING man, hallelujah.
412
Ausnahmen melden …
412
… und behandeln
413
The Catcher in the System
416
Ausnahmen melden (mit Nummern) …
416
… und behandeln (nach Nummern)
417
Ausnahmslos Objekte
419
Definieren geht vor
421
Ausnahmen melden (mit Ausnahmeklassen) …
423
… und Ausnahmen behandeln, aber richtig! Mit Ausnahmeklassen.
426
Das ausnahmengespickte Projekt
427
12 Spaghetti-Programmierung – Selektionsbilder, Listen und Nachrichten (GUI I)
433
Vom kleinen Window-Farmer bis zum Groß-GUI-Besitzer: Jeder will ein Selektionsbild!
434
Selektionsbild für Beschränkte mit Liste
436
PARAMETERS: Das kleinere der Selektionsbild-Ungeheuer
438
Typ und Vorschlag
441
Hey, Checker!
443
Rund wie ein Radiobutton
445
„Du darfst“ war gestern, heute ist „Du musst“
447
Abflug in den Keller
448
Aber satt war er noch immer nicht: SELECT-OPTIONS
451
Mehr, Mehrere, Mehreres (ohne Rauschen)
456
Zur Anwendung gebracht ... fast
460
Graue Theorie: Eingabehilfe, Prüftabelle
462
Entfessle den Künstler in dir: Screen-Gestaltung
464
Endlich Texte!
468
Wie im Hamsterrad
470
Ereignisreich geht’s weiter
476
Tagesschau ... also eine Nachrichtensendung
479
L – Li – Lis – List – Liste
483
Keine Beichte notwendig: Interaktion mit einer Liste
490
13 Lasagne aufs Auge – Dynpro-Programmierung (GUI II)
493
Dynamisch programmieren
494
Wer schreit hier so? Rahmenprogramme, die Dynpros rufen!
498
Dreieinigkeit
501
Alles ist im Fluss und manchmal geht es im Kreis
503
Wohin soll ich mich wenden?
507
Wo Module bestimmen
508
Mit welchem Titel darf ich dich ansprechen?
511
Über der Fläche steht die Oberfläche
514
Die Gestaltung eines eigenen Menüs
517
Kannst du mit dem Druck umgehen?
520
FFFFF
523
Weck den Künstler in dir
525
Dein Dynpro
533
Sammle Elemente
535
Wohin mit den Daten?
537
Ablauflogik Reloaded
539
Dynpro rufen mal anders
547
14 Ravioli – Web-Dynpro-ABAP-Programmierung (GUI III)
551
15 Raus aus meiner Küche! – Berechtigungen
553
Berechtigungsrundumschlag – Überblick Berechtigungen
554
Am Anfang steht das Objekt mit Klasse – Berechtigungsobjekt
557
Die Details zur Berechtigung
560
Der Berechtigungs-Selbstchecker – S_TCODE prüfen
562
Experimente mit AUTHORITY-CHECK
564
Warum mag mich keiner – SU53
565
16 Vorratskammer einrichten mit ziemlich viel Schnickschnack – DB-Tabellen erstellen
567
Freiland-Datenhaltung – Daten persistieren
568
Warum einfach, wenn es mit Schnittstelle geht – Die Datenbankschnittstelle
570
Transparente Tabelle en Detail
573
Spalten und der Rest – Tabellenfelder
576
Ohne Technik keine Tabelle – Technische Einstellungen
581
Mehr als eine Tabelle
584
Welcher Wert ist möglich – Fremdschlüssel
587
Ich will auch anders suchen – Sekundärindex
592
Ändern oder nicht, was geht – Erweiterungskategorie
595
Definieren und Realisieren – Datenbankobjekt
597
Mein erster Eintrag – Datenbanktabellen-Einträge erzeugen
598
Artenvielfalt im Dictionary – Weitere Tabellenarten
600
17 Vorratskammer plündern – DB-Tabellen auslesen
601
Erster Takt – SQL
602
Zweiter Takt – SQL
602
Eingelagert und geplündert – Datenpufferung
603
Datenmanipulator nativ – DML mit Native SQL
604
Einfach definieren – Datendefinition mit dem ABAP Dictionary
604
Alles recht und schön – Berechtigungen und Konsistenzprüfungen
604
Open SQL grundiert – Basisbefehlssatz aus Open SQL
605
Verklausuliert – SELECT-Klausel
607
Wohin damit – INTO target
610
Woher – FROM source
611
Aber bitte nicht alles – WHERE-Klausel
613
Da geht noch mehr – Weitere Klauseln
614
Und jetzt alles kombiniert – SELECT-Beispiel
615
Mehr als eine Tabelle ist auch okay – Views
620
Schritt für Schritt zum View mit relationalen Operatoren
624
Da will ich auch nicht alles – Selektionsbedingungen
633
Zusammenfassung in Bildern – View-Definition
634
Mit Views programmieren
636
Weil du so brav warst – Programmieren mit Views
638
18 Vorratskammer in Schuss halten – DB-Daten pflegen
641
Lesen ist Silber, Schreiben ist Gold – DELETE, UPDATE, MODIFY und INSERT
642
Sichere Daten – Transaktionskonzept
642
Von einem Zustand zum nächsten – Datenbank-LUW
644
Bist du konsistent?
647
Aktionen bündeln – SAP-LUW
648
Und jetzt auch noch transaktional – SAP-Transaktion
649
Datenmanipulator-Entwicklungsrahmen – Das Programm für die Open-SQL-Anweisungen
651
Und noch eins und noch eins und … – INSERT
656
Massendaten einfügen
658
Ändern muss man auch ab und zu – UPDATE
661
Massendaten
662
Weg damit – DELETE
664
Kombianweisung – MODIFY
667
Halt, Sperre! – Sperrkonzept
669
Die fünf Gebote der performanten DB-Programmierung
670
19 Mit Schirm, Charme – und vielleicht noch einem Melonensorbet – Daten in Dateien, Datenablage ohne DB
671
Daten ohne Datenbank
672
GUI-Loads – Upload und Download
672
Frontend Services
674
Pfad ermitteln
677
Download now, zumindest vorbereitet – Download vorbereiten
679
Auch nett für Datenwiederverwendung – Clipboard
680
Download now!
682
Einen hamma noch – Upload
685
Daten auf dem Applikationsserver
687
OPEN House – OPEN DATASET
688
DatenTRANSFER – Daten schreiben
689
READ DATASET – Daten lesen
691
20 Täglich wechselnde Speisekarten – Dynamische Programmierung
693
Dynamische Programmierung hat nichts mit Beweglichkeit zu tun
694
Feldsymbole
694
Datenrefs
696
RTTS = RTTI + RTTC
698
Überschrift finden
699
Dynamische Tokens
701
Dynamisches Feld
703
Dynamischer Typ
703
Dynamische Komponente
704
Dynamische Bedingung
704
Dynamisches Unterprogramm
706
Programmerzeugung im Hauptspeicher
706
Programmerzeugung im Repository
707
Bildnachweis
710
Anhang Transportmanagementsystem einrichten
711
Index
715