
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: von den Grundlagen über ABAP Objects bis zur modernen Cloud-Entwicklung. 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:
Inhaltsverzeichnis
Vorwort . . . 24
1. Eine Nudelmaschine 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üchenlatein . . . 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
Es wurden noch keine Bewertungen abgegeben. Schreiben Sie die erste Bewertung zu "Schrödinger programmiert ABAP" und helfen Sie damit anderen bei der Kaufentscheidung.