
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:
Inhaltsverzeichnis
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
Es wurden noch keine Bewertungen abgegeben. Schreiben Sie die erste Bewertung zu "Schrödinger programmiert ABAP" und helfen Sie damit anderen bei der Kaufentscheidung.