Schrödinger programmiert ABAP

Das etwas andere Fachbuch
Buch | Softcover
742 Seiten
2014 | 2., korrigierte und erweiterte Auflage
Galileo Press (Verlag)
978-3-8362-2859-6 (ISBN)

Lese- und Medienproben

Schrödinger programmiert ABAP - Roland Schwaiger
49,90 inkl. MwSt
zur Neuauflage
  • Titel ist leider vergriffen;
    keine Neuauflage
  • Artikel merken
Zu diesem Artikel existiert eine Nachauflage
  • Programme, GUIs und Datenbankzugriffe, die du nie wieder vergisst
  • Sprachgrundlagen, Objektorientierung, Ereignisse u.v.m.
  • Umwerfende Beispiele, fantastisch illustriert
Schrödinger ist der Mann fürs Programmieren. Er kann schon was, aber noch kein ABAP. Zum Glück kann ihm der Schwaiger Roland da helfen und ihm alles beibringen. Schrödinger holt sich Unmengen von Tipps und lässt nicht locker, bis er alles kapiert hat. DAS ALLES und noch viel mehr:
  • SAP-System installieren
  • ABAP-Grundlagen verstehen
  • Datentypen anlegen
  • Objekte und Interfaces einsetzen
  • Code in Module und Funktionen verpacken
  • Dynpros und Ereignisse verwenden
  • GUIs erstellen
  • Datenbanken und SQL
  • Zugriffsschutz einrichten
  • Dynamische Programmierung


Ein echtes Fachbuch, nur eben ganz anders!
IF Knobeleien AND Gimmicks AND Spaß beim Lernen,
THEN Schrödinger erste Wahl,
ELSE klassisches Lehrbuch,
ENDIF.

Du fühlst dich angesprochen?

Dann hast du zum richtigen Buch gegriffen! Schrödinger ist der Mann fürs Programmieren. Er kann schon was, aber eben noch nicht ABAP.

Deshalb bringt ihm der Schwaiger Roland jetzt alles bei. Vom ersten ,Hallo Welt!' bis zur objektorientierten und dynamischen Programmierung. Und ganz nebenbei lernt Schrödinger nicht nur, warum die SAP-Welt so speziell ist, sondern auch jede Menge über guten Kaffee und die Kunst des Bierbrauens. Da raucht ihm manchmal schon der Kopf vor lauter Datentypen, Klassen und Funktionsbausteinen.

Doch zum Glück darf Schrödinger sich immer wieder ein wohlverdientes Päuschen gönnen und die müden Muskeln strecken. Und dank vieler Übungen und Tipps hat er bald den Durchblick. Wetten, du auch?

Diese zweite Auflage wurde vom Schwaiger Roland komplett durchgesehen und korrigiert.

Schrödinger garantiert:
  • Einen ausführlichen Einstieg in ABAP
  • Lösungen für die tägliche Programmierarbeit
  • Jede Menge guter Beispiele
  • Leichtes Lernen durch Abwechslung und Spaß
  • Erfolg für Einsteiger, Umsteiger und Fortgeschrittene

Dr. Roland Schwaiger studierte an der Bowling Green State University, OH (USA) Computer Science und an der Universität Salzburg (Österreich) Angewandte Informatik und Mathematik und promovierte dort im Bereich Mathematik. Nach mehrjähriger Assistententätigkeit an der Universität Salzburg kam er 1996 als Softwareentwickler zur SAP AG und entfaltete dort seine Fähigkeiten für drei Jahre im Bereich Human Resources in einem anregenden und inspirierenden Umfeld. Seit 1999 ist er als freiberuflicher Trainer, Lektor, Berater und Entwickler tätig (Zertifizierter Development Consultant SAP NetWeaver 2004 – Application Development Focus ABAP). Er setzt seine akademische Vorbildung und das bei SAP erworbene Wissen, abgerundet durch einen MBA in Prozess- und Projektmanagement, für die Softwareentwicklung in konkreten Entwicklungsprojekten und SAP-Schulungen ein. Die dort wiederum erworbenen Erkenntnisse trägt er zurück in die akademische Welt und verknüpft so Theorie und Praxis.

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

»ABAP-Buchtipp!« E-3 Magazin, März 2014

Erscheint lt. Verlag 28.3.2014
Reihe/Serie SAP PRESS
Verlagsort Bonn
Sprache deutsch
Maße 200 x 235 mm
Gewicht 1775 g
Einbandart Paperback
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Informatik Weitere Themen SAP
Schlagworte ABAP • ABAP Buch • ABAP Grundkurs • ABAP; Handbuch/Lehrbuch • ABAP lernen • ABAP objects • Einstieg in ABAP • SAP
ISBN-10 3-8362-2859-9 / 3836228599
ISBN-13 978-3-8362-2859-6 / 9783836228596
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich