Schrödinger programmiert ABAP - Das etwas andere Fachbuch

Taschenbuch
49,90 €
inkl. MwSt. versandkostenfrei!

Produktdetails  
Verlag Rheinwerk Verlag
Auflage 3. Auflage, 28.03.2019
Seiten 788
Format 20,0 x 23,7 x 5,1 cm
Großformatiges Paperback. Klappenbroschur
Gewicht 1872 g
Reihe SAP PRESS
ISBN-10 3836266075
ISBN-13 9783836266079
Bestell-Nr 83626607A

Produktbeschreibung  

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


Inhalt:




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 I I ... 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


Autorenporträt  
Mehr Angebote zum Thema