ABAP Programmierung (BC-ABA)
ABAP Einführung
Übersicht über das R/3-Basis-System
Das Basis-System im Gesamtsystem
Applikationsserver
Workprozesse
Übersicht über die Komponenten von Anwendungsprogr
Aufbau von Anwendungsprogrammen
Mögliche Bildschirmbilder
Aufbau von ABAP-Programmen
Verarbeitungsblöcke in ABAP-Programmen
ABAP-Sprachelemente
Logische Datenbanken und Contexte
Speicherstrukturen eines ABAP-Programms
ABAP-Programme anlegen und ändern
Programme im Object Navigator öffnen
Programme mit dem ABAP-Editor öffnen
Programme durch Vorwärtsnavigation öffnen
Programmeigenschaften pflegen
Programme editieren
Programmüberprüfungen
ABAP Programmiersprache
ABAP-Syntax
Typen und Objekte
Grundlegende Sprachelemente
Datentypen und Datenobjekte
Datentypen
Definition von Datentypen
Eingebaute ABAP-Typen
Programmlokale Datentypen
Datentypen im ABAP Dictionary
Der TYPE-Zusatz
Der LIKE-Zusatz
Datenobjekte
Literale
Textsymbole
Variablen
Konstanten
Schnittstellen-Arbeitsbereiche
Vordefinierte Datenobjekte
Kompatibilität
Attribute von Datenobjekten bestimmen
Beispiele zu Datentypen und Objekten
Daten verarbeiten
Wertzuweisungen
Werte mit MOVE zuweisen
Werte mit WRITE TO zuweisen
Werte auf Initialwerte setzen
Numerische Operationen
Arithmetische Berechnungen
Mathematische Funktionen
Kaufmännisches Rechnen
Datums- und Zeitberechnungen
Verarbeitung von Zeichenketten
Feldinhalte verschieben
Feldinhalte ersetzen
Groß-/Kleinschreibung oder Zeichen umsetzen
Konvertierung in ein sortierbares Format
Zeichenketten überlagern
Zeichenketten suchen
Länge einer Zeichenkette ermitteln
Feldinhalte verdichten
Zeichenfolgen verketten
Zeichenketten zerlegen
Teile von Zeichenketten zuweisen
Einzelbitverarbeitung in Hexadezimalfeldern
Bits setzen und lesen
Bitoperationen
Mengenoperationen mit Bitfolgen
Typkonvertierungen
Konvertierungsregeln für elementare Datentypen
Konvertierungsregeln für Referenzen
Konvertierungsregeln für Strukturen
Konvertierungsregeln für interne Tabellen
Ausrichtung von Datenobjekten
Bearbeitung von Teilfeldern
Feldsymbole und Datenreferenzen
Feldsymbole
Feldsymbole deklarieren
Zuweisung von Datenobjekten an Feldsymbole
Grundformen der ASSIGN-Anweisung
Strukturen komponentenweise zuweisen
Casting von Datenobjekten
Datenbereiche für Feldsymbole
Datenreferenzen
Referenzvariable
Datenobjekte dynamisch erzeugen
Referenzen auf Datenobjekte beschaffen
Datenreferenzen dereferenzieren
Beispiel zu Datenreferenzen
Logische Ausdrücke
Vergleiche zwischen verschiedenen Datentypen
Vergleiche zwischen Zeichenketten
Vergleiche zwischen Bitfolgen
Intervallzugehörigkeit prüfen
Initialwert prüfen
Selektionskriterien prüfen
Zuweisung zu einem Feldsymbol überprüfen
Mehrere logische Ausdrücke verknüpfen
Programmablaufsteuerung
Bedingte Verzweigungen
Schleifen
Bearbeitung großer Datenmengen
Interne Tabellen
Interne Tabellen anlegen
Interne Tabellentypen
Interne Tabellenobjekte
Besonderheiten bei Standard-Tabellen
Interne Tabellen bearbeiten
Operationen mit der gesamten internen Tabelle
Interne Tabellen zuweisen
Interne Tabellen initialisieren
Interne Tabellen vergleichen
Interne Tabellen sortieren
Interne Tabellen als Schnittstellenparameter
Attribute interner Tabellen bestimmen
Operationen mit einzelnen Zeilen
Operationen für alle Tabellenarten
Tabellenzeilen einfügen
Tabellenzeilen verdichtet einfügen
Tabellenzeilen lesen
Tabellenzeilen ändern
Tabellenzeilen löschen
Tabellenzeilen in Schleifen bearbeiten
Operationen für Index-Tabellen
Tabellenzeilen anhängen
Tabellenzeilen über den Index einfügen
Tabellenzeilen über den Index lesen
Binäre Suche bei Standard-Tabellen
Tabellenzeilen nach Zeichenketten durchsuchen
Tabellenzeilen über den Index ändern
Tabellenzeilen über den Index löschen
Indexangaben bei Schleifen
Zugriff über Feldsymbole
Kopfzeilen als Arbeitsbereich
Extrakte
Extrakt definieren
Extrakt mit Daten füllen
Extrakte verarbeiten
Extrakt auslesen
Extrakt sortieren
Gruppenstufenverarbeitung
Anzahlen und Summen ermitteln
Daten aufbereiten
Beispiel für aufbereitete Daten
Daten beim Lesen aufbereiten
Daten über interne Tabellen aufbereiten
Daten über Extrakte aufbereiten
Externe Datenspeicherung
Datenobjekte als Cluster speichern
Daten-Cluster im ABAP-Memory
Datenobjekte im Memory speichern
Datenobjekte aus dem Memory lesen
Daten-Cluster im Memory löschen
Daten-Cluster in Datenbanken
Cluster-Datenbanken
Struktur von Cluster-Datenbanken
Beispiel einer Cluster-Datenbank
Datenobjekte in Cluster-Datenbanken speichern
Inhaltsverzeichnis eines Daten-Clusters erstellen
Datenobjekte aus Cluster-Datenbanken lesen
Daten-Cluster in Cluster-Datenbanken löschen
Open SQL-Anweisungen und Cluster-Datenbanken
Arbeiten mit Dateien
Arbeiten mit Dateien auf dem Anwendungsserver
Dateihandhabung in ABAP
Öffnen einer Datei
Grundform der Anweisung OPEN DATASET
Öffnen einer Datei zum Lesen
Öffnen einer Datei zum Schreiben
Öffnen einer Datei für das Schreiben an das Ende der Datei
Binärmodus angeben
Textmodus angeben
Öffnen einer Datei an einer bestimmten Position
Betriebssystemkommandos absetzen
Empfangen der Betriebssystemnachricht
Schließen einer Datei
Löschen einer Datei
Daten in Dateien schreiben
Daten aus Dateien lesen
Automatische Prüfungen bei Dateioperationen
Berechtigungsprüfung für bestimmte Programme und Dateien
Allgemeine Verprobung bei Dateizugriffen
Arbeiten mit Dateien auf dem Präsentationsserver
Verwendung plattformunabhängiger Dateinamen
Syntaxgruppen pflegen
Betriebssysteme Syntaxgruppen zuordnen
Logische Pfade anlegen und definieren
Logische Dateinamen anlegen und definieren
Verwendung von logischen Dateien in ABAP-Programmen
Modularisierungstechniken
Quelltext-Module
Makros
Include-Programme
Prozeduren
Unterprogramme
Definition von Unterprogrammen
Globale Daten des Rahmenprogramms
Lokale Daten des Unterprogramms
Die Parameterschnittstelle
Unterprogramme beenden
Aufruf von Unterprogrammen
Benennung des Unterprogramms
Parameterübergabe an Unterprogramme
Beispiele zu Unterprogrammen
Gemeinsamer Datenbereich
Funktionsbausteine
Funktionsgruppen
Funktionsbausteine aufrufen
Funktionsbausteine anlegen
Organisation von externen Prozeduraufrufen
Spezielle Techniken
Ausnahmebehandlung
Klassenbasierte Ausnahmen
Übersicht über klassenbasierte Ausnahmen
Ausnahmen behandeln
Ausnahmen auslösen
Ausnahmen propagieren
Ausnahmen definieren
Ausnahmetexte
Vorhergehende Konzepte
Ausnahmen in Funktionsbausteinen und Methoden
Abfangbare Laufzeitfehler
Berechtigungen überprüfen
Berechtigungskonzept
Berechtigungsprüfungen
Laufzeitmessung von Programmsegmenten
GET RUN TIME FIELD
Laufzeitmessung von Datenbankzugriffen
Programme dynamisch generieren und starten
Ein neues Programm dynamisch anlegen
Bestehende Programme dynamisch ändern
Dynamische angelegte Programme starten
Temporäre Unterprogramme anlegen und starten
ABAP Bildschirmbilder
Dynpros
Bestandteile von Dynpros
Dynproattribute
Bildschirmelemente
Dynprofelder
Die Dynproablauflogik
Verarbeitung von Dynpros
Benutzeraktionen auf Dynpros
Ein- und Ausgabefelder verarbeiten
Drucktasten auf dem Dynpro
Ankreuzfelder und Auswahlknöpfe mit Funktionscodes
GUI-Status verwenden
Funktionscodes auswerten
Cursorposition bestimmen
Aufruf von ABAP-Dialogmodulen
Einfacher Modulaufruf
Steuerung des Datentransports
Unbedingter Modulaufruf
Bedingte Modulaufrufe
Eingabeüberprüfungen
Automatische Eingabeüberprüfungen
Eingabeüberprüfungen in der Ablauflogik
Eingabeüberprüfungen in Dialogmodulen
Feldhilfe, Eingabehilfe und Dropdown-Boxen
Feldhilfe
Eingabehilfe
Eingabehilfen des ABAP Dictionary
Eingabehilfen des Dynpro
Eingabehilfen in Dialogmodulen
Dropdown-Boxen
Bildschirmbilder dynamisch modifizieren
Attribute dynamisch setzen
Die Funktion Feldauswahl
Cursorposition festlegen
Halten von Daten dynamisch ermöglichen
Komplexe Bildschirmelemente
Statusikonen
Kontextmenüs
Subscreens
TabStrips
Custom Controls
Table Controls
Table Controls auf dem Bildschirmbild
Table Controls in der Ablauflogik
Table Controls im ABAP-Programm
Table Controls: Beispiel mit Blättern
Table Controls: Beispiel mit Modifikationen
Anhang: Die Steploop-Technik
Selektionsbilder
Selektionsbilder und logische Datenbanken
Selektionsbilder definieren
Eingabefelder für Einzelwerte definieren
Grundform von Parametern
Dynamischer Dictionary-Bezug
Vorschlagswerte für Parameter
SPA/GPA-Parameter als Vorschlagswerte
Groß- und Kleinschreibung bei Parametern
Sichtbare Länge verkleinern
Mußfelder definieren
Suchhilfe für Parameter
Eingabewerte überprüfen
Ankreuzfelder definieren
Auswahlknöpfe definieren
Eingabefelder ausblenden
Eingabefelder modifizieren
Komplexe Selektionen definieren
Selektionstabellen
Grundform von Selektionskriterien
Selektionskriterien und logische Datenbanken
Vorschlagswerte für Selektionskriterien
Eingabe auf eine Zeile beschränken
Eingabe auf Einzelfelder beschränken
Weitere Zusätze für Selektionskriterien
Selektionsbilder aufbereiten
Leerzeilen, Linien und Kommentare
Mehrere Elemente in einer Zeile
Elementblöcke
Selektionsbilder aufrufen
Standardselektionsbilder aufrufen
Eigenständige Selektionsbilder aufrufen
Benutzeraktionen auf Selektionsbildern
Drucktasten auf dem Selektionsbild
Ankreuzfelder und Auswahlknöpfe mit Funktionscodes
Drucktasten in der Drucktastenleiste
Standard-GUI-Status ändern
Selektionsbildverarbeitung
Grundform
PBO des Selektionsbilds
Einzelfeldverarbeitung
Blockverarbeitung
Auswahlknöpfe verarbeiten
Mehrfachselektion verarbeiten
Feldhilfe definieren
Eingabehilfe definieren
Subscreens und TabStrips bei Selektionsbildern
Selektionsbilder als Subscreens
TabStrips auf Selektionsbildern
Subscreens auf Selektionsbildern
Selektionskriterien verwenden
Selektionstabellen in der WHERE-Klausel
Selektionstabellen in logischen Ausdrücken
Selektionstabellen in GET-Ereignissen
Listen
Listenerstellung
Einfache Listen mit der WRITE-Anweisung erstellen
Die Anweisung WRITE
WRITE-Ausgabedaten auf der Liste positionieren
Aufbereitungsoptionen
Symbole und Ikonen auf der Liste ausgeben
Linien und Leerzeilen
Feldinhalt als Ankreuzfeld ausgeben
WRITE über Anweisungsmuster verwenden
Komplexe Listen erstellen
Die Standardliste
Aufbau der Standardliste
GUI-Status der Standardliste
Listenaufbau selbst definieren
Seitenkopf gestalten
Listenbreite festlegen
Leerzeilen erzeugen
Seitenlänge festlegen
Seitenfuß gestalten
Listen mit mehreren Seiten
Seitenvorschübe programmieren
Standardseitenkopf einzelner Seiten
Seitenlänge einzelner Seiten
Seitenbreite von Listenstufen
In Listen blättern
Fensterweise blättern
Seitenweise blättern
Zu den Rändern der Liste blättern
Spaltenweise blättern
Blätterbaren Teil einer Seite festlegen
Listenseiten gestalten
Positionierung der Ausgabe
Absolute Positionsangaben
Relative Positionsangaben
Formatierung der Ausgabe
Die Anweisung FORMAT
Farben in Listen
Felder eingabebereit machen
Felder als Hotspot ausgeben
Besondere Ausgabeformate
Linien auf Listen
Benutzeraktionen auf Listen
Verzweigungslisten
Dialogstatus für Listen
Kontextmenüs für Listen
Listenereignisse im ABAP-Programm
Listen in Dialogfenstern
Datenübergabe von Listen an das Programm
Automatische Datenübergabe
Programmgesteuerte Datenübergabe
Verzweigungslisten beeinflussen
In Verzweigungslisten blättern
Cursor vom Programm aus setzen
Listenzeilen modifizieren
Listen und Dynpros
Aufruf von Listen aus der Dynproverarbeitung
Aufruf von Dynpros aus der Listenverarbeitung
Listen drucken und ablegen
Drucken einer Liste nach Ihrer Erstellung
Drucken einer Liste während ihrer Erstellung
Druckparameter
Ausführen und Drucken
Programmgesteuertes Drucken
Listen von aufgerufenen Programmen drucken
Drucksteuerung
Linken und oberen Rand festlegen
Druckformat festlegen
Ablegen von Listen mit SAP ArchiveLink
Nachrichten
Nachrichten verwalten
Nachrichten senden
Nachrichtenverarbeitung
Nachrichten ohne Bildschirmbezug
Nachrichten auf Dynpros
Nachrichten auf Selektionsbildern
Nachrichten auf Listen
Nachrichten in Funktionsbausteinen und Methoden
ABAP Programmausführung
Verarbeitungsblöcke definieren
Ereignisblöcke
Dialogmodule
Direkte Ausführung - Reports
Verknüpfung mit logischen Datenbanken
Reporttransaktionen
Ereignisblöcke in ausführbaren Programmen
Beschreibung der Reporting-Ereignisse
INITIALIZATION
AT SELECTION-SCREEN
START-OF-SELECTION
GET
GET … LATE
END-OF-SELECTION
Ereignisblöcke verlassen
Ereignisblöcke mit STOP verlassen
Ereignisblöcke mit EXIT verlassen
Ereignisblöcke mit CHECK verlassen
GET-Ereignisblöcke mit REJECT verlassen
Dialoggesteuerte Ausführung - Transaktionen
Übersicht zu Dialogprogrammen
Eine Beispieltransaktion
Transaktionspflege
Dialogtransaktion
Reporttransaktion
OO-Transaktion
Variantentransaktion
Parametertransaktion
Dynprofolgen
Statisches Folgedynpro
Dynamisches Folgedynpro
Dynpros programmgesteuert beenden
Dynprofolgen aufrufen
Modale Dialogfenster einbetten
Beispieltransaktion für Dynprofolgen
Programme aufrufen
Ausführbare Programme (Reports) aufrufen
Selektionsbild des aufgerufenen Programms füllen
Listen des aufgerufenen Programms beeinflussen
Aufgerufenes Programm programmgesteuert verlassen
Transaktionen aufrufen
Dynprofolgen als Module aufrufen
Daten zwischen Programmen übergeben
Einstiegsbilder über SPA/GPA-Parameter füllen
ABAP Datenbankzugriffe
Datenbankzugriffe im R/3-System
Open SQL
Daten lesen
Selektion definieren
Zielbereich angeben
Datenbanktabellen angeben
Zeilen auswählen
Zeilen gruppieren
Zeilengruppen auswählen
Sortierreihenfolge angeben
Subqueries
Daten über Cursor lesen
Mögliche Sperrkonflikte
Daten ändern
Tabellenzeilen einfügen
Tabellenzeilen ändern
Tabellenzeilen löschen
Tabellenzeilen einfügen oder ändern
Datenbankänderungen festschreiben
Performance-Hinweise
Treffermenge klein halten
Übertragene Datenmenge klein halten
Zahl der Zugriffe klein halten
Suchaufwand klein halten
Datenbanklast klein halten
Native SQL
Native SQL für Oracle
Native SQL für Informix
Native SQL für DB2 Common Server
Logische Datenbanken
Aufbau logischer Datenbanken
Selektionsviews
Beispiel einer logischen Datenbank
Logische Datenbanken verwenden
Verknüpfung mit ausführbaren Programmen
Aufruf über Funktionsbaustein
Logische Datenbanken bearbeiten
Logische Datenbank anlegen
Struktur bearbeiten
Suchhilfen bearbeiten
Selektionen bearbeiten
Datenbankprogramm bearbeiten
Freie Abgrenzungen im Datenbankprogramm
Feldselektionen im Datenbankprogramm
Suchhilfen im Datenbankprogramm
Eigenständiger Aufruf und Datenbankprogramm
Weitere Komponenten bearbeiten
Performanceverbesserungen
Arbeiten mit Contexten
Was ist ein Context?
Der Context Builder in der Workbench
Contexte anlegen und pflegen
Tabellen als Module
Funktionsbausteine als Module
Contexte als Module
Contexte testen
Contexte puffern
Felder
Module
Schnittstellen
Contexte in ABAP-Programmen verwenden
Contexte suchen und anzeigen
Context-Instanzen anlegen
Context-Instanzen mit Schlüsselwerten versorgen
Daten von Context-Instanzen abfragen
Nachrichtenbehandlung in Contexten
Nachrichtenbehandlung in Tabellen-Modulen
Nachrichtenbehandlung in Funktionsbaustein-Modulen
Tips zum Arbeiten mit Contexten
SAP-Transaktionskonzept
Transaktionen und Logical Units of Work
Datenbank-LUW
SAP-LUW
SAP-Transaktionen
Das R/3-Sperrkonzept
Beispielprogramm für SAP-Sperren
Techniken der Verbuchung
Asynchron verbuchen
Asynchron in Abschnitten verbuchen
Synchron verbuchen
Lokal verbuchen
Verbuchungsfunktionsbausteine anlegen
Verbuchungsfunktionsbausteine aufrufen
Verbuchungsfunktionsbausteine direkt aufrufen
Aufrufe in einem Unterprogramm aufnehmen
Spezielle Überlegungen zu LUWs
Transaktionen, die Verbuchungsfunktionsbausteine a
Dialogbausteine, die Verbuchungsfunktionsbausteine
Fehlerbehandlung bei gebündelten Aktualisierungen
ABAP Objects
Was ist Objektorientierung?
Was bedeutet ABAP Objects?
Von Funktionsgruppen zu Objekten
Beispiel zu Instanzen von Funktionsgruppen
Klassen
Übersichtsgrafik zu Klassen
Einführendes Beispiel zu Klassen
Behandlung von Objekten
Übersichtsgrafik zu Objekten
Einführendes Beispiel zu Objekten
Methoden deklarieren und aufrufen
Beispiel zu Methoden in ABAP Objects
Vererbung
Übersichtsgrafiken zur Vererbung
Einführendes Beispiel zur Vererbung
Interfaces
Übersichtsgrafiken zu Interfaces
Einführendes Beispiel zu Interfaces
Ereignisse auslösen und behandeln
Übersichtsgrafik zu Ereignissen
Einführendes Beispiel zu Ereignissen
Komplexes Beispiel zu Ereignissen
Class- und Interface-Pools
OO-Transaktionen
ABAP und JavaScript
Verwendung der Klasse CL_JAVA_SCRIPT
Statische Methoden der Klasse CL_JAVA_SCRIPT
CREATE
Instanzmethoden der Klasse CL_JAVA_SCRIPT
ABAP_DESTRUCTOR
BIND
Verbindung zu ABAP-Typen I und F
Verbindung zum ABAP-Typ P
Verbindung zu ABAP-Strukturen
Verbindung zu internen Tabellen
Verbindung zu Datenreferenzen
Verbindung zu Objektreferenzen (Instanzen)
Verbindung zu statischen Klassenkomponenten
BIND_INSTANCE
COMPILE
DESTROY
EVALUATE
EXECUTE
GET
SET
SET_BREAKPOINT
CLEAR_BREAKPOINT
CLEAR_BREAKPOINTS
CLEAR_SCRIPT_BREAKPOINTS
STEP
STEP_INTO
STEP_OUT
CONTINUE
GET_CALL_STACK
EVALUATE_IN_STACK
Statische Attribute der Klasse CL_JAVA_SCRIPT
Konstanten
Instanzattribute der Klasse CL_JAVA_SCRIPT
LAST_CONDITION_CODE
LAST_ERROR_MESSAGE
BREAKPOINT_SCRIPT_NAME
BREAKPOINT_LINE_NUMBER
ABAP und Unicode
Zeichencodes
ABAP-Entwicklung unter Unicode
Bezeichnungen und Vereinbarungen
Datentypen
Datenlayout von Strukturen
Unicode-Fragmentsicht
Zulässige Zeichen
Einschränkungen in Unicode-Programmen
Zeichenartige und numerische Operanden
Zugriffe mit Offset- und Längenangaben
Zuweisungen
Vergleiche
Verarbeitung von Zeichenketten
Typprüfung und Typkompatibilität
Änderungen bei Datenbank-Operationen
Längen- und Abstandsermittlung
Strukturerweiterungen
Sonstige Änderungen
Neue ABAP-Anweisungen für Unicode
Stringverarbeitung für Bytefolgen
Längen- und Abstandsermittlung
Zuweisungen an Feldsymbole
Includes mit Gruppennamen
Dynamische Erzeugung von Datenobjekten
Dynamische Feldzuweisungen
Ablage von Daten als Cluster
Dateischnittstelle
Dateien auf dem Präsentationsserver
Generische Typen für Feldsymbole und Parameter
Neue Klassen für Unicode
Ermittlung von Feldeigenschaften
Konvertierung von Daten
RFC und Unicode
Abrundungsmaßnahmen
Beispiele
Zuweisungen zwischen Strukturen I
Zuweisungen zwischen Strukturen II
Zuweisungen zwischen Strukturen III
Zuweisungen zwischen Strukturen IV
Zuweisung zwischen Struktur und Einzelfeld I
Zuweisung zwischen Struktur und Einzelfeld II
Zuweisung zwischen Struktur und Einzelfeld III
Zuweisung zwischen Struktur und Einzelfeld IV
Zuweisung zwischen Struktur und Einzelfeld V
Zeichenkettenverarbeitung
Dateischnittstelle
Unicode Glossar
Anhang
Programme, Bildschirmbilder, Verarbeitungsblöcke
Programmeinleitende Anweisungen
Übersicht über ABAP-Aufrufe
Kontext der Aufrufe
Interne Aufrufe
Externe Prozeduraufrufe
Externe Programmaufrufe
Aufrufbare Einheiten
ABAP-Programme
Prozeduren
Dynpros und Dynprofolgen
Übersicht über alle ABAP-Anweisungen
ABAP-Systemfelder
ABAP-Glossar
Syntaxkonventionen