ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle...

49
Leseprobe Dieses Buch ist Ihnen ein unverzichtbarer Begleiter im ABAP-Kosmos. In dieser Leseprobe zeigt Ihnen Autor Felix Roth, wie Sie das ABAP Dictionary einsetzen. Lernen Sie, wie Sie Datendefinitionen anlegen und verwalten sowie datenbankunabhängige Entwicklungsobjekte wie Tabellen, Strukturen, Datenelemente und Domänen erstellen. Felix Roth ABAP Objects – Das umfassende Handbuch 1.056 Seiten, gebunden, Dezember 2016 69,90 Euro, ISBN 978-3-8362-4270-7 www.sap-press.de/4201 »Das ABAP Dictionary« »Einleitung« Inhaltsverzeichnis Index Der Autor Leseprobe weiterempfehlen SAP-Wissen aus erster Hand.

Transcript of ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle...

Page 1: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

LeseprobeDieses Buch ist Ihnen ein unverzichtbarer Begleiter im ABAP-Kosmos. In dieser Leseprobe zeigt Ihnen Autor Felix Roth, wie Sie das ABAP Dictionary einsetzen. Lernen Sie, wie Sie Datendefinitionen anlegen und verwalten sowie datenbankunabhängige Entwicklungsobjekte wie Tabellen, Strukturen, Datenelemente und Domänen erstellen.

Felix Roth

ABAP Objects – Das umfassende Handbuch1.056 Seiten, gebunden, Dezember 2016 69,90 Euro, ISBN 978-3-8362-4270-7

www.sap-press.de/4201

»Das ABAP Dictionary« »Einleitung«

Inhaltsverzeichnis

Index

Der Autor

Leseprobe weiterempfehlen

SAP-Wissen aus erster Hand.

Page 2: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

89

Kapitel 3

Das ABAP Dictionary ist die zentrale Stelle für alle im System vorhandenen Datendefinitionen und damit unerlässlich für jede ABAP-Programmierung. Von Tabellen über Strukturen bis hin zu Suchhilfen – hier werden Sie glücklich!

3 Das ABAP Dictionary

Das ABAP Dictionary erreichen Sie über den Transaktionscode SE11. Es istdie zentrale Stelle im System, um Datendefinitionen anzulegen und zu ver-walten. Es enthält die Beschreibung aller im System vorhandenen Daten-strukturen und stellt diese allen anderen Systemkomponenten auf Bedarf zurVerfügung. Diese Informationen können auch direkt in ABAP-Anweisungenkonsumiert werden.

Das ABAP Dictionary ist darüber hinaus die Schnittstelle zur an das SAP-Sys-tem angebundenen, unter dem System liegenden Datenbank und damit dasTool, um Tabellen bzw. Views auf dieser Datenbank zu erzeugen und zu ver-walten. Dazu kann mit ABAP und Open SQL über das ABAP Dictionary aufdie Datenbanktabellen zugegriffen werden, ohne diesen Zugriff (z. B. denAufbau und Abbau der Verbindung) explizit orchestrieren zu müssen. DieseArt des Zugriffs ist einer der Hauptgründe für die Stärke von ABAP, wenn esdarum geht, mit großen Datenmengen umzugehen.

Fast der ganze Funktionsumfang des ABAP Dictionarys ist bereits aufdem Einstiegsbildschirm der Transaktion SE11 zu erkennen (siehe Abbil-dung 3.1), auch wenn sich hinter den Eingabefeldern View und Datentyp

mehr Auswahlmöglichkeiten verstecken.

Sie können mit dem ABAP Dictionary folgende Objekte anzeigen, bearbeitenund anlegen:

� Domänen (siehe Abschnitt 3.1)

� Datenelemente (siehe Abschnitt 3.2)

� Strukturen (siehe Abschnitt 3.3)

� Tabellentypen (siehe Abschnitt 3.4)

� Datenbanktabellen (siehe Abschnitt 3.5)

4270.book Seite 89 Donnerstag, 8. Dezember 2016 3:31 15

Page 3: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Das ABAP Dictionary3

90

� Typgruppen (siehe Abschnitt 3.7)

� Views (siehe Abschnitt 3.8)

� Suchhilfen (siehe Abschnitt 3.10)

� das Sperrkonzept (siehe Abschnitt 3.12)

Abbildung 3.1 Einstiegsbildschirm des ABAP Dictionarys

Darüber hinaus bietet das ABAP Dictionary noch etwas verstecktere Funkti-onen an:

� Pflegedialoge (siehe Abschnitt 3.9)

� Datenbank-Utility-Tool (siehe Abschnitt 3.11)

� Indizes (siehe Abschnitt 3.6)

Im Rahmen der vielen Änderungen in der ABAP-Programmierung, die imZuge der Einführung von SAP HANA vorgenommen wurden, wurde Trans-aktion SE11 an der einen oder anderen Stelle leicht angepasst. So wurde z. B.die Möglichkeit eingeführt, die Speicherart von Datenbanktabellen zu beein-flussen (siehe Abschnitt 3.5.9) und Volltext-Indizes zu erstellen (sieheAbschnitt 28.5.1, »Volltextindex anlegen«).

Beispiel

Wie gut ABAP mithilfe des ABAP Dictionarys mit großen Datenmengenumgehen kann, zeigt das folgende Beispiel. Das folgende ABAP-Programmselektiert 100 Einträge aus der SAP-Standardtabelle für Materialien MARA:

DATA: lt_mara TYPE TABLE OF mara.SELECT * FROM mara INTO TABLE lt_mara UP TO 100 ROWS.

4270.book Seite 90 Donnerstag, 8. Dezember 2016 3:31 15

Domänen 3.1

91

Das Programm deklariert lediglich eine interne Tabelle auf Basis der imABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es um Daten geht, alsoauf das ABAP Dictionary als zentrale Stelle zu. Das heißt, wenn Sie im ABAPDictionary Änderungen an einer Tabelle vornehmen, müssen Sie keineÄnderungen am Quelltext von Programmen vornehmen. Beim nächsten Auf-ruf des Programms wird automatisch die Änderung festgestellt, und das Pro-gramm wird mit den neuen Informationen neu generiert.

3.1 Domänen

In diesem Abschnitt erläutere ich das dem ABAP Dictionary zugrunde lie-gende zweistufige Domänenprinzip sowie die Anlage und den Wertebereicheiner Domäne.

3.1.1 Das zweistufige Domänenprinzip

Im ABAP Dictionary gibt es ein zweistufiges Domänenprinzip, das techni-sche und semantische Domänen vorsieht:

� Die technische Domäne beschreibt den Wertebereich eines Feldes, derdurch die Angabe eines eingebauten Datentyps, der Ausgabelänge undeventueller Festwerte festgelegt wird. Im ABAP-Umfeld werden diesetechnischen Domänen nur Domänen genannt.

� Die semantischen Domänen auf der anderen Seite weisen den technischenDomänen durch die Vergabe von Texten einen bestimmten Zusammen-hang zu. Im ABAP-Umfeld werden diese semantischen Domänen Datenele-ment genannt.

Wie in Abbildung 3.2 dargestellt, kann ein Feld einer Struktur oder Tabelleauf ein Datenelement verweisen, das wiederum auf eine Domäne verweist.

Eine Domäne kann demzufolge in mehreren Datenelementen verwendetwerden, und ein Datenelement kann in vielen Feldern von Tabellen undStrukturen verwendet werden. Die Domäne fasst also technische Informatio-nen über mehrere Tabellen hinweg zusammen und kann in Form von Daten-elementen verschiedene Ausprägungen haben. Darüber hinaus können Sieauf die Datenelemente auch aus ABAP heraus zugreifen und z. B. einen Para-meter für eine Eingabemaske definieren.

4270.book Seite 91 Donnerstag, 8. Dezember 2016 3:31 15

Page 4: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Das ABAP Dictionary3

92

Abbildung 3.2 Das zweistufige Domänenprinzip

Beispiel

Eine Identifikationsnummer (ID) wird als Feld nicht nur für eine, sondern inder Regel für viele Tabellen verwendet. Beispielsweise arbeitet eine Univer-sitätsverwaltung mit einer Tabelle für Professoren und einer für Studenten,vielleicht auch einer für Kantinenangestellte. Die Gemeinsamkeit dieserTabellen: Es wird ein Feld benötigt, das z. B. eine bis zu zehnstellige Identifi-kations- oder Personalnummer abspeichern kann.

Um diese Aufgabenstellung zu lösen, würden Sie als ABAP-Entwickler nuneine Domäne (CHAR der Länge 10) und für die unterschiedlichen Ausprägun-gen (Professor, Student) jeweils ein Datenelement anlegen. In ABAP könnenSie sich jetzt in mehreren Reports und Selektionsbildschirmen jeweils aufeines der angelegten Datenelemente beziehen und so den dahinterliegendenText aufrufen und sich damit viel Arbeit sparen. Es dreht sich bei den Domä-nen und Datenelementen also primär um das Thema der Wiederverwen-dung.

3.1.2 Domänen anlegen

Um eine Domäne anzulegen, gehen Sie wie folgt vor:

1. Geben Sie den gewünschten Namen für die Domäne auf dem Übersichts-bildschirm der Transaktion SE11 im Feld Domäne ein, und klicken Sieanschließend auf Anlegen.

Datenelement 1

Domäne

eingebauter Datentyp

2. Stufe: Semantik

1. Stufe: Technik

Datenelement 2

ABAP

Struktur 1 Tabelle 1 Tabelle 2

4270.book Seite 92 Donnerstag, 8. Dezember 2016 3:31 15

Domänen 3.1

93

2. Es öffnet sich der Domänen-Editor, in dem Sie nun Ihre Domäne ausprä-gen können (siehe Abbildung 3.3). Sie müssen mindestens im EingabefeldDatentyp aus den ca. 30 verschiedenen Datentypen einen Datentyp aus-wählen. Zusätzlich können Sie die Zahl der Stellen (im Beispiel mit derPersonalnummer waren dies 10) und für numerische Typen die gewünsch-ten Dezimalstellen einstellen (bei der Zahl 3,41 sind das z. B. zwei).

Abbildung 3.3 Definition einer Domäne

3. Unter den Ausgabeeigenschaften können Sie zusätzlich die Ausgabe-

länge festlegen. Wichtig ist, dass Sie bei numerischen Datentypen undnegativen Zahlen das Häkchen in der Checkbox Vorzeichen setzen, daansonsten das Minuszeichen nicht berücksichtigt wird.

4. Aktivieren Sie die Domäne anschließend über den Button Aktivieren ( )in der Menüleiste.

Darüber hinaus können Sie für Domänen eine Konvertierungsroutine hinter-legen und einen Wertebereich definieren, was in den folgenden Abschnittenbeschrieben ist.

3.1.3 Konvertierungsroutinen

Konvertierungsroutinen sind spezielle Routinen, die die Umwandlung vonWerten von und zur Datenbank ermöglichen. Im SAP-System gibt es knapp2.000 Konvertierungsroutinen. Die beiden bekanntesten sind die Konvertie-rungsroutinen ALPHA, um einem Wert führende Nullen hinzuzufügen und zuentfernen, und die Konvertierungsroutine ISOLA, um zweistellige ISO-Sprach-schlüssel in einstellige SAP-Sprachschlüssel umzuwandeln und umgekehrt.

Jede Konvertierungsroutine hat einen fünfstelligen Namen und wird alsKonvertierungs-Exit in Form von zwei Funktionsbausteinen im System abge-

4270.book Seite 93 Donnerstag, 8. Dezember 2016 3:31 15

Page 5: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Das ABAP Dictionary3

94

legt. Diese Konvertierungs-Exits finden Sie, indem Sie in Transaktion SE37(siehe Kapitel 5, »Der Function Builder«) nach Funktionsbausteinen suchen,die wie in Abbildung 3.4 mit dem Namen CONVERSION_EXIT_ anfangen.

Abbildung 3.4 Konvertierungs-Exits finden

Der für Sie interessante Namensbestandteil der Funktionsbausteine in dieserListe steht zwischen CONVERSION_EXIT_ und _INPUT bzw. _OUTPUT: Dies istder Name, den Sie im ABAP Dictionary bei der Anlage von Domänen alsKonvertierungsroutine im Feld Konvert.-Routine angeben müssen (sieheAbbildung 3.3).

Um eigene Konvertierungsroutinen anzulegen, müssen Sie lediglich eineFunktionsbausteingruppe mit zwei Funktionsbausteinen anlegen, einenFunktionsbaustein für die Eingabe und einen für die Ausgabe. Wie Sie eineFunktionsgruppe anlegen können, ist in Abschnitt 5.4 beschrieben.

Die Namen müssen dabei folgendem Schema entsprechen, wobei NAME durchIhren maximal fünfstelligen Namen ersetzt werden kann:

� CONVERSION_EXIT_NAME_INPUT

� CONVERSION_EXIT_NAME_OUTPUT

Die beiden Funktionsbausteine müssen folgende Schnittstelle aufweisen:

� einen Eingabeparameter unter IMPORTING mit einem Werteparameter INPUT

� einen Ausgabeparameter unter EXPORTING mit einem Werteparameter OUTPUT

4270.book Seite 94 Donnerstag, 8. Dezember 2016 3:31 15

Domänen 3.1

95

Der einfachste Weg, dies zu erreichen, ist es, einen bestehenden Funktions-baustein (z. B. CONVERSION_EXIT_ALPHA_INPUT und CONVERSION_EXIT_ALPHA_OUTPUT) zu kopieren und diesen anschließend entsprechend abzuändern.

3.1.4 Wertebereich einer Domäne

Auf der Registerkarte Wertebereich zu einer Domäne (siehe Abbildung 3.3)haben Sie die Möglichkeit, die Werte einer Domäne über Festwerte (Einzel-werte), Festwertintervalle oder über eine Wertetabelle einzuschränken. FallsFestwerte für eine Domäne definiert wurden, können diese zusätzlich füreine Eingabeprüfung in Dynpros herangezogen werden. Dies gilt allerdingsnur für die Datentypen CHAR und NUMC.

Sie können die Werteüberprüfung für folgende Elemente aktivieren:

� für Parameter mit dem Zusatz VALUE CHECK (siehe Abschnitt 12.2.1, »Parameter«)

� für Selektionsoptionen durch das Event AT SELECTION-SCREEN ON (siehe Abschnitt 12.4, »Ereignisse eines Selektionsbildschirms«)

Sollte keine andere Hilfemöglichkeit, wie z. B. eine Suchhilfe (siehe Ab-schnitt 3.10), definiert sein, werden die Festwerte auch als Eingabehilfe((F4)-Hilfe) angezeigt.

Festwerte und Festwertintervalle

Die Angabe von Festwerten und Intervallen ist nur für Domänen der Daten-typen CHAR, NUMC, DEC, INT1, INT2 und INT4 möglich. Beide können beliebigmiteinander kombiniert werden.

Wertetabelle

Es können auch alle Werte einer Domäne gegen eine Wertetabelle geprüftwerden. Diese Tabelle muss dazu lediglich bei der Angabe des Wertebereichsin der Domäne eingetragen werden. Diese Angabe können Sie auf der Regis-terkarte Wertebereich im Feld Wertetabelle machen.

Durch das Eintragen einer Wertetabelle wird aber noch keine Prüfung imple-mentiert. Die Prüfung in Form des Abgleichs mit der Wertetabelle wird erstnach Definition eines Fremdschlüssels wirksam. Eine Fremdschlüsselbezie-hung definiert eine Abhängigkeit zwischen zwei Tabellen. Dazu werden dieSchlüsselfelder der ersten Tabelle mit dazu passenden Feldern der zweiten Ta-belle verknüpft. Dies wäre beispielsweise möglich, wenn zwei Tabellen jeweils

4270.book Seite 95 Donnerstag, 8. Dezember 2016 3:31 15

Page 6: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Das ABAP Dictionary3

96

ein Feld MATNR mit einer Materialnummer hätten. Solange eine solche Ver-knüpfung nicht definiert wurde, weiß das System nicht, anhand welchen Fel-des der angegebenen Wertetabelle die Werte der Domäne geprüft werden soll.

Beispiel

In Abbildung 3.5 ist beispielweise ein Feld CARRID mit dem Datenelement undder gleichnamigen Domäne S_CARR_ID definiert. In der Domäne ist die Wer-tetabelle SCARR als Prüftabelle eingetragen, die alle möglichen Fluggesellschaf-ten enthält. Durch die für das Feld CARRID über den Button Fremdschlüssel

( ) eingetragene Fremdschlüsselbeziehung ist die Prüfung aktiviert worden.In dem Pop-up-Fenster in Abbildung 3.5 ist erkenntlich, dass die beidenTabellen über die Felder MANDT und CARRID miteinander verknüpft wurden.

Abbildung 3.5 Wertetabelle aktivieren

Wenn ein Anwender nun einen Wert für das Feld CARRID auf einer Selekti-onsmaske eingibt, wird dieser anhand der Wertetabelle SCARR geprüft. Istder eingegebene Wert nicht in der Prüftabelle enthalten, wird eine Fehler-meldung ausgegeben.

3.2 Datenelemente

Um ein Datenelement anzulegen, gehen Sie wie folgt vor:

1. Geben Sie den gewünschten Namen für das Datenelement auf dem Haupt-bildschirm der Transaktion SE11 im Feld Datentyp ein, und klicken Sieauf Anlegen.

4270.book Seite 96 Donnerstag, 8. Dezember 2016 3:31 15

Datenelemente 3.2

97

2. Wählen Sie in dem Pop-up-Fenster Datenelement aus.

3. Es öffnet sich der Datenelement-Editor, in dem Sie nun, wie in Abbildung3.6 dargestellt, auf der Registerkarte Datentyp den Typ spezifizieren kön-nen. Sie können hier aus den folgenden Datentyparten auswählen:

– Domäne (siehe Abschnitt 3.1)

– Eingebauter Typ

– Referenztyp (kann eine Referenz auf eine Klasse, ein Interface oder aufeinen eingebauten Typ sein)

Abbildung 3.6 Datentyp eines Datenelements

4. Danach können Sie Ihr Datenelement bereits aktivieren ( ).

Sie haben darüber hinaus aber noch die Möglichkeit, auf der RegisterkarteFeldbezeichner die Texte zum Datenelement und auf der RegisterkarteZusatzeigenschaften beispielsweise eine Suchhilfe anzugeben. Beide Regis-terkarten erläutere ich in den folgenden Abschnitten.

3.2.1 Feldbezeichner

Da das Datenelement ja die semantische Bedeutung zur Typdefinition liefert(siehe Abschnitt 3.1.1, »Das zweistufige Domänenprinzip«), können Sie demDatenelement auf der Registerkarte Feldbezeichner verschiedene Textezuordnen (siehe Abbildung 3.7).

Um die Texte zu pflegen, geben Sie sie in die Eingabefelder Feldbezeichner

ein, und bestätigen Sie Ihre Eingabe anschließend mit (¢). Die Länge derEingabefelder gibt dabei die maximale Länge der Texte vor.

4270.book Seite 97 Donnerstag, 8. Dezember 2016 3:31 15

Page 7: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Das ABAP Dictionary3

98

Abbildung 3.7 Feldbezeichner eines Datenelements

3.2.2 Übersetzung

Fast alle in Transaktion SE11 zu pflegenden Objekte haben Texte (z. B. eineKurzbeschreibung), die sich übersetzen lassen. Doch nirgends hat dies einewichtigere Bedeutung als bei den Feldbezeichnern eines Datenelements.Diese Texte werden später beispielsweise beim Aufbau einer ALV-Tabelle alsSpaltentexte verwendet (siehe Kapitel 19, »Tabellenanzeige mit dem SAP ListViewer (ALV)«) oder auf einem Selektionsbildschirm in Form eines Parame-ters oder eines Select-Option-Namens dargestellt (siehe Kapitel 12, »Reportsund Selektionsbildschirme«). Ist der Text übersetzt, wird abhängig von derAnmeldesprache des Nutzers jeweils die passende Übersetzung angezeigt.

Um einen Text zu einem Datenelement zu übersetzen, gehen Sie wie folgtvor:

1. Rufen Sie das Datenelement im ABAP Dictionary auf, und wählen SieSpringen � Übersetzung im Hauptmenü.

2. Wählen Sie, wie in Abbildung 3.8 dargestellt, im sich öffnenden Pop-up-Fenster die gewünschte Zielsprache aus.

Abbildung 3.8 Angabe der Zielsprache

3. In der nächsten Maske werden Ihnen nun alle zu übersetzenden Texteangezeigt. Diese können Sie jeweils unter dem originalen Textblock über-setzen, indem Sie den übersetzten Text eintragen, wie in Abbildung 3.9dargestellt.

4270.book Seite 98 Donnerstag, 8. Dezember 2016 3:31 15

Datenelemente 3.2

99

Abbildung 3.9 Übersetzung von Textelementen

4. Sie haben darüber hinaus die Möglichkeit, sich über den Button Quell-

texte in SAPterm suchen ( ) auf der Funktionsleiste Vorschlagswerteaus der SAPterm-Datenbank anzeigen zu lassen.

5. Wenn Sie anschließend auf Speichern ( ) klicken, werden Ihnen Ihre ein-gegebenen Texte gelb angezeigt.

Prinzipiell können Texte folgende Status haben:

� Rot: neuer Text

� Gelb: beanstandeter Text

� Grün: korrekt übersetzter Text

Wenn Sie lediglich eine Übersetzung benötigen, reicht der Status Gelb aus.Damit verzichten Sie allerdings auf die Wiederverwendung von bereits ange-fertigten Übersetzungen, da damit Ihre Übersetzung nicht in den Vorschlags-pool übernommen wird. Möchten Sie Ihre Übersetzung dagegen in den Vor-schlagspool übernehmen, um z. B. die Wiederverwendung zu ermöglichen,können Sie auf den Button Vorschlag direkt anlegen rechts neben demgelben Statusfeld klicken. Damit wechselt der Status von Gelb auf Grün.Speichern Sie gegebenenfalls erneut.

3.2.3 Zusatzeigenschaften

Auf der Registerkarte Zusatzeigenschaften haben Sie die Möglichkeit, demDatenelement eine Suchhilfe zuzuordnen (siehe Abschnitt 3.10). Über eineParameter-ID kann Ihr Feld mit einem Vorschlagswert aus dem SAP-Memorygefüllt werden. Für jeden Benutzer können Sie einen solchen Wert in dessenBenutzerstammdaten auf der Registerkarte Parameter pflegen. Die Benut-zerstammdaten erreichen Sie über den Pfad System � Benutzervorgaben imHauptmenü.

4270.book Seite 99 Donnerstag, 8. Dezember 2016 3:31 15

Page 8: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Das ABAP Dictionary3

100

3.3 Strukturen

Eine Struktur ist ein Verbund von einzelnen Feldern. Wie Sie eine Strukturprogrammatisch definieren, ist in Abschnitt 7.4.3 erläutert. Um eine Struk-tur im ABAP Dictionary anzulegen, gehen Sie wie folgt vor:

1. Geben Sie den gewünschten Namen auf dem Hauptübersichtsbildschirmder Transaktion SE11 im Feld Datentyp ein. Klicken Sie anschließend aufAnlegen.

2. Wählen Sie im sich öffnenden Pop-up-Fenster den Datentyp Struktur aus.

3. Es öffnet sich der Struktur-Editor, in dem Sie nun, wie in Abbildung 3.10dargestellt, auf der Registerkarte Komponenten die gewünschten FelderIhrer Struktur eintragen können. Für jedes Feld müssen Sie die Typisie-

rungsart und einen Typ in Form eines Datenelements oder andererStrukturen (tiefe Strukturen) vergeben.

Abbildung 3.10 Komponenten einer Struktur

4. Danach können Sie Ihre Struktur bereits Aktivieren ( ).

Die in Abbildung 3.10 angegebene Struktur wird allerdings eine Warnungund eine Fehlermeldung produzieren:

� Warnung: Die Erweiterungskategorie fehlt.

� Fehler: Für das Feld BRGEW fehlen die Referenztabelle und das Referenzfeld.

Dies schauen wir uns in den folgenden beiden Abschnitten an.

3.3.1 Erweiterungskategorie

Die Erweiterungskategorie können Sie über den Pfad Zusätze � Erweite-

rungskategorie definieren im Hauptmenü definieren (siehe Abbildung3.11). Damit bestimmen Sie, ob und wie die Struktur erweitert werden darf.Die folgenden Optionen stehen Ihnen dazu zur Verfügung:

4270.book Seite 100 Donnerstag, 8. Dezember 2016 3:31 15

Strukturen 3.3

101

� beliebig erweiterbar: Die Struktur darf mit beliebigen Komponentenerweitert werden.

� erweiterbar und zeichenartig oder numerisch: Die Struktur darf erwei-tert werden, die Erweiterung darf aber keine tiefen Datentypen enthalten.

� erweiterbar und zeichenartig: Die Struktur darf mit zeichenartigenKomponenten (c, n, d oder t) erweitert werden.

� nicht erweiterbar: Die Struktur darf nicht erweitert werden.

� nicht klassifiziert: Undefiniert, kann für einen Übergangszustand ver-wendet werden.

Darf eine Struktur erweitert werden, kann dies mithilfe einer Append-Struk-tur geschehen. Mehr Informationen zu Append-Strukturen finden Sie in Ab-schnitt 21.4.7, »Struktur-Erweiterungen«.

Abbildung 3.11 Erweiterungskategorie einer Struktur

3.3.2 Referenztabellen und das Referenzfeld

Mengen- und Währungsfelder benötigen immer eine Zuweisung zu einerMengen- bzw. Währungseinheit, damit das System weiß, in welcher Formdie Menge bzw. die Währung darzustellen ist. Diese Zuweisung können Sieauf der Registerkarte Währungs-/Mengenfelder vornehmen (siehe Abbil-dung 3.12). Der Verweis kann dabei auf jede beliebig andere Tabelle bzw.Struktur zeigen.

Abbildung 3.12 Verweis auf Einheiten

4270.book Seite 101 Donnerstag, 8. Dezember 2016 3:31 15

Page 9: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Das ABAP Dictionary3

102

3.4 Tabellentypen

Tabellentypen sind spezielle Typen, die den Aufbau einer internen Tabellebeschreiben. Das Besondere ist, dass eine interne Tabelle auf Basis des Tabel-lentyps einfach mit dem Zusatz TYPE definiert werden kann und dazu nichtder Zusatz TYPE TABLE OF benötigt wird. Dies ist insbesondere in Schnittstel-len von z. B. Funktionsbausteinen und Methoden von Klassen wichtig, dadort nicht TYPE TABLE OF, sondern nur TYPE angegeben werden kann.

Um einen Tabellentyp anzulegen, gehen Sie wie folgt vor:

1. Geben Sie den gewünschten Namen des Tabellentyps auf dem Hauptüber-sichtsbildschirm der Transaktion SE11 im Feld Datentyp ein. Klicken Sieanschließend auf Anlegen.

2. Wählen Sie im Pop-up-Fenster den Datentyp Tabellentyp aus.

3. Es öffnet sich der Tabellentyp-Editor, in dem Sie nun, wie in Abbildung3.13 dargestellt, auf der Registerkarte Zeilentyp den gewünschten AufbauIhres Tabellentyps anhand einer Struktur definieren können.

Abbildung 3.13 Zeilentyp eines Tabellentyps

4. Auf der Registerkarte Initialisierung und Zugriff können Sie die Art derinternen Tabelle für den Tabellentyp auswählen (siehe Abschnitt 8.1,»Tabellenarten«).

5. Auf den Registerkarten Primärschlüssel und Sekundärschlüssel kön-nen Sie nun noch die Schlüsselfelder definieren.

6. Anschließend können Sie Ihren Tabellentyp Aktivieren ( ) und z. B. inMethodensignaturen oder Funktionsbausteinschnittstellen verwenden.

Neben den hier beschriebenen globalen Tabellentypen im ABAP Dictionarykönnen Sie Tabellentypen auch programmatisch mit ABAP für einen lokalenEinsatz definieren. Mehr Informationen dazu finden Sie in Abschnitt 8.2,»Interne Tabellen definieren«.

4270.book Seite 102 Donnerstag, 8. Dezember 2016 3:31 15

Tabellentypen 3.4

103

Ranges-Tabellentypen anlegen

Neben den Tabellentypen für Standardtabellen können Sie im ABAP Dictio-nary auch globale Ranges-Tabellen als Typ definieren (siehe Abschnitt 8.2.3):

1. Legen Sie dazu, wie in Abschnitt 3.4, »Tabellentypen«, beschrieben, einenneuen Tabellentyp an, und wählen Sie Bearbeiten � Als Ranges-Tabellen-

typ definieren im Hauptmenü (siehe Abbildung 3.14).

Abbildung 3.14 Einen Ranges-Tabellentyp anlegen

2. Tragen Sie im folgenden Bildschirm, wie in Abbildung 3.15 dargestellt,eine Kurzbeschreibung und ein Datenelement bzw. einen eingebautenTyp ein, für das oder den Sie den Ranges-Tabellentyp definieren wollen.

3. Vergeben Sie anschließend noch einen Namen für die dahinterliegendeStruktur im Feld Strukturierter Zeilentyp.

4. Speichern ( ) Sie nun Ihren Ranges-Tabellentyp, da sonst die Anlage desstrukturierten Zeilentyps nicht funktioniert.

Abbildung 3.15 Anlage des strukturierten Zeilentyps

5. Nun können Sie auf den Button Anlegen klicken, wodurch eine neueStruktur auf Basis Ihrer Eingabe angelegt wird. Wie Sie in Abbildung 3.16sehen können, ist dies die Standardstruktur einer Ranges-Tabelle.

6. Vergeben Sie hier eine Kurzbeschreibung, aktivieren ( ) Sie die Struk-tur, und wechseln Sie über die Navigationsleiste ( ) zurück zum Bild-schirm Tabellentyp ändern.

4270.book Seite 103 Donnerstag, 8. Dezember 2016 3:31 15

Page 10: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Das ABAP Dictionary3

104

7. Aktivieren ( ) Sie auch dort Ihren Ranges-Tabellentyp.

Abbildung 3.16 Komponenten der Ranges-Struktur

3.5 Datenbanktabellen

Eine der Hauptfunktionen des ABAP Dictionarys ist die Verwaltung der zen-tralen Datenbanktabellen des SAP-Systems. Eine Datenbanktabelle beinhal-tet eine Menge von Daten, die wie in einem Excel-Sheet in Zeilen und Spal-ten strukturiert sind. Die Spaltennamen definieren, was für Daten in jederSpalte stehen sollen, während die einzelnen Zeilen die einzelnen Datensätzerepräsentieren. Über das ABAP Dictionary als Schnittstelle zur an das SAP-System angebundenen Datenbank können Sie sowohl die Strukturen alsauch die Daten aller Datenbanktabellen anzeigen lassen. Zusätzlich könnenSie auch eigene Datenbanktabellen für Ihre Entwicklungen anlegen und soermöglichen, dass Daten langfristig gespeichert werden.

3.5.1 Datenbanktabellen anzeigen

Um eine Datenbanktabelle anzuzeigen, gehen Sie wie folgt vor:

1. Tragen Sie den Namen der gewünschten Tabelle auf dem Hauptübersichts-bildschirm der Transaktion SE11 im Feld Datenbanktabelle ein.

2. Anschließend gelangen Sie durch einen Klick auf den Button Anzeigen zurDefinition der Tabelle. Wenn Sie nun den Inhalt der Datenbanktabellesehen möchten, klicken Sie auf der Funktionsleiste auf den Button Daten-

anzeige ( ).

3. In der folgenden Selektionsmaske können Sie die anzuzeigende Daten-menge einschränken. Nehmen Sie hier keine Einstellung vor, werden stan-dardmäßig 200 Datensätze angezeigt.

4270.book Seite 104 Donnerstag, 8. Dezember 2016 3:31 15

Datenbanktabellen 3.5

105

4. Nun können Sie innerhalb der Datenbanktabelle durch Eingabe von Such-kriterien nach Datensätzen suchen. Klicken Sie auf den Button Anzahl

Einträge, wird Ihnen angezeigt, wie viele Einträge zu Ihren Suchkriterienpassen. Klicken Sie auf Ausführen ( ), um Ihre Suche innerhalb derDatenbanktabelle zu starten.

3.5.2 Datenbanktabellen anlegen

Zum Anlegen einer neuen Datenbanktabelle tragen Sie den gewünschtenNamen der Tabelle ebenfalls auf dem Hauptübersichtsbildschirm der Trans-aktion SE11 im Feld Datenbanktabelle ein, und klicken Sie anschließendauf Anlegen. Für den Namen gibt es keine speziellen Namenskonventionen,er muss lediglich im Kundennamensraum (z. B. Z oder Y) liegen. Es öffnetsich nun der Tabellen-Editor (siehe Abbildung 3.17).

Abbildung 3.17 Registerkarte »Auslieferung und Pflege« im Tabellen-Editor

Zur Anlage einer Tabelle müssen Sie die folgenden Einstellungen vorneh-men, auf die ich in den folgenden Abschnitten näher eingehe:

� Auf der Registerkarte Auslieferung und Pflege:

– Auslieferungsklasse: Soll die Datenbanktabelle einen Transportan-schluss haben (siehe Abschnitt 3.5.3)?

– Data Browser/Tabellensicht-Pflege: Wie soll auf die Datenbank-tabelle zugegriffen werden können (siehe Abschnitt 3.5.4)?

� In den technischen Einstellungen:

– Datenart: Was soll in der Tabelle gespeichert werden (siehe Abschnitt 3.5.5)?

– Grössenkategorie: Wie viele Daten werden erwartet (siehe Abschnitt 3.5.6)?

– Pufferung (optional): Darf die Datenbanktabelle gepuffert werden (siehe Abschnitt 3.5.7)?

� Ausprägen der Tabellenfelder auf der Registerkarte Felder:Welche Spalten soll die Datenbanktabelle haben (siehe Abschnitt 3.5.8)?

4270.book Seite 105 Donnerstag, 8. Dezember 2016 3:31 15

Page 11: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Das ABAP Dictionary3

106

Darüber hinaus gibt es seit der Einführung von SAP HANA eine neue Regis-terkarte Speicherart, auf die ich in Abschnitt 3.5.9, »Speicherart von Daten-banken mit SAP HANA«, eingehe.

3.5.3 Auslieferungsklasse

Eine Auslieferungsklasse wählen Sie auf der Registerkarte Auslieferung

und Pflege (siehe Abbildung 3.17). Die Auslieferungsklasse bestimmt, wiesich die Datenbanktabelle bei der Installation, beim Upgrade, bei einer Man-dantenkopie und beim Transport zwischen Kundensystemen verhält. DieFrage, die Sie sich hier also stellen müssen, lautet: »Wie soll sich die Daten-banktabelle beim Transport verhalten?« Möchten Sie die Datenbanktabellein jedem System (z. B. Entwicklungs-, Qualitätssicherungs- und Produk-tivsystem) einzeln pflegen, oder soll die Datenbanktabelle mithilfe derTransporttechnologie über alle Systeme hinweg den gleichen Inhalt haben?

Wenn Sie eine Tabelle mit der Auslieferungsklasse »A« anlegen (siehe Abbil-dung 3.18), kann die Datenbanktabelle in jedem System über einen Pflege-dialog geändert werden. Legen Sie Ihre Datenbanktabelle dagegen mit derAuslieferungsklasse »C« an, kann diese Datenbanktabelle nur in Entwick-lungssystemen geändert werden (wenn das System auf änderbar gesetzt ist),und die Inhalte müssen über das Transportwesen im Rahmen eines Customi-zing-Auftrags transportiert werden.

Wie Sie einen Pflegedialog anlegen, ist in Abschnitt 3.9, »Pflegedialoge«,beschrieben, während Sie in Kapitel 17, »Das Transportwesen«, eine Erläute-rung des Transportmechanismus finden.

Abbildung 3.18 Auslieferungsklasse einer Tabelle

3.5.4 Tabellensicht-Pflege

Auf der Registerkarte Auslieferung und Pflege (siehe Abbildung 3.17) stel-len Sie die Berechtigungen für die Anzeige bzw. Pflege Ihrer Datenbank-tabelle ein. Die grundlegende Frage, die Sie sich hier stellen müssen, lautet:»Wie soll auf die Datenbanktabelle zugegriffen werden können?«.

4270.book Seite 106 Donnerstag, 8. Dezember 2016 3:31 15

Datenbanktabellen 3.5

107

Hier haben Sie die folgenden Optionen zur Auswahl:

� Anzeige/Pflege eingeschränkt erlaubt

Die Anzeige der Datenbanktabelle ist nur im ABAP Dictionary (Transak-tion SE11) und in der allgemeinen Tabellenanzeige (Transaktion SE16bzw. SE16N) möglich.

� Anzeige/Pflege erlaubt

Die Tabelle kann in der allgemeinen Tabellenanzeige angezeigt und in derTabellensicht-Pflege (Transaktion SM30) über einen Pflegedialog (sieheAbschnitt 3.9, »Pflegedialoge«) gepflegt werden.

� Anzeige/Pflege nicht erlaubt

Anzeige bzw. Pflege ist nur über ABAP-Anweisungen (d. h. via Open SQL)möglich.

3.5.5 Datenart

Die Art der in Ihrer Datenbanktabelle gespeicherten Daten können Sie inden technischen Einstellungen auswählen (siehe Abbildung 3.19). KlickenSie dazu auf den Button Technische Einstellungen in der Funktionsleiste.

Abbildung 3.19 Technische Einstellungen einer Tabelle

Die wichtigsten Datenarten sind:

� APPL0 für Stammdaten

� APPL1 für Bewegungsdaten

� APPL3 Organisations- und Customizing-Daten

Die Frage, die Sie sich hierbei stellen müssen, lautet: »Welche Daten wollenSie speichern?« Sind es Daten, die sich häufig ändern (Bewegungsdaten), sindes Daten, auf die zwar häufig lesend zugegriffen wird, die sich jedoch sehr

4270.book Seite 107 Donnerstag, 8. Dezember 2016 3:31 15

Page 12: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Das ABAP Dictionary3

108

selten ändern (Stammdaten), oder sind es Daten, die für das Customizing desSystems benötigt werden? Die Auswahl hat für Sie als Programmierer keinegroßen Auswirkungen, Sie beeinflusst lediglich, wo die Daten auf der Daten-bank abgelegt werden, und dies auch nur für die Datenbanksysteme Oracleund Informix.

3.5.6 Größenkategorie

Die Größenkategorie Ihrer Datenbanktabelle können Sie ebenfalls in dentechnischen Einstellungen auswählen (siehe Abbildung 3.19). Hier geht esdarum anzugeben, wie viel Speicherplatz Ihre Tabelle in Zukunft vermutlicheinnehmen wird. Beim Anlegen der Datenbanktabelle wird aufgrund derhier angegebenen Größe ein initialer Speicherplatz auf der Datenbank reser-viert. Hintergrund ist, dass aufwendige Reorganisationen des Speicherplat-zes vermieden werden sollen, die entstehen, wenn der reservierte Speicher-platz überschritten wurde. Die Frage, die Sie sich in diesem Kontext stellenmüssen, lautet also: »Wie viele Daten werden vermutlich in der Daten-banktabelle gespeichert werden?«.

3.5.7 Pufferung

Die Pufferung können Sie ebenfalls in den technischen Einstellungen konfi-gurieren. Der Puffer ist ein spezieller Bereich auf dem Applikationsserver, indem Datensätze Ihrer Tabelle vorgehalten werden. Greift eine SQL-Anwei-sung auf eine gepufferte Tabelle zu, wird geprüft, ob die angefragten Datensich in diesem Pufferbereich befinden. Ist dies der Fall, werden die Datendirekt aus dem Puffer gelesen. Ist dies nicht der Fall, werden die Daten vonder Datenbank gelesen und dabei in den Puffer geladen. Die Pufferung einerTabelle erhöht die Performance bei jedem Zugriff auf die in der Tabelle ent-haltenen Datensätze, da nicht jedes Mal auf die Datenbank zugegriffen wer-den muss.

Ob Sie die Pufferung für eine Datenbanktabelle zulassen sollten oder nicht,hängt davon ab, wie später mit der Tabelle gearbeitet wird. Sind vielelesende Zugriffe abzusehen, lohnt sich eine Pufferung, bei vielen schreiben-den Zugriffen lohnt sich dagegen keine Pufferung. Wenn Sie die Pufferungeinschalten, müssen Sie auch eine Pufferungsart auswählen. Die Fragen, dieSie sich an dieser Stelle stellen müssen, lauten also: »Erfolgen auf meineDatenbanktabelle überwiegend lesende Zugriffe, und möchte ich dieGeschwindigkeit des Lesezugriffs erhöhen?«.

4270.book Seite 108 Donnerstag, 8. Dezember 2016 3:31 15

Datenbanktabellen 3.5

109

Zwei grundlegende Pufferungsarten stehen Ihnen zur Verfügung (sieheAbbildung 3.20):

� Einzelsätze gepuffert: Lohnt sich bei großen Tabellen mit vielen einzel-nen Zugriffen, da auch für nicht vorhandene Einträge im Puffer ein Ver-merk angelegt wird.

� vollständig gepuffert: Je kleiner eine Tabelle ist, je häufiger sie gelesenund je seltener in sie geschrieben wird, desto günstiger ist es, sie vollstän-dig zu puffern

Abbildung 3.20 Pufferung einer Tabelle

3.5.8 Felder ausprägen

Nachdem Sie die Eigenschaften und technischen Einstellungen gepflegthaben, können Sie sich endlich dem wichtigsten Punkt bei der Anlage einerDatenbanktabelle widmen: den Tabellenfeldern auf der Registerkarte Fel-

der. Wie in Abbildung 3.21 zu sehen, können Sie hier wie bei der Anlagevon Strukturen (siehe Abschnitt 3.3) Ihre gewünschten Felder eintragen undüber Datenelemente typisieren.

Abbildung 3.21 Felder einer Tabelle ausprägen

4270.book Seite 109 Donnerstag, 8. Dezember 2016 3:31 15

Page 13: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Das ABAP Dictionary3

110

Wenn Ihre Tabelle mandantenabhängig sein soll (das ist in der Regel der Fall),müssen Sie als erstes Feld das Feld MANDT vom Typ MANDT hinzufügen. DiesesFeld wird dann automatisch bei jeder Open-SQL-Anweisung mit dem aktuel-len Mandanten gefüllt bzw. beim lesenden Zugriff entsprechend verarbeitet.

3.5.9 Speicherart von Datenbanken mit SAP HANA

Mit SAP NetWeaver Application Server ABAP 7.40 wurde im ABAP Dictio-nary eine neue Registerkarte DB spezifische Eigenschaften eingeführt(siehe Abbildung 3.22). Hier können Sie steuern, mit welcher Speicherarteine Datenbanktabelle auf dem Datenbanksystem angelegt werden soll.

Abbildung 3.22 Speicherart einer Tabelle

Sie können zwischen drei verschiedenen Speicherarten wählen:

� Column Store: spaltenbasierte Speicherung als die neue Speicherart derSAP-HANA-Datenbank (siehe Kapitel 28, »SAP HANA«)

� Row Store: zeilenbasierte Speicherung als herkömmlicher Standard

� Undefined: andere

Diese Einstellung kann jederzeit nach der Erstellung der Tabelle geändertwerden. Die Tabelle wird anschließend entsprechend umgesetzt.

3.6 Indizes

Mit Indizes können Sie das Durchsuchen einer Tabelle nach Datensätzenbeschleunigen. Ein Index kann als sortierte Teilmenge einer Datenbankta-belle verstanden werden und ermöglicht so einen schnelleren Zugriff auf dieDatensätze. Im SAP-System wird zwischen folgenden Arten von Indizesunterschieden:

� PrimärindizesDer Primärindex besteht aus dem Primärschlüssel einer Tabelle sowieeinem Zeiger auf ihre Nicht-Schlüsselfelder, damit diese bei Bedarf schnellnachgelesen werden können. Der Primärindex wird beim Anlegen derTabelle auf der Datenbank automatisch erstellt.

4270.book Seite 110 Donnerstag, 8. Dezember 2016 3:31 15

Indizes 3.6

111

� SekundärindizesDarüber hinaus können Sie im ABAP Dictionary sogenannte Sekundärin-dizes anlegen. Diese Indizes sind notwendig, wenn häufig über Nicht-Schlüsselfelder auf die Tabelle zugegriffen wird, da hier der Primärindexnicht genutzt werden kann, der ja nur Schlüsselfelder enthält.

Es können mehrere dieser Sekundärindizes für eine Tabelle existieren.Erst zur Laufzeit wird vom Datenbanksystem entschieden, welcher Indexverwendet werden muss.

Sekundärindizes und SAP HANA

Durch die Einführung von SAP HANA und die spaltenorientierte Speicherunghaben Sekundärindizes an Bedeutung verloren. Weitere Informationen dazu fin-den Sie unter der Überschrift »Die goldenen Regeln für SAP HANA« in Abschnitt9.1 unter Regel 4.

Indizes anlegen

Um einen Index anzulegen, gehen Sie wie folgt vor:

1. Lassen Sie sich die Definition der Tabelle, für die Sie einen Index anlegenmöchten, in Transaktion SE11 anzeigen (siehe Abschnitt 3.5.1, »Daten-banktabellen anzeigen«).

2. Klicken Sie im Tabellen-Editor in der Funktionsleiste auf Indizes.

3. In der Übersicht der vorhandenen Indizes für die Tabelle klicken Sie nun,wie in Abbildung 3.23 dargestellt, in der Menüleiste auf den Button Anle-

gen ( ) und wählen aus dem Auswahlmenü die Aktion Index anlegen

aus.

Abbildung 3.23 Index zu einer Tabelle anlegen

4. Hier können Sie nun angeben, für welches Datenbanksystem der Indexangelegt werden soll und welche Felder der Index beinhalten soll (sieheAbbildung 3.24). Wenn Ihr Index den Primärschlüssel enthält, also eineZeile eindeutig identifiziert, können Sie auch die Option Unique-Index

auswählen.

4270.book Seite 111 Donnerstag, 8. Dezember 2016 3:31 15

Page 14: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Das ABAP Dictionary3

112

5. Aktivieren Sie Ihren Index anschließend über den Button Aktivieren ( ).

Abbildung 3.24 Definition der Indexfelder

3.7 Typgruppen

Eine Typgruppe ist ein historisch bedingtes Konstrukt und dient der Samm-lung mehrerer Typen. Es war nötig, da es vor Release 4.5A im ABAP Dictio-nary keine eigenständigen Datentypen gab, auf die in ABAP-Programmenmit dem TYPE-Zusatz verwiesen werden konnte.

Um eine Typgruppe anzulegen, geben Sie den gewünschten Namen auf demHauptübersichtsbildschirm der Transaktion SE11 im Feld Typgruppe ein, undklicken Sie anschließend auf Anlegen. Im sich öffnenden Pop-up-Fenstertragen Sie eine Kurzbeschreibung ein und speichern die Typgruppe mit ei-nem Klick auf Sichern. Innerhalb der angelegten Typgruppe können Sie nunüber den Editor Ihre benötigten Typen jeglicher Art definieren (siehe Abbil-dung 3.25).

Abbildung 3.25 Eine Typgruppe und seine Typen

Im ABAP-Programm können Sie Ihre Typgruppe im Beispiel aus Abbildung3.25 mit der folgenden Anweisung einbinden:

TYPE-POOLS zmtyg.

4270.book Seite 112 Donnerstag, 8. Dezember 2016 3:31 15

Views 3.8

113

3.8 Views

Ein View ist eine Zusammenfassung von ausgewählten Feldern aus mehre-ren Tabellen, ähnlich einem Join zur Verknüpfung von Datenbanktabellen(siehe Abschnitt 9.2.13, »JOIN: Verknüpfung«). Der Vorteil von Viewsgegenüber selbst mit ABAP programmierten Joins ist, dass sie rein über Defi-nitionsmasken und nicht durch Programmierung definiert werden und dassViews durch die zentrale Anlage im ABAP Dictionary systemweit wiederver-wendet werden können. Die so ausgewählte Schnittmenge wird als eigeneStruktur definiert und kann in ABAP-Programmen mit Open SQL konsu-miert werden.

Die Daten eines Views werden wie bei einem Join nicht physisch in einerseparaten Tabelle gespeichert, sondern als Teilmenge zur Laufzeit aus eineroder mehreren Tabellen durch Selektion (Weglassen von Spalten) und Pro-jektion (Weglassen von Zeilen) abgeleitet.

Um einen View anzulegen, geben Sie den gewünschten Namen auf demHauptübersichtsbildschirm der Transaktion SE11 im Feld View ein, und kli-cken Sie anschließend auf Anlegen. Im sich öffnenden Pop-up-Fensterhaben Sie nun folgende View-Typen zur Auswahl:

� Datenbank-View (siehe Abschnitt 3.8.1): normale Umsetzung einer Tabel-lenverknüpfung

� Projektions-View (siehe Abschnitt 3.8.2): Hier ist keine Verknüpfung vonTabellen möglich; dieser View-Typ dient dem Ausblenden von Spalteneiner Tabelle.

� Pflege-View (siehe Abschnitt 3.8.3): Pflege-Views ermöglichen die Pflegevon über mehrere Tabellen verteilten Daten.

� Help-View (siehe Abschnitt 3.8.4): Help-Views dienen als Selektionsme-thode in Suchhilfen.

3.8.1 Datenbank-View

Wenn Sie in dem Pop-up-Fenster zur Anlage eines Views den Typ Daten-

bank-View ausgewählt haben, gelangen Sie in den Datenbank-View-Editor:

1. Hier geben Sie auf der Registerkarte Tabellen/Joinbedingungen die zuverknüpfenden Tabellen an. In Open SQL wäre dies die JOIN-Klausel. DieTabellen müssen dabei über ihre Primär- und Fremdschlüssel miteinanderverknüpfbar sein. Tragen Sie die Tabellen unter Tabellen auf der linkenSeite ein (siehe Abbildung 3.26), und klicken Sie anschließend auf den

4270.book Seite 113 Donnerstag, 8. Dezember 2016 3:31 15

Page 15: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Das ABAP Dictionary3

114

Button Beziehungen unterhalb der Tabelle. Dadurch werden Ihnenbereits mögliche Verknüpfungen vorgeschlagen, von denen Sie eine aus-wählen können.

Abbildung 3.26 Join-Bedingung eines Views

2. Nun wählen Sie auf der Registerkarte Viewfelder (siehe Abbildung 3.27) diegewünschten Felder der ausgewählten Tabellen aus. Bei einer Definition inOpen SQL entspräche das der Feldleiste nach der SELECT-Anweisung. DieView-Felder können Sie entweder manuell in die Tabelle eintragen oder sieüber den Button Tabellenfelder automatisch hinzufügen lassen.

Abbildung 3.27 Felder eines Views

3. Jetzt können Sie Ihren View Aktivieren ( ) und testen.

Sie haben darüber hinaus aber noch die Möglichkeit, auf der RegisterkarteSelektionsbedingungen (siehe Abbildung 3.28) eine Selektionsbedingunganalog zur einer WHERE-Klausel in einer Open-SQL-Anweisung anzugeben,um so nur eine Teilmenge der Daten zu selektieren. Auch dabei können Siedie Felder wieder über den Button Tabellenfelder automatisch hinzufügenlassen. Die möglichen Operatoren und Vergleichswerte entsprechen dabeigenau der Schreibweise einer Open-SQL-Anweisung. Für die Operatorensteht als Unterstützung eine (F4)-Hilfe bereit. Über die Spalte AND/OR kön-nen Sie Ihre Bedingungen verknüpfen.

4270.book Seite 114 Donnerstag, 8. Dezember 2016 3:31 15

Views 3.8

115

Abbildung 3.28 Selektionsbedingung eines Views

Aktivieren ( ) Sie gegebenenfalls erneut. Nun können Sie Ihren View testen.Dies ist über den Button Datenanzeige ( ) in der Funktionsleiste oder – wieeingangs beschrieben – über eine Open-SQL-Anweisung möglich. Wie Sie inListing 3.1 sehen können, können auch hier nochmals eine Selektion sowieeine Projektion vorgenommen werden. Die Selektion von Datenbanktabellenmit ABAP ist in Kapitel 9, »Zugriff auf Datenbanken«, beschrieben.

DATA: lt_mat_texte TYPE TABLE OF zmein_db_view.SELECT matnr mtktx FROM zmein_db_view

INTO CORRESPONDING FIELDS OF TABLE lt_mat_texteWHERE ersda = sy-datum.

Listing 3.1 Verwendung eines Views in einer SELECT-Anweisung

3.8.2 Projektions-View

Wenn Sie im Pop-up-Fenster zum Anlegen eines Views den Typ Projektions-

View ausgewählt haben, gelangen Sie zum Projektions-View-Editor. Hierhaben Sie im Vergleich zum Datenbank-View-Editor nicht die Möglichkeit,Tabellen miteinander zu verknüpfen, sondern können lediglich auf Basiseiner Tabelle eine Projektion, also eine Auswahl von Feldern, vornehmen:

1. Dazu tragen Sie auf der Registerkarte Viewfelder, wie in Abbildung 3.29dargestellt, die Basistabelle ein und wählen die gewünschten Felder aus.Der Button Tabellenfelder hilft Ihnen wieder bei der Auswahl der Felder.

2. Darüber hinaus können Sie auf der Registerkarte Pflegestatus steuern, obauf die Tabelle nur lesend oder auch schreibend zugegriffen werden darf.Für die Auswahl der Felder für die Data Browser/Tabellensicht-Pflege

gelten dieselben Erläuterungen wie bei der Anlage einer Tabelle (sieheAbschnitt 3.5.4, »Tabellensicht-Pflege«).

4270.book Seite 115 Donnerstag, 8. Dezember 2016 3:31 15

Page 16: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Das ABAP Dictionary3

116

Abbildung 3.29 View-Felder eines Projektions-Views

3.8.3 Pflege-View

Wenn Sie in dem Pop-up-Fenster zum Anlegen eines Views den Typ Pflege-

View ausgewählt haben, gelangen Sie in den Pflege-View-Editor. Ihnen wirdvermutlich auffallen, dass der Pflege-View-Editor genau denselben Aufbauhat wie der für Datenbank-Views (siehe Abschnitt 3.8.1). Der Unterschiedist, dass Sie hier auf der Registerkarte Tabellen/Joinbedingungen gezwun-gen sind, bei der Definition von Tabellenverknüpfungen über den ButtonBeziehungen unterhalb der linken Tabelle zu arbeiten, die Tabellen alsonicht frei eintragen können. Hiermit soll sichergestellt werden, dass nur mitFremdschlüsselbeziehungen gearbeitet wird. Hintergrund ist, dass einPflege-View die Pflege mehrerer verknüpfter Tabellen ermöglicht. Sie kön-nen damit im Unterschied zu normalen Datenbank-Views auch änderndeOpen-SQL-Befehle anwenden bzw. einen Pflegedialog generieren (sieheAbschnitt 3.9).

Um den Pflege-View anzulegen, gehen Sie wie folgt vor:

1. Tragen Sie, wie in Abschnitt 3.8.1, »Datenbank-View«, erläutert, dieBasistabelle unter Tabellen ein, und verknüpfen Sie diese über den ButtonBeziehungen.

2. Anschließend können Sie auf der Registerkarte Pflegestatus auswählen,inwiefern Ihr Pflege-View bearbeitet werden darf (siehe Abbildung 3.30).Für die Auswahlmöglichkeiten Auslieferungsklasse und Data Browser/

Tabellensicht-Pflege gelten dabei dieselben Erläuterungen wie bei derAnlage einer Datenbanktabelle (siehe Abschnitt 3.5.3 und Abschnitt 3.5.4).

4270.book Seite 116 Donnerstag, 8. Dezember 2016 3:31 15

Pflegedialoge 3.9

117

Abbildung 3.30 Pflegestatus eines Pflege-Views definieren

3.8.4 Help-View

Wenn Sie im Pop-up-Fenster zum Anlegen eines Views den Typ Help-View

ausgewählt haben, gelangen Sie in den Help-View-Editor. Dieser ist wie derEditor zur Anlage eines Pflege-Views aufgebaut. Auch hier müssen Sie dieeinzelnen Tabellenverknüpfungen auf der Registerkarte Tabellen/Join-

bedingungen über den Button Beziehungen eintragen.

Anschließend können Sie diesen Help-View als Datenquelle für eine Suchhilfeangeben. Dieses Vorgehen ist in Abschnitt 3.10, »Suchhilfen«, beschrieben.

3.9 Pflegedialoge

Datenbanktabellen müssen mit Daten gefüllt werden. Damit dies nicht aus-schließlich über SQL-Befehle (siehe Kapitel 9, »Zugriff auf Datenbanken«)geschehen kann, bietet SAP die Möglichkeit, einen sogenannten Pflegedialogfür eine Datenbanktabelle anzulegen. Über einen solchen Pflegedialog kön-nen Sie den Inhalt einer Datenbanktabelle pflegen. Sie können Zeilen hinzu-fügen, löschen oder ändern. Häufig wird für Pflegedialoge auch der BegriffSM30-Tabelle verwendet, da diese über den Transaktionscode SM30 (Tabel-lensicht-Pflege) zugänglich sind.

In den folgenden Abschnitten zeige ich Ihnen, wie Sie einen Pflegedialoganlegen (siehe Abschnitt 3.9.1) und die Eingabemaske verbreitern können(siehe Abschnitt 3.9.2).

4270.book Seite 117 Donnerstag, 8. Dezember 2016 3:31 15

Page 17: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Das ABAP Dictionary3

118

3.9.1 Pflegedialog anlegen

Zur Anlage eines Pflegedialogs gehen Sie wie folgt vor:

1. Wechseln Sie in Transaktion SE11, und lassen Sie sich die Tabelle anzei-gen, zu der Sie den Pflegedialog anlegen wollen (siehe Abschnitt 3.5.1,»Datenbanktabellen anzeigen«).

2. Aus der Tabellenanzeige können Sie nun über den Pfad Hilfsmittel �

Tabellenpflegegenerator im Hauptmenü zur Anlage eines Pflegedialogsgelangen.

3. Folgende Angaben müssen Sie in der Anlageoberfläche machen (sieheAbbildung 3.31):

– Berechtigungsgruppe: Wer darf später auf die Tabelle zugreifen, alleBenutzer oder nur bestimmte?

– Funktionsgruppe: die Funktionsgruppe, in der die Dynpros und dieAblauflogik für den Pflegedialog generiert werden sollen

– Pflegetyp: Möchten Sie eine Suchmaske als Einstiegsbild haben (zwei-

stufig), oder soll der Benutzer direkt zur Tabellenanzeige gelangen(einstufig)?

– Pflegebildnummer: Wenn Sie als Pflegetyp einstufig ausgewählthaben, müssen Sie nur das Eingabefeld Übersichtsbild füllen, beieinem zweistufigen Pflegedialog müssen Sie sowohl das EingabefeldÜbersichtsbild als auch das Feld Einzelbild füllen. Vergeben Sie hierjeweils eine Nummer (z. B. 1 oder 2), diese müssen sich lediglich unter-scheiden.

– Aufzeichnungsroutine: Wählen Sie Standard Aufzeichnungsrou-

tine, fordert das System nach einer Pflege von Tabellenzeilen einenTransportauftrag an, damit ein Transport in andere Systeme ermöglichtwird. Bei der Auslieferungsklasse »C« ist diese Option standardmäßigeingestellt.

4. Klicken Sie anschließend in der Funktionsleiste auf Anlegen ( ).

Wenn alles geklappt hat, können Sie Ihren Pflegedialog nun in TransaktionSM30 testen. Geben Sie hierzu den Namen der Tabelle ein, und klicken Sieauf Pflegen.

4270.book Seite 118 Donnerstag, 8. Dezember 2016 3:31 15

Pflegedialoge 3.9

119

Abbildung 3.31 Generierung eines Pflegedialogs

3.9.2 Pflegedialog verbreitern

Wenn Sie Ihren Pflegedialog in Transaktion SM30 aufrufen, werden Sie fest-stellen, dass die Breite der Tabelle viel zu knapp bemessen ist. Die in Abbil-dung 3.32 markierte Fläche ist damit ungenutzt. Dies ist gerade bei vielenSpalten für die Anwender sehr unschön und umständlich. Daher gibt eseinen Trick, um den Pflegedialog zu verbreitern.

Abbildung 3.32 Ungenutzter Platz eines Pflegedialogs

Weitere Informationen zur Dynpro-Programmierung

Zum Verständnis der folgenden Erläuterungen ist es hilfreich, wenn Sie bereitsgrundlegende Kenntnisse in der Dynpro-Programmierung haben. Die Grundlagenlernen Sie in Kapitel 14.

4270.book Seite 119 Donnerstag, 8. Dezember 2016 3:31 15

Page 18: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Das ABAP Dictionary3

120

Die Vorgehensweise ist überschaubar:

1. Öffnen Sie die Funktionsgruppe zum Pflegedialog, indem Sie in Transak-tion SE80 die Dropdown-Liste Funktionsgruppe nutzen.

2. Öffnen Sie das Dynpro für das Übersichtsbild des Pflegedialogs (im Ord-ner Dynpros, z. B. Dynpro 0001).

3. Wechseln Sie in den Bearbeitungsmodus über den Button Anzeigen <->

Ändern ( ).

4. Öffnen Sie den Layout-Editor über den Button Layout.

5. Verbreitern Sie, wie in Abbildung 3.33 dargestellt, den Hauptbereich fürdas Fenster, indem Sie den Rahmen mit der Maus nach rechts ziehen.

Abbildung 3.33 Verbreiterung eines Pflegedialogs im Screen Painter

Dynpro-Größe ändern

Falls Ihnen dabei die Meldung »Element(e) außerhalb der neuen Grenzen (Dynpro-Größe nicht verändert)« angezeigt wird, müssen Sie die Dynpro-Größe vergrößern.Scrollen Sie dazu, wie in Abbildung 3.34 dargestellt, zum unteren Rand des Bild-schirms im Screen Painter, und ziehen Sie die Ecke des Dynpros mit gedrückter lin-ker Maustaste erst nach unten und dann nach rechts.

Abbildung 3.34 Dynpros im Screen Painter verbreitern

4270.book Seite 120 Donnerstag, 8. Dezember 2016 3:31 15

Suchhilfen 3.10

121

6. Aktivieren ( ) Sie anschließend, und testen Sie Ihre Änderungen inTransaktion SM30.

Neugenerierung bei Anpassung

Falls Sie den Pflegedialog später in Transaktion SE11 bzw. SE54 nochmals anpas-sen, wird das Dynpro teilweise neu generiert und wieder auf die Standardgrößegebracht. In diesem Fall müssen Sie also die beschriebenen Änderungen noch ein-mal durchführen.

3.10 Suchhilfen

Suchhilfen stehen innerhalb des SAP-Systems als Eingabehilfen für denAnwender bereit. Sie zeigen dem Anwender eine Liste aller möglichen Ein-gabewerte für ein Eingabefeld. Die möglichen Eingabewerte können, wie inAbbildung 3.35 zu erkennen, durch weitere Informationen angereichertsein, damit der Anwender z. B. zu einer Materialnummer auch den zugehö-rigen Materialtext sieht und ihm so die Auswahl leichter fällt. Durch einenDoppelklick auf eine Zeile in der Suchhilfe wird der ausgewählte Wert in dasEingabefeld übernommen.

Abbildung 3.35 Eine Suchhilfe für die Materialnummer

Innerhalb des ABAP Dictionarys können Sie eigene Suchhilfen anlegen.Geben Sie dazu den gewünschten Namen der Suchhilfe auf dem Hauptüber-sichtsbildschirm der Transaktion SE11 im Feld Suchhilfe ein, und klickenSie auf Anlegen. Im sich öffnenden Pop-up-Fenster haben Sie folgendeArten von Suchhilfen zur Auswahl:

� Elementare Suchhilfe als Standardeingabehilfe (siehe Abschnitt 3.10.1)

� Sammelsuchhilfe als Zusammenfassung von mehreren elementaren Such-hilfen, wobei für jede Suchhilfe eine Registerkarte angezeigt wird (sieheAbschnitt 3.10.2)

4270.book Seite 121 Donnerstag, 8. Dezember 2016 3:31 15

Page 19: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Das ABAP Dictionary3

122

Innerhalb von Suchhilfen bietet Ihnen das System darüber hinaus mitAppend-Suchhilfen die Möglichkeit, Sammelsuchhilfen modifikationsfrei zuerweitern. Dieses Vorgehen ist in Abschnitt 21.4.8, »Suchhilfen-Erweiterun-gen«, beschrieben.

3.10.1 Elementare Suchhilfe

Wenn Sie im Pop-up-Fenster zur Anlage einer Suchhilfe den Typ Elemen-

tare Suchhilfe ausgewählt haben, gelangen Sie in den Suchhilfen-Editor:

1. Zur Definition einer Suchhilfe müssen Sie zunächst folgende Eigenschaf-ten definieren (siehe Abbildung 3.36):

– Selektionsmethode: Wählen Sie, ob die Daten von einer Datenbankoder einem View gelesen werden sollen.

– Dialogverhalten: Wählen Sie, ob ein Fenster zur Werteeinschränkungangezeigt werden soll oder ob die Ergebnisliste direkt angezeigt werdensoll.

Abbildung 3.36 Selektionsmethode und Dialogverhalten einer Suchhilfe

2. Darüber hinaus müssen Sie die Suchhilfeparameter bestimmen (sieheAbbildung 3.37). Das sind die Felder, die im Suchhilfefenster angezeigtwerden sollen. Dabei müssen Sie auch bestimmen, welche Felder bei derAuswahl eines Eintrags aus der Ergebnisliste übernommen werden.

Abbildung 3.37 Definition von Suchhilfeparametern

3. Über die Spalte IMP definieren Sie, welche Werte aus Ihrer Datenquelleübernommen werden, also in der Wertetabelle angezeigt werden könnten.

4270.book Seite 122 Donnerstag, 8. Dezember 2016 3:31 15

Suchhilfen 3.10

123

4. Über die Spalte EXP definieren Sie, welche Werte in die Maske übernom-men werden.

5. Über die Spalte LPos definieren Sie, ob das Feld in der Trefferliste auchwirklich dargestellt werden soll. Mit der Nummer geben Sie die Reihen-folge der Spalten an (z. B. zuerst das Feld MATNR für das Material 1 undanschließend das Feld MAKTX für den Materialkurztext 2, siehe Abbil-dung 3.38). Soll der Parameter nicht auf der Trefferliste erscheinen, lassenSie dieses Feld frei.

6. Über die Spalte SPos definieren Sie, ob das Feld in der Suchmaske darge-stellt werden soll. Mit der Nummer geben Sie die Reihenfolge der Einga-befelder an (z. B. erst das Feld MATNR für das Material 1 und dann das FeldMAKTX für den Materialkurztext 2, siehe Abbildung 3.38). Soll der Para-meter nicht auf der Suchmaske erscheinen, so lassen Sie dieses Feld frei.

Abbildung 3.38 Unterschied zwischen den Angaben in den Spalten »LPos« und »SPos«

7. Zum Schluss Aktivieren ( ) Sie Ihre Suchhilfe.

Nun können Sie die Suchhilfe an ein Datenelement hängen (siehe auch Ab-schnitt 3.2) oder sie direkt in einem Selektionsbildschirm durch die Angabeeines Parameters mit dem Zusatz MATCHCODE OBJECT verwenden:

PARAMETERS: p_matnr TYPE matnr MATCHCODE OBJECT zmeine_suchhilfe.

3.10.2 Sammelsuchhilfe

Wenn Sie im Pop-up-Fenster zur Anlage einer Suchhilfe den Typ Sammel-

suchhilfe ausgewählt haben, gelangen Sie zum Suchhilfen-Editor:

1. Zur Definition einer Sammelsuchhilfe müssen Sie zuerst die Suchhilfe-parameter definieren (d. h. bestimmen, welche Werte übernommen undwelche zurückgegeben werden). Diese Suchhilfeparameter tragen Sie aufder Registerkarte Definition ein (siehe Abbildung 3.39).

4270.book Seite 123 Donnerstag, 8. Dezember 2016 3:31 15

Page 20: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Das ABAP Dictionary3

124

Abbildung 3.39 Suchhilfeparameter einer Sammelsuchhilfe

2. Anschließend geben Sie auf der Registerkarte Inkludierte Suchhilfen dieelementaren Suchhilfen an, die zur Sammelsuchhilfe zusammengefasstwerden sollen.

3. Nun müssen Sie die auf der Registerkarte Definition definierten Suchhil-feparameter den Suchhilfeparametern der inkludierten Suchhilfen zuord-nen. Klicken Sie hierzu, wie in Abbildung 3.40 dargestellt, auf die Zeile derSuchhilfe 1 und anschließend auf den Button Parameterzuordnung 2.

4. Tragen Sie einen Bezugsparameter ein, und bestätigen Sie Ihre Zuord-nung mit dem Button Übernehmen.

Abbildung 3.40 Parameterzuordnung in einer Sammelsuchhilfe

5. Aktivieren ( ) Sie anschließend Ihre Sammelsuchhilfe.

Nun können Sie die Sammelsuchhilfe an ein Datenelement hängen (sieheAbschnitt 3.2) oder wie die elementare Suchhilfe in einem Selektionsbild-schirm verwenden (siehe Abschnitt 3.10.1).

3.11 Datenbank-Utility-Tool

Das Datenbank-Utility-Tool brauchen Sie vor allem dann, wenn Ihre Daten-banktabelle bereits Daten beinhaltet, Sie aber aufgrund einer neuen Anfor-derung z. B. neue Schlüsselfelder hinzufügen müssen und beim Aktivieren

4270.book Seite 124 Donnerstag, 8. Dezember 2016 3:31 15

Das Sperrkonzept 3.12

125

der Tabelle dadurch folgende Fehlermeldung erhalten: »Strukturänderungauf Feldebene (Bitte Tabelle umsetzen)«.

Wählen Sie im Hauptmenü Hilfsmittel � Datenbankobjekt � Datenbank-

Utility, um das Tool zu öffnen. Sie können nun drei grundlegende Daten-bankoperationen (siehe Abbildung 3.41) durchführen:

� Datenbanktabelle anlegen

� Datenbanktabelle löschen

� Aktivieren und Datenbank anpassen

Abbildung 3.41 Datenbankoperationen mit dem Datenbank-Utility-Tool

Um die geänderte Datenbanktabelle zu aktivieren, wählen Sie Aktivieren

und Datenbank anpassen. Bestätigen Sie das Pop-up-Fenster Auftrag:

Anpassen mit Ja.

3.12 Das Sperrkonzept

Über das Sperrkonzept soll verhindert werden, dass durch gleichzeitigeÄnderungen Datenschiefstände in einer Datenbanktabelle entstehen. Ver-gleichen könnte man diesen Mechanismus mit dem Sperrmechanismus inMicrosoft Excel: Nur ein Benutzer darf mit einer Excel-Tabelle arbeiten, einanderer Benutzer darf derweil auf die Daten nur lesend zugreifen. Das Sperr-konzept im ABAP Dictionary geht hier noch einen Schritt weiter und ermög-licht nicht nur das Sperren einer kompletten Datenbanktabelle, sondernauch das Sperren einzelner Einträge einer Datenbanktabelle. In einem Sperr-objekt werden die Tabellen mit ihren Schlüsselfeldern angegeben, in denenbestimmte Datensätze gesperrt werden sollen. Das Setzen bzw. Freigebenvon Sperren erfolgt durch den Aufruf von Funktionsbausteinen, die automa-tisch bei der Definition eines Sperrobjekts generiert werden.

4270.book Seite 125 Donnerstag, 8. Dezember 2016 3:31 15

Page 21: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Das ABAP Dictionary3

126

Ein Sperrobjekt anlegen

Um ein Sperrobjekt anzulegen, gehen Sie wie folgt vor:

1. Geben Sie den gewünschten Namen des Sperrobjekts auf dem Hauptüber-sichtsbildschirm der Transaktion SE11 im Feld Sperrobjekt ein. Der Namemuss dabei mit einem E anfangen, gefolgt vom Kundennamensraum (z. B.Z oder Y). Beispielsweise könnte Ihr Sperrobjekt EZ_MEIN_SPERROBJ heißen.

2. Klicken Sie anschließend auf Anlegen.

3. Es öffnet sich der Sperrobjekt-Editor, in dem Sie nun auf der RegisterkarteTabellen die zu sperrende Tabelle eintragen und einen Sperrmodus aus-wählen (siehe Abbildung 3.42). Folgende (wichtige) Sperrmodi stehenIhnen dazu zur Verfügung:

– Schreibsperre: Nur ein Benutzer kann die gesperrten Daten lesen bzw.bearbeiten.

– Lesesperre: Mehrere Benutzer können auf dieselben Daten (lesend)zugreifen. Sobald ein Benutzer jedoch die Daten bearbeitet, hat einzweiter Benutzer keinen Zugang auf diese Daten.

– erweiterte Schreibsperre: Eine Transaktion kann nur eine Sperreanfragen, jede weitere Anforderung einer Sperre wird abgewiesen.

Abbildung 3.42 Sperrmodi eines Sperrobjekts

4. Auf der Registerkarte Sperrparameter können Sie zusätzlich die Sperr-parameter (in Form der Primärschlüssel) bearbeiten und gegebenenfallseinen Primärschlüssel deaktivieren.

5. Zuletzt Aktivieren ( ) Sie Ihr Sperrobjekt.

Wenn Sie nun im Hauptmenü den Pfad Springen � Sperrbausteine wählen,werden Ihnen zwei Funktionsbausteine präsentiert (siehe Abbildung 3.43).

4270.book Seite 126 Donnerstag, 8. Dezember 2016 3:31 15

Das Sperrkonzept 3.12

127

Abbildung 3.43 Sperrbausteine eines Sperrobjekts

Diese können Sie nun verwenden, um die Datenbanktabelle zu sperren bzw.zu entsperren. Wie Sie Funktionsbausteine mit ABAP generell aufrufen, ist inAbschnitt 13.4.2, »Aufruf von Funktionsbausteinen«, beschrieben. Sie müs-sen beim Aufruf lediglich die Primärschlüssel der zu sperrenden Datensätzeangeben.

4270.book Seite 127 Donnerstag, 8. Dezember 2016 3:31 15

Page 22: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

27

2

Einleitung

ABAP ist die von der SAP entwickelte Programmiersprache für die Erstellungkundenspezifischer Anwendungsprogramme. Die Abkürzung steht fürAdvanced Business Application Programming. Darüber hinaus nutzt SAPselbst ABAP auch als Basis für SAP ERP, die SAP Business Suite und die SAP-NetWeaver-Plattform. All diese Systeme basieren auf Millionen von in ABAPgeschriebenen Zeilen.

Die Abkürzung ABAP bedeutete ursprünglich Allgemeiner Berichtsaufberei-tungsprozessor und war, wie es der Name vermuten lässt, dafür gedacht,kundeneigene Berichte aufzubereiten. ABAP orientierte sich in seinerursprünglichen Form an der Syntax der Programmiersprache COBOL. Überdie Jahrzehnte wurde ABAP kontinuierlich weiterentwickelt und verbessert.So hat sich der Sprachumfang mittlerweile vervielfacht, da immer wiederneue Anweisungen und Funktionen hinzukamen, wobei ältere aus Kompati-bilitätsgründen beibehalten wurden.

Die aktuelle Version von ABAP (7.51, Stand Ende 2016) steht in ihrer Funk-tionalität anderen modernen Programmiersprachen kaum noch nach. Bereits2004 wurde der Sprachumfang um die objektorientierten Elemente vonABAP Objects erweitert. Dennoch findet man aufgrund der erwähnten Kom-patibilitätssicherung in ABAP auch heute noch viel ältere Funktionalität, diesich mit den neuen, modernen Konstrukten vermischt hat. In der Praxis hatder Entwickler daher häufig mit einer Mischform aus »alter« und »neuer«Welt zu tun. Eine einseitige Betrachtung ergibt daher keinen Sinn.

Dennoch ist die Zukunft von ABAP bereits angebrochen. ABAP hat durch dieletzten beiden Releases 7.40 und 7.50/7.51 sehr viele neue Funktionengewonnen, die in die Kapitel dieses Buches integriert sind. Besonders wich-tig in Bezug auf dieses neue ABAP sind die neue Datenbank SAP HANA unddie neue Oberflächentechnologie SAPUI5 bzw. die von SAP bereitgestelltenSAP-Fiori-Apps. Diese neuen Technologien sind das Aushängeschild desSAP-ERP-Nachfolgers SAP S/4HANA. Doch auch wenn die SAP BusinessSuite für SAP S/4HANA (auf Vorlage der alten Systeme) komplett überarbei-tet wurde, bleibt ABAP die Kernprogrammiersprache auch für dieses System.

4270.book Seite 27 Donnerstag, 8. Dezember 2016 3:31 15

Page 23: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Einleitung

28

Betrachtet man die durchschnittliche Halbwertszeit (d. h. die Einsatzzeit beimKunden) eines ERP-Systems von ca. 20 Jahren (SAP R/3 kam 1993, SAP ECC2004), wird uns ABAP durch SAP S/4HANA noch lange erhalten bleiben –auch wenn dies in den letzten Jahren (z. B. im Rahmen der Ankündigung derJava-Strategie) nicht immer als Selbstverständlichkeit galt.

In anderen Worten: ABAP ist die Programmiersprache von SAP und wirddies bleiben. Herzlich willkommen seien daher alle Leser, die sich entschie-den haben, sich intensiver mit ABAP im Allgemeinen und ABAP Objects imSpeziellen zu beschäftigen.

Aufbau dieses Buches

Zuallererst möchte ich Ihnen einen Überblick über das vor Ihnen liegendeBuch geben. Im Anschluss habe ich Ihnen verschiedene Lesepläne zusam-mengestellt – abhängig davon, welche Vorkenntnisse Sie mitbringen.

� Teil I, »Die Werkzeugkiste des ABAP-Entwicklers«, beschäftigt sich mitden Entwicklungswerkzeugen des SAP GUI wie der eingebauten ABAPWorkbench (Transaktion SE80). Außerdem stelle ich Ihnen hier die neuenABAP Development Tools for SAP NetWeaver (ADT) für die Entwicklungs-umgebung Eclipse vor.

� Teil II, »Der Kern der Sprache ABAP«, beschäftigt sich mit dem ABAP-Sprachkern. Von absolut grundlegenden Anweisungen über den Zugriffauf Datenbanktabellen, die Verarbeitung der Daten und ABAP-Objects-Anweisungen bis hin zur Report- und Dynpro-Programmierung ist hieralles vertreten. So hat hier auch der Zugriff auf die neue SAP-HANA-Daten-bank mit ABAP (auch ABAP für HANA genannt) mit Eingang gefunden. Ins-besondere finden Sie in diesem Teil die mit den Releases 7.40 und 7.50/1neu eingeführten Sprachbefehle und Funktionen.

� Teil III, »Techniken zur Qualitätssicherung«, dreht sich um den Testund die Qualitätskontrolle Ihrer geschriebenen Anweisungen. Hier wer-den die gezielte Verwendung des ABAP Debuggers sowie die zur Verfü-gung stehenden Analysewerkzeuge erläutert.

� Teil IV, »Fortgeschrittene Programmiertechniken«, behandelt weitereThemen aus dem Umfeld von ABAP. Dazu gehören die Entwicklung vonSchnittstellen, die Erweiterung von SAP-Standardprogrammen, die Ent-wicklung von Formularen und Tabellenanzeigen sowie auch fortgeschrit-

4270.book Seite 28 Donnerstag, 8. Dezember 2016 3:31 15

Einleitung

29

tene Techniken wie die dynamische Programmierung oder die Anwen-dung objektorientierter Frameworks wie der Object Services oder SharedObjects.

� Teil V, »Objektorientierte Programmierung«, vermittelt in erster Liniedie Grundlagen der objektorientierten Programmierung mit ABAP undzeigt konkrete Methoden für den Entwicklungsprozess. Insbesonderewerden hier die objektorientierte Modellierung sowie Hilfsmittel wieUML und Entwurfsmuster besprochen.

� Im letzten Teil des Buches, Teil VI, »Ein Blick über den Tellerrand: WasSie als ABAP-Entwickler sonst noch kennen sollten«, möchte ich Ihnenden Grund für die vielen Änderungen der letzten Releases etwas genauervorstellen: SAP HANA als neue Datenbankplattform sowie SAPUI5 alsneue Web-Frontend-Technologie, die eine regelrechte Innovationswelleangestoßen haben. In diesem Teil gehe ich insbesondere sowohl auf dievielen neuen Begriffe im Umfeld dieser Technologien als auch auf die Ent-wicklung von OData-Services ein.

Der Anhang fasst alle wichtigen ABAP-Anweisungen, obsoleten ABAP-Anweisungen, Systemfelder, eingebauten Datentypen, nützliche Funktions-bausteine und Klassen, Transaktionscodes sowie technische Tabellen zurProgrammierung mit ABAP zusammen.

Ihr Weg durch das Buch

Da sich dieses Buch an mehrere Zielgruppen richtet (ABAP-Einsteiger, -Ken-ner und -Experten) und gleichermaßen als Nachschlagewerk für den Alltagdienen soll, finden Sie im Folgenden einige Hinweise, wie Sie aus dem Buchfür sich am meisten Gewinn erzielen können.

Aus folgenden Leseplänen können Sie wählen:

� Einsteiger in ABAP

� Einsteiger in ABAP Objects

� Kenner von ABAP Objects (vor allem der Releases vor und bis 7.31)

� Interessenten an den neuen Technologien

� Experten

Die Lesepläne bauen aufeinander auf, vom Einsteiger bis zum Experten. Ver-suchen Sie, wann immer es geht, so viel wie möglich am System nachzuvoll-

4270.book Seite 29 Donnerstag, 8. Dezember 2016 3:31 15

Page 24: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Einleitung

30

ziehen, da sich Programmierung am besten durch die konkrete Anwendungerlernen lässt.

In hervorgehobenen Informationskästen sind Inhalte zu finden, die wissens-wert und hilfreich sind, aber etwas außerhalb der eigentlichen Erläuterungstehen. Damit Sie die Informationen in den Kästen sofort einordnen können,haben wir die Kästen mit Symbolen gekennzeichnet:

Die mit diesem Symbol gekennzeichneten Tipps geben Ihnen spezielle Emp-fehlungen, die Ihnen die Arbeit erleichtern können.

In Kästen, die mit diesem Symbol gekennzeichnet sind, finden Sie Informa-tionen zu weiterführenden Themen oder wichtigen Inhalten, die Sie sich mer-ken sollten.

Dieses Symbol weist Sie auf Besonderheiten hin, die Sie beachten sollten. Eswarnt Sie außerdem vor häufig gemachten Fehlern oder Problemen, die auf-treten können.

Leseplan für Einsteiger in ABAP

Fangen Sie mit der Lektüre des Kapitel 1 an, um sich mit der Entwicklungs-umgebung vertraut zu machen. Insbesondere ist hier Abschnitt 1.4.2, »EinenReport anlegen«, von Bedeutung, der Ihnen zeigt, wie Sie einen neuenReport in Transaktion SE80 anlegen und ausführen können.

Bevor Sie sich dann mit den Anweisungen von ABAP auseinandersetzen, istes wichtig, die Rolle des in Kapitel 3 beschriebenen ABAP Dictionarys zu ver-stehen. Lesen Sie sich hier alle Abschnitte bis Abschnitt 3.4, »Tabellenty-pen«, durch. Die folgenden Abschnitte können Sie erstmal außer Acht lassen.

Mit Ihrem ersten angelegten Report und dem Grundwissen über das ABAPDictionary können Sie nun die in Kapitel 7, »Die ABAP-Grundbefehle«,beschriebenen grundlegenden ABAP-Anweisungen ausprobieren. Versu-chen Sie, die vielen Beispiele direkt bei sich im System auszuprobieren.Überspringen Sie erstmal die als fortgeschritten markierten Abschnitte.

Nach einer kurzen Verschnaufpause können Sie sich direkt intensiv mit Kapi-tel 8 auseinandersetzen, das die internen Tabellen von ABAP intensiv behan-delt. Kapitel 9 zeigt Ihnen im Anschluss, wie Sie Daten von der Datenbank ininterne Tabellen laden und weiterverarbeiten können.

Lesen Sie nun die restlichen Abschnitte (ab Abschnitt 3.5) von Kapitel 3,»Das ABAP Dictionary«. Insbesondere ist hier Abschnitt 3.5, »Datenbank-

4270.book Seite 30 Donnerstag, 8. Dezember 2016 3:31 15

Einleitung

31

tabellen«, von Bedeutung, der Ihnen zeigt, wie Sie selbst eine Tabelle auf derDatenbank anlegen können. So eine Tabelle können Sie mit den in Kapitel 9,»Zugriff auf Datenbanken«, gelernten Open-SQL-Anweisungen bzw. den inAbschnitt 3.9 beschriebenen Pflegedialogen bearbeiten.

Haben Sie eine SAP-HANA-Datenbank zur Verfügung, empfehle ich Ihnennun die Lektüre von Kapitel 28, »SAP HANA«, sowie anschließend von Kapi-tel 10, »Zugriff auf SAP-HANA-Entwicklungsobjekte«. Sollten Sie keineHANA-Datenbank zur Verfügung haben, so ist dies nicht weiter schlimm, daSie diese beiden Kapitel jederzeit nachträglich ohne Probleme durcharbeitenkönnen.

Kapitel 12 beschäftigt sich dann mit der Erstellung von Selektionsbildschir-men in Reports. Dies hilft Ihnen dabei, Eingabemasken für Ihre Anwenderbereitzustellen. Kapitel 4 zeigt Ihnen, wie Sie es schaffen, Ihren Report miteinem Transaktionscode zu verknüpfen, damit Ihre Anwender den vonIhnen entwickelten Report direkt aufrufen können.

Da die Programme durch die vielen Anweisungen immer größer werden,finden Sie in Kapitel 13 die in ABAP zur Verfügung stehenden Strukturie-rungselemente, die Ihnen dabei helfen, Ihre Programme in kleinere, von-einander abgetrennte Bereiche zu unterteilen. Insbesondere ist hier derAbschnitt 13.4, »Funktionsbausteine«, von Bedeutung. Lesen Sie sich dazuauch Kapitel 5, »Der Function Builder«, durch, um zu verstehen, wie Sieeigene Funktionsbausteine anlegen und verwenden können. Natürlich kön-nen Sie auch direkt Klassen und Interfaces zur objektorientieren Strukturie-rung Ihrer Programme nutzen, wie in Kapitel 11, »Die ABAP-Objects-Syn-tax«, beschrieben.

Anschließend können Sie dem Leseplan für Einsteiger in ABAP Objects fol-gen. Haben Sie bis hierhin alle Kapitel gemeistert, können Sie sich demUmfeldwissen zu ABAP widmen, hierzu gehören die Kapitel in Teil III, Teil IVund Teil VI. Heben Sie sich Kapitel 23, »Fortgeschrittene Programmiertech-niken«, bis ganz zum Schluss auf.

Leseplan für Einsteiger in ABAP Objects

Dieser Leseplan ist für all jene gedacht, die sich mit dem Sprachkern vonABAP bestens auskennen, aber noch nicht die Chance hatten, sich mit ABAPObjects auseinanderzusetzen, oder bei denen der letzte Einsatz der objekt-orientierten Konzepte schon eine Weile her ist.

4270.book Seite 31 Donnerstag, 8. Dezember 2016 3:31 15

Page 25: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Einleitung

32

Lesen Sie zunächst Kapitel 24, »Grundlagen der Objektorientierung«, sowieKapitel 11, »Die ABAP-Objects-Syntax«. Üben Sie nach der Lektüre dieserbeiden Kapitel erst einmal intensiv die Anwendung von Klassen und Instan-zen am Beispiel des SAP List Viewers (ALV) mithilfe von Kapitel 19. Konzen-trieren Sie sich hier insbesondere auf die neue ALV-Anzeige auf Basis derKlasse CL_SALV_TABLE, die in Abschnitt 19.2 beschrieben ist.

Legen Sie wie in Kapitel 6, »Der Class Builder«, beschrieben, eine eigeneKlasse an, die Sie anschließend in Ihrem Report instanziieren und verwen-den können. Hinweise zur objektorientierten Gestaltung von Reports gibtAbschnitt 27.6, »Objektorientierte Reports«.

Arbeiten Sie nun schrittweise die restlichen Kapitel in Teil V durch. Am Endein der Einleitung zu Teil V finden Sie Verweise auf die konkrete Anwendungbereits in SAP existierender objektorientierter Frameworks.

Leseplan für Kenner von ABAP Objects

Sie kennen bereits ABAP und ABAP Objects und sind vor allem an den Neu-erungen bis Release 7.51 interessiert? Dann ist dieser Leseplan richtig für Sie.

Wenn Sie die ABAP Development Tools (ADT) für Eclipse noch nicht ken-nen, sollten Sie direkt mit Kapitel 2 einsteigen. Anschließend sind für Sie ins-besondere die Übersichten in den folgenden Abschnitten interessant, dieAuskunft über die ABAP-Neuerungen geben und jeweils auf die Abschnitteim Buch verweisen, in denen diese ausführlicher behandelt werden:

� Abschnitt 7.15, »Änderungen und Neuerungen bis ABAP 7.51«

� Abschnitt 8.12, »Änderungen und Neuerungen im Umfeld von internenTabellen bis ABAP 7.51«

� Abschnitt 9.9, »Änderungen und Neuerungen im Umfeld von Open SQLbis ABAP 7.51«

� Abschnitt 10.4, »Änderungen und Neuerungen beim Zugriff auf SAP-HANA-Entwicklungsobjekte bis ABAP 7.51«

� Abschnitt 11.15, »Änderungen und Neuerungen in ABAP Objects bisABAP 7.51«

Insbesondere sollten Sie nach der Lektüre folgende Begriffe verstandenhaben und anwenden können:

� Inline-Deklaration

� Tabellenausdrücke

4270.book Seite 32 Donnerstag, 8. Dezember 2016 3:31 15

Einleitung

33

� Änderungen an Open SQL, z. B. die neuen Open-SQL-Ausdrücke

� Konstruktorausdrücke, insbesondere die Verwendung der Zusätze vonBASE und LET

� den Zusatz GROUP BY der Anweisung LOOP AT

� ABAP Managed Database Procedures (AMDP) zur Programmierung vonStored Procedures in Klassen (für SAP HANA)

� AMDP BAdIs

� ABAP-CDS-Views

� Mesh-Typen

Leseplan für Interessenten an den neuen Technologien

Um einen Überblick über SAP HANA und die neue Web-Frontend-Technolo-gie zu erhalten, ist insbesondere Teil VI mit Kapitel 28, »SAP HANA«, undKapitel 29, »SAPUI5, SAP Fiori und SAP Gateway«, von Bedeutung. In Kapi-tel 29 wird der Fokus auf die Entwicklung von OData-Services mit ABAPgelegt. Kapitel 10, »Zugriff auf SAP-HANA-Entwicklungsobjekte«, fasst dieABAP-Anweisungen zusammen, die Sie für den Zugriff auf die SAP-HANA-Datenbank benötigen. Vor allem aber mit den in Kapitel 2, »Die ABAPDevelopment Tools«, beschriebenen ADT als Nachfolger der ABAP Work-bench sollten Sie sich vertraut machen.

Leseplan für Experten

Sie wissen bereits, welche sprachlichen Neuerungen es bis Release 7.51 gibt,und haben diese Anweisungen auch bereits verinnerlicht? Dann sind Sie hierrichtig!

Informieren Sie sich z. B. über den neuen SAP List Viewer mit integriertemDatenzugriff (ALV with Integrated Data Access, IDA; siehe Abschnitt 19.3).Informationen zur Anwendung von Mesh-Typen finden Sie in Abschnitt8.11, »Meshes«.

Kapitel 23 behandelt Themen der fortgeschrittenen Programmierung, insbe-sondere Parallelisierung, dynamische Programmierung und dynamischesSQL. Außerdem finden Sie hier Informationen zu persistenten Klassen undShared Objects sowie der Arbeit mit XML und JSON. Kapitel 27 zeigt Ihnen,wie Sie Entwurfsmuster auf ABAP Objects anwenden können. Gerade dieImplementierung des Model-View-Controllers und des Observer-Musterswird Sie hier interessieren.

4270.book Seite 33 Donnerstag, 8. Dezember 2016 3:31 15

Page 26: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Einleitung

34

Ihr individueller Leseweg

Abweichend von den hier vorgestellten Leseplänen können Sie sich demBuch natürlich auf vielen unterschiedlichen Wegen nähern. Da das Buch einebreite Zielgruppe ansprechen und gerade für den Alltag nützlich sein soll,habe ich versucht, mehrere Zugänge zum Buch zu ermöglichen. Stöbern Siedoch einfach einmal durch das Inhaltsverzeichnis, oder suchen Sie nach denThemen, die Sie interessieren im Index. Im Anhang finden Sie außerdem einGlossar mit den wichtigsten Fachbegriffen sowie nützliche Übersichten mitABAP-Anweisungen, wichtigen Klassen und Funktionsbausteinen, Transakti-onscodes, technischen Tabellen u. v. m.

Bleibt mir nur noch, Ihnen viel Erfolg und Spaß bei der Arbeit mit dem Buchzu wünschen. Ich hoffe, es hilft Ihnen dabei, die kleinen und großen Heraus-forderungen des Alltags zu meistern. Die Zusammenstellung des Inhaltsbasiert vor allem auf meiner Tätigkeit als ABAP-Entwickler und meinenErfahrungen als Trainer. Mein Dank gilt daher insbesondere denjenigen Teil-nehmern meiner Kurse, die immer eine Frage mehr gestellt und mir aufdiese Weise neue Sichtweisen eröffnet haben. So gesehen ist das vorliegendeBuch ein Gemeinschaftswerk von und für (angehende) ABAPer. Ich freuemich daher auch über jeden Kommentar, der dazu beiträgt, das Buch weiterzu verbessern und abzurunden. Schreiben Sie mir gerne unter der E-Mail-Adresse [email protected].

In diesem Sinne: COMMIT WORK!

Felix Roth

4270.book Seite 34 Donnerstag, 8. Dezember 2016 3:31 15

Page 27: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Auf einen Blick

TEIL I Die Werkzeugkiste des ABAP-Entwicklers

1 Die ABAP Workbench .................................................................. 372 Die ABAP Development Tools ...................................................... 613 Das ABAP Dictionary ................................................................... 894 Transaktionen .............................................................................. 1295 Der Function Builder .................................................................... 1396 Der Class Builder .......................................................................... 147

TEIL II Der Kern der Sprache ABAP

7 Die ABAP-Grundbefehle .............................................................. 1658 Mit internen Tabellen arbeiten ..................................................... 2319 Zugriff auf Datenbanken ............................................................... 285

10 Zugriff auf SAP-HANA-Entwicklungsobjekte ................................. 33911 Die ABAP-Objects-Syntax ............................................................ 35312 Reports und Selektionsbildschirme ............................................... 39313 Strukturierungselemente in ABAP ................................................ 42514 Die Dynpro-Programmierung ....................................................... 447

TEIL III Techniken zur Qualitätssicherung

15 Tests und Qualitätskontrolle ........................................................ 47316 Werkzeuge und Tipps zur Performanceanalyse ............................. 51917 Das Transportwesen ..................................................................... 54718 Die Jobverwaltung ....................................................................... 563

TEIL IV Fortgeschrittene Programmiertechniken

19 Tabellenanzeige mit dem SAP List Viewer (ALV) .......................... 57720 SAP-Schnittstellen ........................................................................ 63321 SAP-Erweiterungen ...................................................................... 68122 SAP-Formularentwicklung ............................................................ 73123 Fortgeschrittene Programmiertechniken ....................................... 763

TEIL V Objektorientierte Programmierung

24 Grundlagen der Objektorientierung ............................................. 80925 Unified Modeling Language (UML) .............................................. 84326 Anwendungsentwicklung – wo fange ich an? ............................... 86127 Entwurfsmuster ............................................................................ 877

TEIL VI Ein Blick über den Tellerrand: Was Sie als ABAP-Entwickler sonst noch kennen sollten

28 SAP HANA ................................................................................... 90729 SAPUI5, SAP Fiori und SAP Gateway ............................................ 92730 Andere SAP-Webtechnologien ..................................................... 963

4270.book Seite 5 Donnerstag, 8. Dezember 2016 3:31 15

Page 28: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

7

Inhalt

Einleitung ................................................................................................ 27

TEIL I Die Werkzeugkiste des ABAP-Entwicklers

1 Die ABAP Workbench ........................................................ 37

1.1 Die Werkzeuge der ABAP Workbench ................................... 381.2 Der Object Navigator ............................................................ 391.3 Der Repository Browser ......................................................... 42

1.3.1 Übergeordnete Objektliste ....................................... 431.3.2 Favoriten anlegen .................................................... 44

1.4 Der ABAP Editor .................................................................... 441.4.1 Den neuen ABAP Editor aktivieren ........................... 451.4.2 Einen Report anlegen ............................................... 461.4.3 Die Funktionsleiste .................................................. 491.4.4 Die (Auto-)Vervollständigung ................................... 511.4.5 Der Pretty Printer ..................................................... 541.4.6 Die Musterfunktion .................................................. 541.4.7 Der Package Builder ................................................. 571.4.8 ABAP-Beispiele ........................................................ 59

2 Die ABAP Development Tools ............................................ 61

2.1 SAPs Eclipse-Strategie ........................................................... 612.2 Installation und Konfiguration ............................................... 64

2.2.1 Installation von Eclipse ............................................ 642.2.2 Konfiguration des Backend-Systems ......................... 66

2.3 Ein System anbinden ............................................................. 672.4 Einen Report anlegen ............................................................ 682.5 Die Menüleiste und wichtige Tastaturkürzel .......................... 702.6 Der Pretty Printer und weitere Quellcodefunktionen ............. 732.7 Die Musterfunktion ............................................................... 74

2.7.1 Muster für Funktionsbausteine ................................. 742.7.2 Muster für den Aufruf von Methoden ...................... 74

2.8 Der Debugger ........................................................................ 752.8.1 Die Menüleiste des Debuggers ................................. 772.8.2 Die Variablen- und Outline-Anzeige ........................ 782.8.3 Breakpoints .............................................................. 78

4270.book Seite 7 Donnerstag, 8. Dezember 2016 3:31 15

Page 29: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Inhalt

8

2.8.4 Watchpoints ............................................................ 792.8.5 Interne Tabellen ....................................................... 80

2.9 Dokumentation mit ABAP Doc .............................................. 822.9.1 Quick Fix ................................................................. 842.9.2 Dokumentation exportieren ..................................... 842.9.3 Verlinkung zu Kurztexten des SAP GUI ..................... 85

2.10 Refactoring-Funktionen ......................................................... 852.10.1 Umbenennung ......................................................... 862.10.2 Eine Methode extrahieren ........................................ 862.10.3 Quick Fix ................................................................. 87

3 Das ABAP Dictionary .......................................................... 89

3.1 Domänen .............................................................................. 913.1.1 Das zweistufige Domänenprinzip ............................. 913.1.2 Domänen anlegen .................................................... 923.1.3 Konvertierungsroutinen ........................................... 933.1.4 Wertebereich einer Domäne .................................... 95

3.2 Datenelemente ...................................................................... 963.2.1 Feldbezeichner ......................................................... 973.2.2 Übersetzung ............................................................. 983.2.3 Zusatzeigenschaften ................................................. 99

3.3 Strukturen ............................................................................. 1003.3.1 Erweiterungskategorie ............................................. 1003.3.2 Referenztabellen und das Referenzfeld ..................... 101

3.4 Tabellentypen ........................................................................ 1023.5 Datenbanktabellen ................................................................ 104

3.5.1 Datenbanktabellen anzeigen .................................... 1043.5.2 Datenbanktabellen anlegen ...................................... 1053.5.3 Auslieferungsklasse .................................................. 1063.5.4 Tabellensicht-Pflege ................................................. 1063.5.5 Datenart .................................................................. 1073.5.6 Größenkategorie ...................................................... 1083.5.7 Pufferung ................................................................. 1083.5.8 Felder ausprägen ...................................................... 1093.5.9 Speicherart von Datenbanken mit SAP HANA .......... 110

3.6 Indizes ................................................................................... 1103.7 Typgruppen ........................................................................... 112

4270.book Seite 8 Donnerstag, 8. Dezember 2016 3:31 15

Inhalt

9

3.8 Views .................................................................................... 1133.8.1 Datenbank-View ...................................................... 1133.8.2 Projektions-View ..................................................... 1153.8.3 Pflege-View ............................................................. 1163.8.4 Help-View ............................................................... 117

3.9 Pflegedialoge ......................................................................... 1173.9.1 Pflegedialog anlegen ................................................ 1183.9.2 Pflegedialog verbreitern ........................................... 119

3.10 Suchhilfen ............................................................................. 1213.10.1 Elementare Suchhilfe ............................................... 1223.10.2 Sammelsuchhilfe ...................................................... 123

3.11 Datenbank-Utility-Tool .......................................................... 1243.12 Das Sperrkonzept .................................................................. 125

4 Transaktionen ..................................................................... 129

4.1 Transaktionen anlegen ........................................................... 1304.1.1 Dialogtransaktion ..................................................... 1314.1.2 Reporttransaktion .................................................... 1314.1.3 ABAP-Objects-Transaktion ....................................... 1324.1.4 Variantentransaktion ................................................ 1334.1.5 Parametertransaktion ............................................... 133

4.2 Transaktionsvarianten ............................................................ 1344.2.1 Eine Screenvariante anlegen ..................................... 1354.2.2 Eine Transaktionsvariante anlegen ............................ 136

4.3 Transaktionen mit ABAP aufrufen .......................................... 137

5 Der Function Builder .......................................................... 139

5.1 Der Aufbau eines Funktionsbausteins .................................... 1395.1.1 Eigenschaften ........................................................... 1405.1.2 Die Schnittstelle ....................................................... 1405.1.3 Ausnahmen .............................................................. 1425.1.4 Der Quellcode ......................................................... 142

5.2 Einen Funktionsbaustein anlegen ........................................... 1425.3 Funktionsbausteine testen ..................................................... 1435.4 Funktionsgruppen ................................................................. 144

5.4.1 Funktionsgruppe anlegen ......................................... 1445.4.2 Aufbau einer Funktionsgruppe ................................. 1455.4.3 Lebensdauer einer Funktionsgruppe ......................... 146

4270.book Seite 9 Donnerstag, 8. Dezember 2016 3:31 15

Page 30: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Inhalt

10

6 Der Class Builder ................................................................ 147

6.1 Klassen anlegen ..................................................................... 1476.1.1 Vererbung ................................................................ 1496.1.2 Interfaces ................................................................. 1506.1.3 Freunde ................................................................... 1516.1.4 Attribute .................................................................. 1516.1.5 Methoden ................................................................ 1526.1.6 Ereignisse ................................................................. 1566.1.7 Typen ...................................................................... 1566.1.8 Aliases ..................................................................... 1576.1.9 Konstruktoren anlegen ............................................. 1576.1.10 Eine Klasse testen .................................................... 1586.1.11 Klassen direkt bearbeiten ......................................... 159

6.2 Ausnahmeklassen anlegen ..................................................... 1606.3 Interfaces anlegen ................................................................. 161

TEIL II Der Kern der Sprache ABAP

7 Die ABAP-Grundbefehle ..................................................... 165

7.1 Syntaxregeln .......................................................................... 1667.2 Kommentare ......................................................................... 1677.3 Die SAP-Hilfe ........................................................................ 1687.4 Datendeklaration ................................................................... 169

7.4.1 Felder ...................................................................... 1707.4.2 Konstanten .............................................................. 1737.4.3 Strukturen ................................................................ 1747.4.4 Aufzählungstypen .................................................... 1767.4.5 Feldsymbole ............................................................ 1797.4.6 Unterschied zwischen TYPE und LIKE ....................... 181

7.5 Inline-Deklarationen .............................................................. 1827.6 Typdefinitionen ..................................................................... 183

7.6.1 Felder ...................................................................... 1847.6.2 Strukturen ................................................................ 185

7.7 Initialisierung ......................................................................... 1867.7.1 Felder initialisieren ................................................... 1877.7.2 Speicherbereich freigeben ........................................ 187

7.8 Steueranweisungen ............................................................... 1877.8.1 Die IF-Abfrage ......................................................... 1887.8.2 Logische Ausdrücke ................................................. 1897.8.3 Die CASE-Anweisung ............................................... 190

4270.book Seite 10 Donnerstag, 8. Dezember 2016 3:31 15

Inhalt

11

7.8.4 Die Anweisung CASE TYPE OF ................................. 1917.8.5 Die DO-Schleife ....................................................... 1927.8.6 Die WHILE-Schleife ................................................. 1937.8.7 Die CHECK-Anweisung ............................................ 1937.8.8 Die EXIT-Anweisung ................................................ 1947.8.9 Die CONTINUE-Anweisung ...................................... 194

7.9 Rechenoperationen ............................................................... 1957.10 Ausgabeanweisungen ............................................................ 197

7.10.1 Die Anweisung WRITE ............................................. 1987.10.2 Das Muster für die Listenausgabe ............................. 199

7.11 Meldungen ............................................................................ 1997.12 Mit Zeichenketten arbeiten ................................................... 201

7.12.1 Vergleich von Zeichenketten .................................... 2017.12.2 Verkettungsoperatoren ............................................ 2037.12.3 Teilfeldzugriff ........................................................... 2047.12.4 Teilzeichenketten finden .......................................... 2067.12.5 Teilzeichenketten ersetzen ....................................... 2077.12.6 Eingebaute Funktionen für Zeichenketten ................ 2097.12.7 Zeichenketten-Templates ......................................... 211

7.13 Konstruktorausdrücke ............................................................ 2147.13.1 VALUE: Erzeugung von Werten ................................ 2167.13.2 REF: Referenzen besorgen ........................................ 2187.13.3 EXACT: Verlustfreie Zuweisung/Berechnung ............. 2187.13.4 CONV: Konvertierung von Werten ........................... 2197.13.5 COND: Bedingte Ausdrücke ..................................... 2207.13.6 SWITCH: Bedingte Ausdrücke .................................. 2217.13.7 NEW: Instanziierung ................................................ 2227.13.8 CORRESPONDING: Mapping von Strukturen

und internen Tabellen .............................................. 2237.13.9 Der Zusatz LET ......................................................... 2267.13.10 Der Zusatz BASE ...................................................... 226

7.14 Operandenpositionen ............................................................ 2267.14.1 Funktionen und Ausdrücke für Lesepositionen ......... 2277.14.2 Ausdrücke für Schreibpositionen .............................. 228

7.15 Änderungen und Neuerungen bis ABAP 7.51 ........................ 228

8 Mit internen Tabellen arbeiten .......................................... 231

8.1 Tabellenarten ........................................................................ 2338.1.1 Standardtabellen ...................................................... 2338.1.2 Sortierte Tabellen ..................................................... 2348.1.3 Hash-Tabellen .......................................................... 234

4270.book Seite 11 Donnerstag, 8. Dezember 2016 3:31 15

Page 31: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Inhalt

12

8.2 Interne Tabellen definieren .................................................... 2348.2.1 Schlüssel definieren .................................................. 2358.2.2 Obsolet: Deklaration einer internen Tabelle

mit Kopfzeile ........................................................... 2368.2.3 Ranges-Tabellen definieren ...................................... 237

8.3 Interne Tabellen initialisieren ................................................. 2398.4 Zeilen hinzufügen .................................................................. 239

8.4.1 Daten mit SELECT hinzufügen .................................. 2408.4.2 Zeilen mit APPEND anhängen .................................. 2408.4.3 Zeilen mit INSERT hinzufügen .................................. 2418.4.4 Werte mit VALUE hinzufügen .................................. 2428.4.5 Der Zusatz FOR ........................................................ 2448.4.6 Gruppierungen mit FOR ........................................... 2468.4.7 Der Zusatz LINES OF ................................................ 2508.4.8 Hinzufügen mit NEW ............................................... 251

8.5 Inhalt auslesen ...................................................................... 2518.5.1 Tabellen mit READ TABLE auslesen .......................... 2518.5.2 Tabellenausdrücke ................................................... 2538.5.3 Tabellen mit LOOP AT auslesen ............................... 2578.5.4 Gruppieren mit dem Zusatz GROUP BY .................... 259

8.6 Einträge löschen .................................................................... 2648.7 Inhalt ändern ......................................................................... 265

8.7.1 Tabelle mit READ TABLE ändern .............................. 2668.7.2 Tabelle mit Tabellenausdrücken ändern ................... 2668.7.3 Tabelle mit MODIFY ändern .................................... 2678.7.4 Tabelle mit CORRESPONDING anreichern ............... 268

8.8 Interne Tabellen kopieren ...................................................... 2718.8.1 Strukturgleiche interne Tabellen kopieren ................ 2718.8.2 Strukturfremde interne Tabellen kopieren ................ 272

8.9 Interne Tabellen aufbereiten .................................................. 2738.9.1 Sortieren mit SORT .................................................. 2738.9.2 Zusammenfassung mit COLLECT .............................. 2748.9.3 Reduzierungen mit REDUCE ..................................... 2748.9.4 Filterungen mit FILTER ............................................. 276

8.10 Eingebaute Funktionen für interne Tabellen ........................... 2778.11 Meshes .................................................................................. 2798.12 Änderungen und Neuerungen im Umfeld von internen

Tabellen bis ABAP 7.51 ......................................................... 283

4270.book Seite 12 Donnerstag, 8. Dezember 2016 3:31 15

Inhalt

13

9 Zugriff auf Datenbanken .................................................... 285

9.1 Die fünf goldenen Regeln ...................................................... 2869.2 Die Open-SQL-Anweisung SELECT ........................................ 288

9.2.1 Einträge lesen .......................................................... 2889.2.2 Gelesene Spalten einschränken ................................ 2919.2.3 Die WHERE-Klausel ................................................. 2939.2.4 Ranges-Tabellen und Selektionsoptionen ................. 2959.2.5 FOR ALL ENTRIES IN: Einschränkung

durch interne Tabellen ............................................. 2969.2.6 Gruppierung und Sortierung der Ergebnisse ............. 2979.2.7 Syntax ...................................................................... 2979.2.8 Die FIELDS-Klausel .................................................. 2999.2.9 Host-Variablen und -ausdrücke ................................ 3009.2.10 Inline-Deklaration .................................................... 3029.2.11 Begrenzung der Ergebnismenge mit OFFSET ............ 3039.2.12 Syntax ...................................................................... 3049.2.13 JOIN: Verknüpfung .................................................. 3049.2.14 WITH: Allgemeine Tabellenausdrücke ...................... 3099.2.15 UNION: Vereinigung ................................................ 310

9.3 Open-SQL-Ausdrücke ............................................................ 3119.3.1 CASE-Anweisungen .................................................. 3119.3.2 Verknüpfungen von Zeichenketten mit && ............... 3129.3.3 Arithmetische Ausdrücke ......................................... 3139.3.4 Typumwandlungen mit CAST ................................... 3149.3.5 Elementare Werte .................................................... 315

9.4 Open-SQL-Funktionen .......................................................... 3159.4.1 Aggregatfunktionen ................................................. 3169.4.2 Zeichenkettenfunktionen ......................................... 3179.4.3 Numerische Funktionen ........................................... 3199.4.4 Datumsfunktionen ................................................... 3209.4.5 Coalesce-Funktion: Nullwerte ersetzen .................... 320

9.5 Ändernde Open-SQL-Anweisungen ....................................... 3219.5.1 DELETE: Löschen von Einträgen ............................... 3229.5.2 INSERT: Einträge einfügen ....................................... 3249.5.3 UPDATE: Einträge ändern ........................................ 3269.5.4 MODIFY: Einfügen oder Ändern .............................. 328

9.6 Sekundäre Datenbankverbindungen ...................................... 3309.7 Natives SQL ........................................................................... 330

9.7.1 EXEC-SQL ................................................................ 3319.7.2 ABAP Database Connectivity .................................... 332

4270.book Seite 13 Donnerstag, 8. Dezember 2016 3:31 15

Page 32: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Inhalt

14

9.8 ABAP Core Data Services (CDS) ............................................. 3339.9 Änderungen und Neuerungen im Umfeld von Open SQL

bis ABAP 7.51 ....................................................................... 336

10 Zugriff auf SAP-HANA-Entwicklungsobjekte .................... 339

10.1 Aufruf von SAP-HANA-Views ................................................ 33910.1.1 Aufruf mit nativem SQL ........................................... 34010.1.2 Aufruf über externe Views ........................................ 34010.1.3 Externe Views anlegen ............................................. 341

10.2 Aufruf von Datenbankprozeduren .......................................... 34210.2.1 Aufruf mit nativem SQL ........................................... 34210.2.2 Aufruf mit einem Datenbankprozedur-Proxy ............ 34410.2.3 Datenbankprozedur-Proxy anlegen .......................... 345

10.3 ABAP Managed Database Procedures (AMDP) ...................... 34610.3.1 ABAP Managed Database Procedures anlegen ......... 34710.3.2 Datenbankfunktionen anlegen ................................. 34910.3.3 BAdIs für ABAP Managed Database Procedures ....... 350

10.4 Änderungen und Neuerungen beim Zugriff auf SAP-HANA-Entwicklungsobjekte bis ABAP 7.51 ....................................... 351

11 Die ABAP-Objects-Syntax .................................................. 353

11.1 Grundaufbau einer Klasse ...................................................... 35411.2 Sichtbarkeiten ....................................................................... 35711.3 Datentypen und Attribute ..................................................... 35811.4 Methoden ............................................................................. 360

11.4.1 Methoden implementieren ...................................... 36211.4.2 Methoden aufrufen .................................................. 363

11.5 Konstruktoren ....................................................................... 36611.5.1 Instanzkonstruktor ................................................... 36711.5.2 Statischer Konstruktor .............................................. 368

11.6 Ereignisse .............................................................................. 36911.6.1 Definition von Ereignissen ........................................ 36911.6.2 Ereignisse auslösen .................................................. 37011.6.3 Definition eines Ereignisbehandlers .......................... 37011.6.4 Ereignisbehandler registrieren .................................. 37011.6.5 Beispiel für die Definition, das Auslösen

und die Behandlung eines Ereignisses ...................... 37111.7 Vererbung ............................................................................. 37311.8 Klassenarten .......................................................................... 375

11.8.1 Abstrakte und finale Klassen .................................... 375

4270.book Seite 14 Donnerstag, 8. Dezember 2016 3:31 15

Inhalt

15

11.8.2 Statische Klassen ...................................................... 37511.8.3 Ausnahmeklassen ..................................................... 376

11.9 Ausnahmen für Methoden ..................................................... 37711.9.1 Klassenbasierte Ausnahmen ..................................... 37811.9.2 Lokale Ausnahmen ................................................... 381

11.10 Freunde ................................................................................. 38311.11 Interfaces .............................................................................. 383

11.11.1 Implementierung eines Interface .............................. 38411.11.2 Verwendung von Interfaces ...................................... 386

11.12 Das ABAP-Objects-Muster .................................................... 38711.13 Casting .................................................................................. 388

11.13.1 Casting mit dem Zuweisungsoperator ....................... 38811.13.2 Casting mit dem Casting-Operator ........................... 38811.13.3 Casting mit der Anweisung CAST ............................. 389

11.14 Objekttyp überprüfen ............................................................ 38911.14.1 Die Anweisung IS INSTANCE OF .............................. 38911.14.2 Die Anweisung CASE TYPE OF ................................. 390

11.15 Änderungen und Neuerungen in ABAP Objects bis ABAP 7.51 ............................................................................. 391

12 Reports und Selektionsbildschirme ................................... 393

12.1 Ereignisse eines Reports ........................................................ 39412.2 Eingabeelemente ................................................................... 395

12.2.1 Parameter ................................................................ 39612.2.2 Checkboxen ............................................................. 39712.2.3 Radiobuttons ........................................................... 39812.2.4 Dropdown-Liste ....................................................... 39812.2.5 Selektionsoptionen .................................................. 40012.2.6 Buttons .................................................................... 40112.2.7 Buttons auf der Funktionsleiste ................................ 40312.2.8 Der Zusatz USER-COMMAND .................................. 404

12.3 Strukturierungselemente für den Selektionsbildschirm ........... 40512.3.1 Blöcke ...................................................................... 40512.3.2 Leerzeilen ................................................................ 40612.3.3 Horizontale Linien .................................................... 40612.3.4 Textausgaben ........................................................... 40712.3.5 Tabstrips .................................................................. 40712.3.6 Modifikationsgruppen .............................................. 408

12.4 Ereignisse eines Selektionsbildschirms ................................... 410

4270.book Seite 15 Donnerstag, 8. Dezember 2016 3:31 15

Page 33: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Inhalt

16

12.5 Textelemente ......................................................................... 41312.5.1 Zugriff auf Textelemente .......................................... 41412.5.2 Textsymbole ............................................................ 41412.5.3 Selektionstexte ........................................................ 41612.5.4 Listenüberschriften .................................................. 417

12.6 Nachrichtenklassen ................................................................ 41712.6.1 Nachrichtenklasse anlegen ....................................... 41812.6.2 Nachricht aufrufen ................................................... 41912.6.3 Parametrisierte Nachrichten ..................................... 419

12.7 Einen Report mit ABAP aufrufen ............................................ 42012.8 SPA-/GPA-Parameter ............................................................. 422

12.8.1 SPA-/GPA-Parameter anlegen und setzen ................ 42312.8.2 SPA-/GPA-Parameter auslesen ................................. 424

13 Strukturierungselemente in ABAP ..................................... 425

13.1 Unterprogramme ................................................................... 42613.1.1 Unterprogramm definieren ....................................... 42713.1.2 Sichtbarkeitsbereiche von Datendeklarationen ......... 42713.1.3 Aufruf eines Unterprogramms .................................. 42813.1.4 Parameterübergabe .................................................. 430

13.2 Makros .................................................................................. 43313.2.1 Makros definieren .................................................... 43313.2.2 Makros aufrufen ....................................................... 434

13.3 Includes ................................................................................. 43413.3.1 Include einbinden .................................................... 43513.3.2 Top-Include anlegen ................................................ 43513.3.3 Include anlegen ....................................................... 436

13.4 Funktionsbausteine ................................................................ 43713.4.1 Arten von Funktionsbausteinen ................................ 43813.4.2 Aufruf von Funktionsbausteinen ............................... 43913.4.3 Funktionsbausteine finden ....................................... 442

13.5 Datenkonsistenz .................................................................... 443

14 Die Dynpro-Programmierung ............................................. 447

14.1 Dynpros anlegen ................................................................... 44814.1.1 Dynpro gestalten ..................................................... 44914.1.2 Dynpro aufrufen ....................................................... 45114.1.3 Zugriff auf Dynpro-Elemente .................................... 452

14.2 Ablauflogik eines Dynpros ..................................................... 45214.2.1 Process Before Output (PBO) ................................... 453

4270.book Seite 16 Donnerstag, 8. Dezember 2016 3:31 15

Inhalt

17

14.2.2 PBO-/PAI-Module anlegen ...................................... 45414.2.3 GUI-Status ............................................................... 45614.2.4 GUI-Titel .................................................................. 45814.2.5 Process After Input (PAI) .......................................... 460

14.3 SAP Control Framework ........................................................ 46114.4 Pop-up-Fenster ..................................................................... 464

14.4.1 Entscheidungen ....................................................... 46514.4.2 Textanzeige .............................................................. 46614.4.3 Werteabfrage ........................................................... 467

TEIL III Techniken zur Qualitätssicherung

15 Tests und Qualitätskontrolle ............................................. 473

15.1 Der ABAP Debugger .............................................................. 47315.1.1 Den neuen ABAP Debugger aktivieren ..................... 47415.1.2 Den Debugger starten und beenden ........................ 47415.1.3 Die Oberfläche ......................................................... 47715.1.4 Die Werkzeuge ........................................................ 47815.1.5 Steuerung des Debuggers ........................................ 48015.1.6 Schnellanzeige der Variablen .................................... 48115.1.7 Vergleichstool .......................................................... 48315.1.8 Aufrufstack .............................................................. 48415.1.9 Pop-up-Fenster debuggen ........................................ 48515.1.10 Interne Tabellen ....................................................... 48615.1.11 Debugger-Breakpoints ............................................. 48715.1.12 Watchpoints ............................................................ 49115.1.13 Speicherverwaltung .................................................. 49215.1.14 Ausnahmen .............................................................. 494

15.2 Das Debugging-Skript ............................................................ 49415.2.1 Einen Trigger für das Skript definieren ...................... 49615.2.2 Ein Skript schreiben ................................................. 49715.2.3 Das Skript starten und beenden ............................... 499

15.3 Der Code Inspector ............................................................... 50115.3.1 Ad-hoc-Prüfung über Transaktion SE80 .................... 50215.3.2 Prüfvariante ............................................................. 50215.3.3 Objektmenge ........................................................... 50415.3.4 Inspektion ................................................................ 50415.3.5 Ergebnisliste ............................................................ 505

15.4 ABAP Unit ............................................................................. 50615.4.1 Grundsätzlicher Aufbau einer Testklasse ................... 506

4270.book Seite 17 Donnerstag, 8. Dezember 2016 3:31 15

Page 34: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Inhalt

18

15.4.2 Systemeinstellungen ................................................ 50915.4.3 Assertions ................................................................ 51015.4.4 Assistent für die Testklassengenerierung .................. 51115.4.5 Ausführen eines ABAP-Unit-Tests ............................ 51315.4.6 Die Ergebnisanzeige ................................................. 51315.4.7 Der ABAP Unit Browser ........................................... 514

15.5 Das ABAP Test Cockpit .......................................................... 51515.5.1 Ausführung eines ATC-Tests ..................................... 51515.5.2 Die Transaktion ATC ................................................ 51615.5.3 Der ATC-Ergebnis-Browser ....................................... 517

16 Werkzeuge und Tipps zur Performanceanalyse ................. 519

16.1 Richtlinien für die ABAP-Entwicklung .................................... 52016.2 Transaktion SAT: Laufzeitanalyse ........................................... 523

16.2.1 Laufzeitmessung durchführen ................................... 52416.2.2 Laufzeitmessung auswerten ...................................... 52516.2.3 Anzeige der Messungen ........................................... 525

16.3 Transaktion SE30: Die alte Laufzeitanalyse ............................. 52716.4 SQL-Monitor ......................................................................... 529

16.4.1 Transaktion SQLM: Den SQL-Monitor administrieren .......................................................... 530

16.4.2 Transaktion SQLMD: Analyse der Daten ................... 53216.5 SQL Performance Tuning Worklist ......................................... 53316.6 Transaktion ST05 ................................................................... 535

16.6.1 SQL-Trace ................................................................ 53616.6.2 Analyse einer SQL-Anweisung .................................. 538

16.7 Laufzeitanalyse mithilfe der ABAP-Programmierung ............... 53816.7.1 Zeitmessung ............................................................. 53916.7.2 Fortschrittsanzeige implementieren .......................... 539

16.8 Application Log ..................................................................... 54116.8.1 Transaktion SLG0: Ein Application Log anlegen ........ 54216.8.2 Log mit Nachrichten befüllen ................................... 54216.8.3 Log als Pop-up-Fenster darstellen ............................ 544

17 Das Transportwesen ........................................................... 547

17.1 Die SAP-Systemlandschaft ..................................................... 54817.2 Transportaufträge .................................................................. 551

17.2.1 Transportauftrag anlegen ......................................... 55217.2.2 Transportauftrag freigeben und importieren ............. 55317.2.3 Aufgabe anlegen ...................................................... 557

4270.book Seite 18 Donnerstag, 8. Dezember 2016 3:31 15

Inhalt

19

17.2.4 Zuordnung des Transportauftrags ändern ................. 55717.2.5 Transportaufträge und Aufgaben löschen ................. 55917.2.6 Objekte in einen Transportauftrag aufnehmen ......... 55917.2.7 Transportaufträge verschmelzen ............................... 56017.2.8 Transportauftrag oder Aufgabe finden ...................... 56117.2.9 Freigabe eines Transportauftrags zurücknehmen ...... 561

18 Die Jobverwaltung .............................................................. 563

18.1 Transaktion SM36: Jobs definieren ........................................ 56318.1.1 Allgemeine Angaben ................................................ 56418.1.2 Startbedingung ........................................................ 56518.1.3 Schritt (Step) definieren ........................................... 569

18.2 Transaktion SM37: Jobs überwachen und freigeben ............... 57018.3 Ereignisse für Jobs ................................................................. 572

18.3.1 Ereignis definieren ................................................... 57218.3.2 Ereignis auslösen ...................................................... 572

18.4 Jobs mit ABAP definieren ...................................................... 573

TEIL IV Fortgeschrittene Programmiertechniken

19 Tabellenanzeige mit dem SAP List Viewer (ALV) ............... 577

19.1 Die alte ALV-Anzeige ............................................................ 57919.1.1 Aufbau des Grundgerüsts ......................................... 58019.1.2 Eingabefähigkeit ...................................................... 58219.1.3 Funktionen .............................................................. 58619.1.4 Ereignisse ................................................................. 58719.1.5 Spalten bearbeiten ................................................... 58819.1.6 Zellentypen .............................................................. 59119.1.7 Farbige Hervorhebung ............................................. 59319.1.8 Icons ........................................................................ 59519.1.9 ALV-Tabellen sortieren und gruppieren .................... 59619.1.10 Aggregation ............................................................. 59719.1.11 Layout speichern ...................................................... 598

19.2 Die neue ALV-Anzeige .......................................................... 59919.2.1 Aufbau des Grundgerüsts ......................................... 59919.2.2 Funktionen .............................................................. 60019.2.3 Ereignisse ................................................................. 60219.2.4 Spalten bearbeiten ................................................... 60319.2.5 Zellentypen .............................................................. 60719.2.6 Farbige Hervorhebung ............................................. 608

4270.book Seite 19 Donnerstag, 8. Dezember 2016 3:31 15

Page 35: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Inhalt

20

19.2.7 Icons ........................................................................ 60919.2.8 ALV-Tabellen sortieren und gruppieren .................... 61019.2.9 Aggregration ............................................................ 61119.2.10 Layout speichern ...................................................... 61219.2.11 Filter ........................................................................ 612

19.3 SAP List Viewer mit integriertem Datenzugriff (IDA) .............. 61319.3.1 Aufbau des Grundgerüsts ......................................... 61419.3.2 Funktionen .............................................................. 61519.3.3 Ereignisse ................................................................. 61619.3.4 Spalten bearbeiten ................................................... 61719.3.5 Zellentypen .............................................................. 62219.3.6 Icons ........................................................................ 62319.3.7 ALV-Tabelle sortieren und gruppieren ...................... 62319.3.8 Aggregation ............................................................. 62319.3.9 Layout ..................................................................... 62419.3.10 Filter ........................................................................ 62519.3.11 Textsuche ................................................................ 627

19.4 Anzeigemodi ......................................................................... 62819.4.1 Ausgabe auf Selektionsbildschirm ............................ 62819.4.2 Mehrere ALV-Tabellen in einem Split-Container

ausgeben ................................................................. 630

20 SAP-Schnittstellen ............................................................. 633

20.1 RFC-Funktionsbausteine ........................................................ 63420.2 Business-Objekte und BAPIs .................................................. 635

20.2.1 Business Object Repository und BAPI Explorer ......... 63920.2.2 BAPIs ....................................................................... 640

20.3 Flat Files ................................................................................ 64620.3.1 Dateien schreiben .................................................... 64720.3.2 Dateien einlesen ...................................................... 64920.3.3 Weitere nützliche Funktionen .................................. 65120.3.4 Beispiel .................................................................... 652

20.4 Webservices (SOAP) .............................................................. 65420.4.1 WSDL-Dokument .................................................... 65620.4.2 Webservices anlegen und finden .............................. 65720.4.3 Webservice konsumieren ......................................... 664

20.5 Batch Input ........................................................................... 67020.5.1 Aufzeichnung der Transaktion .................................. 67120.5.2 Direkte Ausführung .................................................. 67420.5.3 Mappe erstellen ....................................................... 677

4270.book Seite 20 Donnerstag, 8. Dezember 2016 3:31 15

Inhalt

21

20.6 Einführung in die Legacy System Migration Workbench (LSMW) ................................................................................. 678

21 SAP-Erweiterungen ............................................................ 681

21.1 User-Exits .............................................................................. 68121.2 Customer-Exits ...................................................................... 68421.3 Klassische Business Add-ins (BAdIs) ....................................... 68821.4 Enhancement Framework ...................................................... 692

21.4.1 Architektur .............................................................. 69421.4.2 Explizite Erweiterungspunkte ................................... 69721.4.3 Implizite Erweiterungspunkte ................................... 69921.4.4 Klassen-Erweiterungen ............................................. 70121.4.5 Funktionsbaustein-Erweiterungen ............................ 70321.4.6 Erweiterungssektionen ............................................. 70421.4.7 Struktur-Erweiterungen ............................................ 70621.4.8 Suchhilfen-Erweiterungen ........................................ 70821.4.9 Index-Erweiterungen ............................................... 70821.4.10 Einzelwert-Erweiterungen ........................................ 70921.4.11 Debugging von Erweiterungen ................................. 71021.4.12 Transaktion SPAU_ENH: Abgleich von

Erweiterungen im Rahmen von Updates .................. 71221.5 Neue Business Add-ins (BAdIs) .............................................. 714

21.5.1 Aufruf ...................................................................... 71521.5.2 Definition aufrufen ................................................... 71521.5.3 Implementierung anlegen ........................................ 71621.5.4 Filterwerte ............................................................... 71621.5.5 Menü-Exit ................................................................ 71721.5.6 Dynpro-Exit ............................................................. 718

21.6 Switch Framework ................................................................. 72721.6.1 Architektur .............................................................. 72821.6.2 Schaltbare Objekte .................................................. 729

21.7 Suche nach Erweiterungen ..................................................... 730

22 SAP-Formularentwicklung ................................................. 731

22.1 Der Druckdialog .................................................................... 73322.2 SAPscript ............................................................................... 735

22.2.1 Formular erstellen .................................................... 73722.2.2 Druckprogramm erstellen ......................................... 742

22.3 SAP Smart Forms ................................................................... 74322.3.1 Formular erstellen .................................................... 745

4270.book Seite 21 Donnerstag, 8. Dezember 2016 3:31 15

Page 36: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Inhalt

22

22.3.2 Druckprogramm erstellen ......................................... 75122.4 SAP Interactive Forms by Adobe ............................................ 753

22.4.1 Formular erstellen .................................................... 75422.4.2 Druckprogramm erstellen ......................................... 757

22.5 Generierung von PDFs ........................................................... 75922.5.1 Generierung der internen Tabelle in SAPscript ......... 75922.5.2 Generierung der internen Tabelle SAP Smart

Forms ...................................................................... 76022.5.3 Generierung der internen Tabelle in SAP Interactive

Forms by Adobe ...................................................... 76122.5.4 OTF in PDF konvertieren .......................................... 762

23 Fortgeschrittene Programmiertechniken ........................... 763

23.1 Object Services ...................................................................... 76423.1.1 Persistente Klasse anlegen ....................................... 76423.1.2 Datenbanktabelle lesen ............................................ 76823.1.3 Datenbanktabelle aktualisieren ................................ 76923.1.4 Query anlegen ......................................................... 77023.1.5 Neuen Eintrag in der Datenbanktabelle anlegen ....... 77123.1.6 Löschen eines neuen Eintrags ................................... 772

23.2 Mit XML und JSON arbeiten .................................................. 77223.2.1 Exkurs: XML und JSON ............................................ 77323.2.2 Konvertierung von ABAP in JSON/XML .................... 77423.2.3 Konvertierung von JSON/XML in ABAP .................... 77523.2.4 Erzeugung eines XML-Dokuments ............................ 77523.2.5 Objekte serialisieren ................................................ 776

23.3 Daten im Memory ablegen .................................................... 77723.3.1 Die Anweisungen EXPORT und IMPORT .................. 77823.3.2 Shared Objects ......................................................... 780

23.4 Parallelisierung ...................................................................... 78523.5 Dynamische Erzeugung von Datenobjekten ........................... 786

23.5.1 Anonymes Datenobjekt mit CREATE DATA erzeugen .................................................................. 786

23.5.2 Anonymes Datenobjekt mit NEW erzeugen .............. 78823.5.3 Beispiel: Dynamische ALV-Tabelle erzeugen ............. 789

23.6 Runtime Type Services (RTTS) ................................................ 79223.6.1 Strukturen: Klasse CL_ABAP_STRUCTDESCR ............ 79523.6.2 Interne Tabellen: Klasse CL_ABAP_TABLEDESCR ...... 79523.6.3 Referenzdatentypen: Klasse CL_ABAP_REFDESCR .... 79723.6.4 Klassen: Klasse CL_ABAP_CLASSDESCR ................... 79723.6.5 Interfaces: Klasse CL_ABAP_INTFDESCR .................. 798

4270.book Seite 22 Donnerstag, 8. Dezember 2016 3:31 15

Inhalt

23

23.6.6 Elementare Datentypen: Klasse CL_ABAP_ELEMDESCR .................................. 799

23.6.7 Beispiel: Eine interne Tabelle nach Microsoft Excelexportieren .............................................................. 799

23.7 Dynamisches SQL .................................................................. 80223.7.1 Dynamische Selektionsliste ...................................... 80323.7.2 Dynamische FROM-Klausel ...................................... 80323.7.3 Dynamische WHERE-Klausel .................................... 805

TEIL V Objektorientierte Programmierung

24 Grundlagen der Objektorientierung ................................... 809

24.1 Einführung für ABAP-Entwickler ............................................ 81024.2 Klassen und Objekte .............................................................. 81624.3 Instanziierung ........................................................................ 82024.4 Datenkapselung ..................................................................... 82224.5 Ereignisse .............................................................................. 82524.6 Vererbung ............................................................................. 828

24.6.1 Redefinition ............................................................. 83024.6.2 Klassenhierarchien ................................................... 831

24.7 Klassenarten .......................................................................... 83324.7.1 Abstrakte Klassen ..................................................... 83424.7.2 Finale Klassen .......................................................... 834

24.8 Interfaces .............................................................................. 83424.9 Polymorphie .......................................................................... 83924.10 Zusammenfassung ................................................................. 840

25 Unified Modeling Language (UML) .................................... 843

25.1 Anwendungsfalldiagramm ..................................................... 84425.1.1 Akteure .................................................................... 84525.1.2 Anwendungsfälle ..................................................... 84625.1.3 Beziehungen ............................................................ 84725.1.4 Beispieldiagramm ..................................................... 84925.1.5 Textuelle Beschreibung ............................................ 849

25.2 Klassendiagramm ................................................................... 85025.2.1 Attribute .................................................................. 85325.2.2 Operationen ............................................................ 85325.2.3 Beziehungen zwischen Klassen ................................. 85425.2.4 Vom Anwendungsfall zum Klassendiagramm ............ 85725.2.5 Beispieldiagramm ..................................................... 858

4270.book Seite 23 Donnerstag, 8. Dezember 2016 3:31 15

Page 37: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Inhalt

24

26 Anwendungsentwicklung – wo fange ich an? .................... 861

26.1 Anforderungsermittlung ......................................................... 86426.1.1 Ermittlung ................................................................ 86426.1.2 Spezifikation ............................................................ 86626.1.3 Verhaltensmodellierung ........................................... 86726.1.4 Validierung .............................................................. 869

26.2 Analyse .................................................................................. 86926.2.1 Die Klassenmodellierung .......................................... 87026.2.2 Verhaltensmodellierung ........................................... 87226.2.3 Verifikation .............................................................. 873

26.3 Entwurf ................................................................................. 873

27 Entwurfsmuster .................................................................. 877

27.1 Singleton ............................................................................... 87927.2 Fabrikmethode ...................................................................... 88127.3 Model View Controller .......................................................... 885

27.3.1 Model-Klasse ........................................................... 88927.3.2 View-Klasse ............................................................. 88927.3.3 Controller-Klasse ...................................................... 89027.3.4 Hauptprogramm ...................................................... 89127.3.5 Ersetzung des Views ................................................. 892

27.4 Fassade .................................................................................. 89427.5 Observer ............................................................................... 895

27.5.1 Haupttabelle ............................................................ 89727.5.2 Abstrakte Detailtabelle ............................................ 89827.5.3 Konkrete Detailtabelle ............................................. 89927.5.4 Hauptprogramm ...................................................... 900

27.6 Objektorientierte Reports ...................................................... 901

TEIL VI Ein Blick über den Tellerrand: Was Sie als ABAP-Entwickler sonst noch kennen sollten

28 SAP HANA .......................................................................... 907

28.1 Überblick ............................................................................... 90828.2 Architektur ............................................................................ 909

28.2.1 Die In-Memory-Technologie .................................... 91028.2.2 Spaltenorientierte Speicherung ................................ 91128.2.3 Wertekomprimierung ............................................... 913

28.3 Migration auf SAP HANA ....................................................... 913

4270.book Seite 24 Donnerstag, 8. Dezember 2016 3:31 15

Inhalt

25

28.4 SAP-HANA-Objekte .............................................................. 91528.4.1 Attribute View ......................................................... 91628.4.2 Analytic View ........................................................... 91728.4.3 Calculation View ...................................................... 91728.4.4 Stored Procedures .................................................... 919

28.5 Volltextsuchen ....................................................................... 91928.5.1 Volltextindex anlegen .............................................. 92028.5.2 Fuzzy-Suche ............................................................. 92228.5.3 Linguistische Suche .................................................. 92328.5.4 Eingabefelder für die Vorschlagssuche ...................... 924

29 SAPUI5, SAP Fiori und SAP Gateway ................................. 927

29.1 SAPUI5 .................................................................................. 92829.2 SAP Web IDE ........................................................................ 93029.3 SAP Fiori ............................................................................... 93129.4 OData ................................................................................... 933

29.4.1 Metadatendokument ............................................... 93629.4.2 Aufbau eines OData-Service ..................................... 93629.4.3 Abfrageoptionen ...................................................... 93829.4.4 Beispiel .................................................................... 938

29.5 SAP Gateway ......................................................................... 93929.5.1 Embedded Deployment ........................................... 94029.5.2 Zentrales Deployment ohne Entwicklung ................. 94029.5.3 Zentrales Deployment mit Entwicklung .................... 941

29.6 Entwicklung eines OData-Service .......................................... 94229.6.1 Entwicklung ............................................................. 94229.6.2 Veröffentlichung ...................................................... 94929.6.3 Testen ...................................................................... 95129.6.4 Fehleranalyse ........................................................... 953

29.7 Überblick über die Implementierung der CRUDQ-Methoden ............................................................................. 95329.7.1 Auslesen der Schlüsselfelder ..................................... 95429.7.2 Auslesen des HTTP-Request-Bodys .......................... 95429.7.3 Abfrageoptionen $skip und $top .............................. 95629.7.4 Abfrageoption $count .............................................. 95629.7.5 Abfrageoption $inline-count .................................... 95729.7.6 Abfrageoption $filter ............................................... 95829.7.7 Abfrageoption $select .............................................. 95929.7.8 Abfrageoption $orderby ........................................... 95929.7.9 Meldungen ausgeben ............................................... 960

4270.book Seite 25 Donnerstag, 8. Dezember 2016 3:31 15

Page 38: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Inhalt

26

30 Andere SAP-Webtechnologien .......................................... 963

30.1 Business Server Pages (BSP) ................................................... 96430.1.1 BSP-Anwendung mit HTML anlegen ........................ 96630.1.2 BSP-Anwendung mit HTMLB anlegen ...................... 969

30.2 Web Dynpro ABAP ................................................................ 97230.2.1 Web-Dynpro-Component anlegen ........................... 97330.2.2 Ausgabetabelle definieren ........................................ 97630.2.3 Methode zur Datenselektion implementieren .......... 97930.2.4 Context mit View verbinden .................................... 98330.2.5 Ergebnistabelle anlegen ........................................... 98630.2.6 Logik für den Button implementieren ....................... 98730.2.7 Web-Dynpro-Anwendung anlegen ........................... 989

30.3 Internet Communication Framework ..................................... 991

Anhang ..................................................................................... 995

A Das SAP-Flugdatenmodell ................................................................ 997B Übersicht der ABAP-Anweisungen ................................................... 999C Eingebaute Datentypen .................................................................... 1010D Transaktionscodes ............................................................................ 1012E Wichtige Systemfelder ..................................................................... 1016F Technische Tabellen ......................................................................... 1017G Nützliche Funktionsbausteine .......................................................... 1019H Klassen ............................................................................................ 1023I Namenskonventionen für die Programmierung ................................. 1025J Systemglossar und Suche nach fremdsprachigen SAP-Begriffen ......... 1029K Der Autor ........................................................................................ 1031L Glossar ............................................................................................. 1032

Index ...................................................................................................... 1039

4270.book Seite 26 Donnerstag, 8. Dezember 2016 3:31 15

Page 39: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

1039

Index

?= (Casting-Operator) 388{ } (eingebetteter Aus-

druck) 211* (Kommentarzeichen) 167/h (Systembefehl) 477&& (Verkettungsoperator)

204, 312= (Zuweisungsoperator)

388=> (Klassenkomponenten-

selektor) 363-> (Klassenkomponenten-

selektor) 363|| (Zeichenketten-Temp-

late) 211$metadata 936

A

ABAP7.40 166, 229, 283, 336,

351, 3917.50 166, 228, 283, 336,

351, 3917.51 176, 228, 338Richtlinien 520

ABAP CDS 333ABAP Database Connec-

tivity 285, 332ABAP Debugger 473

/h (Systembefehl) 477aktivieren 474Aufrufstack 484Exception-Anzeige 494interne Tabellen 487Oberfläche 477Schnellanzeige der Varia-

blen 481Speicherabzug 492Speicherverwaltung 492starten 474Steuerung 480System-Debugging 481Vergleichstool 483verlassen 474

ABAP Development Tools � ADT

ABAP Dictionary 89ABAP Dictionary, Daten-

element 171ABAP Doc 82ABAP Editor 44

Aktivierung 45Funktionsleiste 49neuer 45

ABAP für HANA 90ABAP List Viewer � ALVABAP Memory 778ABAP Object 27ABAP Objects 809

Muster 387Neuerungen 391Syntax 353

ABAP Profiler 523ABAP Test Cockpit 515,

534ATC-Ergebnis-Browser

41, 517Ausführung 515

ABAP Unit 506Assertion 510Aufrufreihenfolge 508ausführen 513Browser 514Modultest 513Systemeinstellungen 509Testklasse 506Testklassengene-

rierung 511Testmethode 507

ABAP Unit Browser 41ABAP Unit Test

Runner 513ABAP Workbench 37ABAP-Anweisung

DELETE 264obsolete 1008Übersicht 999

ABAP-Beispiel 59ABAP-Objects-Trans-

aktion 132ABAP-Programm 166ABAP-Schlüsselwörter 166ABAP-Verbindung

� Systemverbindung

ABAP-Wort 166Abbruchbedingung 244Abbruchmeldung 200Abfrageoption 956Abfrageoptionen 938Absatzformat 737, 741ABSTRACT (Zusatz) 360ABSTRACT METHODS

(Zusatz)INTERFACE 384

Abstraktion 840ACCEPTING DUPLICATE

KEYS (Zusatz)INSERT 325

ACTIVATION (Zusatz)SET HANDLER 371

ADBC 285, 332Addition 195Adobe LiveCycle

Designer 753ADT 61, 353

CDS View 334Installation 66Menüleiste 70Projekt 67

Agent 768Aggregatausdruck 316Aggregation, ALV 623agile Programmierung 870Akteur 844Alias 157, 305ALIAS (Zusatz), DATA 235ALL (Zusatz), UNION 310ALL INSTANCES (Zusatz),

SET HANDLER 371ALL METHODS (Zusatz),

INTERFACE 384ALL OCCURRENCES

(Zusatz), FIND 206allgemeine Tabellen-

anzeige 107allgemeiner Tabellen-

ausdruck 309ALV 577

Aggregation 597alt 578Eingabefähigkeit 582

4270.book Seite 1039 Donnerstag, 8. Dezember 2016 3:31 15

Page 40: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Index

1040

ALV (Forts.)farbige Hervorhebung

593, 608Filter 612Gruppierung 596IDA 578, 619Klasse 579, 599, 612Layout 598, 624mit integriertem Daten-

zugriff 613neu 578Selektionsbildschirm 628Selektionsoptionen 626Sortierung 596Textsuche 627Tree 579Zellentypen 607, 622

AMC-Trace 535AMDP 346

anlegen 347BAdI 350Methode 348

Ampel-Button 457Analyse

dynamische 519objektorientierte 862

Analysephase 869Analysespezifikation 870Analytic View 339, 915,

917AND RETURN (Zusatz),

SUBMIT 421AND WAIT (Zusatz), COM-

MIT WORK 445, 769Anforderungsermittlung

844, 864Anforderungsspezifikation

864, 869Ankreuzfeld � CheckboxAnkreuzstruktur 641Anweisung 166Anwendungsfall 846Anwendungsfalldiagramm

844, 866Anzeigemodus 50APC-Trace 535App, transaktionale 932APPEND (ABAP-Anwei-

sung) 240, 521APPEND LINES OF 521APPENDING (Zusatz),

SELECT 290

Append-Struktur 706Append-Suchhilfe 708Application Log 541

anlegen 542befüllen 542initialisieren 542speichern 544

Arbeitsbereich 174AREA HANDLE (Zusatz),

CREATE OBJECT 783Array 291, 773AS (Zusatz), SELECT 291,

305AS CHECKBOX (Zusatz),

PARAMETERS 397AS LISTBOX (Zusatz), PARA-

METERS 398AS WINDOW (Zusatz),

SELECTION-SCREEN BEGIN OF SCREEN 469

ASCENDING (Zusatz)FOR GROUPS OF 247SELECT 297SORT 273

Assert-Methode 510ASSIGN (ABAP-Anwei-

sung) 180, 266, 786ASSIGN COMPONENT

(ABAP-Anweisung) 787ASSIGNING (Zusatz), LOOP

AT 258ASSOCIATION (Zusatz),

TYPES 279Assoziation 855, 937AT SELECTION-SCREEN

(Ereignis) 395, 410ATC � ABAP Test CockpitAttribut 151, 358,

813, 816Sichtbarkeit 824statisches 819

Attribute View 339, 916Attributvektor 913Aufgabe 547, 557Aufrufhierarchie 527Aufrufparameter 430Aufrufstack 484Aufzählungskonstante 176Aufzählungsstruktur 178Aufzählungstyp 176

Ausdruckarithmetischer 313eingebetteter 211Konstruktorausdruck

214, 229logischer 189mathematischer 196Open-SQL-Ausdruck 311Rechenausdruck 195

Ausdrucksposition, allgemeine 227

Ausführungsplan 537Ausführungsziel 564Ausgabeanweisung 197Ausgabeauftrag 734Ausgabegerät 742Auslieferungsklasse 106Ausnahme 155, 160, 376

abfangen 441COMMUNICATION_

FAILURE 653klassenbasierte 376lokale 381, 441SYSTEM_FAILURE 653

Ausnahmekategorie 376Ausnahmekette 494Ausnahmeklasse 160, 376

anlegen 160CX_DYNAMIC_CHECK

376CX_NO_CHECK 376CX_OS_OBJECT_

EXISTING 771CX_OS_OBJECT_NOT_

EXISTING 769CX_ROOT 376CX_STATIC_CHECK 376CX_SY_ITAB_LINE_NOT_

FOUND 254Funktionsbaustein 441lokale 376

Ausnahmeobjekt 160, 376, 494

Äußerer Join 307

B

BACK (Funktionscode) 460Backend-System 66BAdI 350, 688

AMDP 350

4270.book Seite 1040 Donnerstag, 8. Dezember 2016 3:31 15

Index

1041

BAdI (Forts.)Filterwerte 717kernelbasiertes 714klassischer 688neues 714

BAdI-Builder 691, 722BAPI 522, 636, 640

erweitern 641Erweiterungsstruktur 642Explorer 639Übergabeparameter 641

BASE (Zusatz), CORRES-PONDING 223, 226

BASE TYPE (Zusatz), TYPES 177

Batch Input 670Aufzeichnung 671direkte Ausführung 674Mappe 673, 677Modus 675

Bearbeitungsmodus 50, 583

BEGIN OF (ABAP-Anwei-sung) 279

BEGIN OF ENUM (Zusatz), TYPES 177

BEGIN OF SCREEN ... AS SUBSCREEN (Zusatz), SELECTION-SCREEN 407

Benutzer, technischer 667Benutzereinstellungen

422, 1029Berechtigungsobjekt 130Betriebsart 567BETWEEN (Zeichenketten-

Operator) 202Bewegungsdaten 107Beziehung 847Black-Box-Test 506Block 405BOR 636Breakpoint 51, 75, 475

anlegen 78, 488bearbeiten 488Debugger-Breakpoint 487externer 79, 476Session-Breakpoints 475

BSP 964BSP-Extension 965, 969Business Add-In � BAdI

Business Aplication Pro-gramming Interface � BAPI

Business Function 728Business Object Builder

639Business Object Repository

� BORBusiness Service Pages

� BSPBusiness-Objekt 635

Ereignis 636Methode 635

Button 401, 451, 607ALV 622Funktionsleiste 403mit Icon 402

BY (Zusatz), SORT 273BY DATABASE FUNCTION

(Zusatz), METHOD 349byteartiger Typ 314

C

Calculation View 339, 915, 917

CALL (Open-SQL-Anweisung) 342

CALL BADI (ABAP-Anweisung) 715

Call by Reference 430Call by Value 430CALL CUSTOMER-

FUNCTION (ABAP-Anweisung) 684

CALL DATABASE PROCEDURE (ABAP-Anweisung) 344

CALL FUNCTION (ABAP-Anweisung) 439, 653

CALL METHOD (ABAP-Anweisung) 363, 366

CALL SCREEN (ABAP-Anweisung) 451

CALL SELECTION-SCREEN (ABAP-Anweisung) 469

CALL TRANSACTION (ABAP-Anweisung) 137, 674

CALL TRANSFORMATION (ABAP-Anweisung) 772, 774

Callback-Routine 785CASE (ABAP-Anweisung)

190, 221, 520case sensitive 166CASE TYPE OF (ABAP-

Anweisung) 191, 390Cast 388CAST (ABAP-Anweisung)

389CAST() (eingebaute Funk-

tion) 314Casting 173, 388CATCH (ABAP-Anwei-

sung) 379CDS 289, 333

ABAP 333SAP HANA 334View 334

CHANGING (Zusatz), PER-FORM 430

CHECK (ABAP-Anwei-sung) 193, 259

Checkbox 397, 451, 607CLASS ... ENDCLASS

(ABAP-Anweisung) 354CLASS ... IMPLEMENTA-

TION (ABAP-Anwei-sung) 362

Class Builder 147formularbasierter 159Kopiermodus 155quelltextbasierter 160

CLASS-DATA (ABAP-Anwei-sung) 358

CLASS-EVENTS (ABAP-Anweisung) 369

CLASS-METHODS (ABAP-Anweisung) 360

CLEAR (ABAP-Anweisung) 187, 239

CLOSE DATASET (ABAP-Anweisung) 647

coalesce() (eingebaute Funktion) 320

COBOL 27Code Inspector 501,

534, 914Ad-hoc-Prüfung 502Inspektion 501

4270.book Seite 1041 Donnerstag, 8. Dezember 2016 3:31 15

Page 41: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Index

1042

Code Inspector (Forts.)Objektmenge 501Prüfvariante 501Prüfvariante DEFAULT

502Prüfvariante TRANS-

PORT 502Code-to-Data 285,

614, 908COLLECT (ABAP-Anwei-

sung) 274COMMENT (Zusatz),

SELECTION-SCREEN 407

Commit 321COMMIT WORK (ABAP-

Anweisung) 321, 443, 445, 769

Common Table Expression 309

Component 973Component-Controller 975COMPONENTS (Zusatz),

DATA 235COMPUTE (ABAP-Anwei-

sung) 218concat_lines_of() (einge-

baute Funktion) 278CONCATENATE (ABAP-

Anweisung) 203, 312COND (ABAP-Anweisung)

220Condition Factory 626CONNECTION (Open-SQL-

Anweisung) 330CONSTANTS (ABAP-Anwei-

sung) 173Consumer-Proxy 662Container 461, 580

Docking-Container 628, 631

Root-UI-Element-Container 984

Context 973, 975CONTINUE (ABAP-Anwei-

sung) 194, 259Control 461Controller 885, 975CONV (ABAP-Anweisung)

219Core Data Services � CDS

CORRESPONDING (ABAP-Anweisung) 176, 223, 268, 272, 522

CREATE DATA (ABAP-Anweisung) 222, 786

CREATE OBJECT (ABAP-Anweisung) 222, 355

CREATE PUBLIC|PROTEC-TED|PRIVATE (Zusatz) 357

Cross Join 305, 308CRUD-Methode 934CRUDQ 934CSS 928CSV 799CTE 309Custom Control 451, 461Customer-Exit 684Customizing-Mandant 548

D

Dankbankfunktion, Aufruf 350

DATA (ABAP-Anweisung) 175, 182

Data Definition Language 334

Data Provider Class 946DATA VALUES (Zusatz),

INTERFACE 384Data-to-Code 287, 908Datenart 107Datenbank 89Datenbank-Commit 321Datenbankfunktion 342,

349Datenbank-LUW 444Datenbankprozedur 342,

908, 915, 919Aufruf 342Proxy 344

Datenbank-Rollback 322, 445

Datenbankschema 340Datenbankschnittstelle 286Datenbanktabelle 89, 104

ändern 321anlegen 105anzeigen 104Berechtigungen 106

Datenbanktabelle (Forts.)Datenart 107Größenkategorie 108Pflegedialog 117Pufferung 108Speicherart 110technische Einstellungen

107Datenbank-Utility-Tool

124Datenbankverbindung,

sekundäre 330Datenbank-View 113, 335Datenbankzugriff 285Datenbankzugriff, Object

Service 764Datenelement 91, 96,

141, 171anlegen 96Zusatzeigenschaften 99

Datenexport 633Datenhaltungsschicht 885Datenimport 633Datenkapselung 822, 840Datenkonsistenz 321, 443Datenobjekt 169, 786, 816Datenreferenzvariable 218Datentyp 170, 314,

358, 818definieren 183eigener 172, 183eingebauter 170gebundener 181globaler 181lokaler 181

Datums-/Zeittyp 314Datumsfunktion 320DB-spezifische Eigen-

schaften 110DDL 334Debugger 71Debugger, ADT 75Debugger-Breakpoint 487Debugging 473

Hintergrundjob 477Pop-up-Fenster 485

Debugging-Skript 494erstellen 497starten 499Trigger 496

DEEP (Zusatz), CORRES-PONDING 223

4270.book Seite 1042 Donnerstag, 8. Dezember 2016 3:31 15

Index

1043

DEFAULT (Zusatz)PARAMETERS 396SELECT-OPTIONS 401Tabellenausdruck 254

DEFAULT KEY (Zusatz), DATA 236

Default-Prüfvariante 502DEFINE ... END-OF-DEFI-

NITION (ABAP-Anwei-sung) 433

DEFINITION (Zusatz), CLASS 354

Definitionsteil 354Deklaration 170Deklaration, Inline 182DELETE (Open-SQL-Anwei-

sung 322demilitarisierte Zone 941DESCENDING (Zusatz)

FOR GROUPS OF 247SELECT 297SORT 273

Deserialisierung 773, 776Design Patterns � Design

PatternsDesktop-Verknüpfung 485DESTINATION (Zusatz),

CALL FUNCTION 653Destruktor 158, 822Dezimalzahl 314Dialogtransaktion 131DISTINCT (Zusatz)

Aggregatausdruck 316SELECT 290UNION 310

Division 195DMZ 941DO (ABAP-Anweisung)

192Docking-Container 461,

631Dokumentation 82Domäne

anlegen 92Einzelwerte erweitern 709semantische 91technische 91Wertebereich 95

Doppelpunkt 167Down Cast 388Drei-Systeme-Landschaft

549

Dropdown, auslesen 399Dropdown-Liste 398, 592Druckansicht 733, 742Druckdialog 733Druckprogramm 733, 742,

752, 757Drucktaste � ButtonDrucktastenleiste 457DURATION SHORT

(Zusatz), CLASS 507Dynamische Programmie-

rung 786dynamisches Programm

447Dynpro

Ablauflogik 452Analyse 413anlegen 448, 721aufrufen 451Elemente 449Exit 718gestalten 449GUI-Status 456GUI-Titel 458Programmierung 447Prozessor 448Subscreen 449Typ 449

E

Eclipse 61, 64Eingabefähigkeit 582Eingabefeld 450Eingabefeld,

Web Dynpro 984Eingabehilfe 95, 121Eingabeprüfung 95eingebaute Funktion,

interne Tabellen 277Einheit 314Einzelwert erweitern 709EL 334elementarer Wert 315ELSE (ABAP-Anweisung)

188ELSEIF (ABAP-Anweisung)

188END OF (ABAP-Anweisung)

279

END OF TASK (Zusatz), CALL FUNCTION 785

ENDFORM (ABAP-Anwei-sung) 427

ENDING AT (Zusatz), CALL SCREEN 451

ENDLOOP (ABAP-Anwei-sung) 257

ENDMETHOD (ABAP-Anweisung) 362

ENDSELECT (Open-SQL-Anweisung) 291

Enhancement Framework 692

Enhancement Package 693Enhancement

� ErweiterungENHANCEMENT-POINT

(ABAP-Anweisung) 697ENHANCEMENT-SECTION

(ABAP-Anweisung) 704Enqueue-Trace 535Enterprise Service

Browser 41Entität 933Entitätsklasse 871Entitätsset 933Entitätstyp 936Entwicklungspaket 58Entwicklungssystem 549Entwicklungstestmandant

550Entwurf 874Entwurfsmuster 877Entwurfsspezifikation 875Ereignis 156, 369, 587,

636, 826, 896ALV 587auslösen 370, 572definieren 369, 572Jobs 572Report 394Selektionsbildschirm 410statisches 369

Ereignisbehandler 369, 826, 896definieren 370registrieren 370

Ereignisblock 410Erweiterung 681, 695

Abgleich 712Debugging 710

4270.book Seite 1043 Donnerstag, 8. Dezember 2016 3:31 15

Page 42: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Index

1044

Erweiterung (Forts.)Einzelwerte 709Funktionsbaustein 703Include 711Index 708Klassen 701Konflikt 713Methode 702Struktur 706suchen 686Suchhilfe 708

Erweiterungsimplementie-rung 696

Erweiterungsimplementie-rungselement 696

Erweiterungs-Infosystem 41

Erweiterungskategorie 100, 706

Erweiterungsmodus 50Erweiterungsoption 695Erweiterungspunkt

expliziter 697impliziter 682, 699

Erweiterungssektion 704Erweiterungsspot 696Erweiterungsstruktur 642Erzeugungsmuster 878Event � EreignisEXACT (ABAP-Anweisung)

218EXCEPT (Zusatz)

CORRESPONDING 224FILTER 276

EXCEPTIONS (Zusatz) 360CALL FUNCTION 441METHODS 381

EXCLUDING (Zusatz), SET PF-STATUS 458

EXEC SQL (ABAP-Anwei-sung) 331

EXIT (ABAP-Anweisung) 194, 259

EXIT (Funktionscode) 460Exit-Meldung 200Explain 537EXPORT (ABAP-Anweisung)

777EXPORTING (Zusatz)

CREATE OBJECT 355Expression Language 334Extension-Index 708

externer Breakpoint 476externer View 340

F

F4-Hilfe erweitern 710Fabrikmethode 881Facade 894Fallunterscheidung 189,

311Farbcode 593Fassade 894Favorit 44Fehler 376Fehlermeldung 200Fehlertext 376Feinentwurf 874Feld

Deklaration 170sperren 584

Feldbezeichner 97Felddefinition 643Feldgruppe 644Feldkatalog

ALV 581bearbeiten 588neue ALV-Anzeige 604

Feldleiste � StrukturFeldselektor 175Feldsymbol 179, 258, 786

bearbeiten 482Definition 179Zuweisung 180

FensterFormular 735grafisches 737Hauptfenster 736, 743konstantes 737Kopienfenster 744Nebenfenster 743rücksetzendes 737

Festwert 95Festwert-Append 709Festwertintervall 95Festwertintervall,

Erweiterung 709FIELD (Zusatz)

GET PARAMETER 424SET PARAMETER 423

FIELDS (Zusatz), SELECT 299

FIELD-SYMBOLS (ABAP-Anweisung) 179, 182

File Transfer Protocol 646FILTER (ABAP-Anwei-

sung) 276, 522Filter, ALV 612FILTERS (Zusatz),

GET BADI 715FINAL (Zusatz) 360FINAL METHODS (Zusatz),

INTERFACE 384FIND (ABAP-Anweisung)

206find() (Suchfunktion) 207Fiori � SAP FioriFIRST OCCURENCE

(Zusatz), FIND 206Flat File 646Fließkommazahl 314FOR … IN (Zusatz) 247FOR (Zusatz), SET HAND-

LER 370FOR ALL ENTRIES IN

(Zusatz), SELECT 296, 521

FOR EVENT (Zusatz), METHODS 370

FOR GROUPS … OF (Zusatz) 246

FOR TESTING (Zusatz), CLASS 507

FORM (ABAP-Anweisung) 427

Form Builder 743Form Painter 735, 743Formalparameter 430Form-Include 146Formroutine

� UnterprogrammFormular 731

Fenster 735Funktionsbaustein 752Offline 753Seite 735Stil 745

Formularkopf 737Fortschrittsanzeige 538FREE (ABAP-Anweisung)

187, 239Fremdschlüssel 95Fremdschlüsselbeziehung

95, 116, 279

4270.book Seite 1044 Donnerstag, 8. Dezember 2016 3:31 15

Index

1045

Freund 151, 383, 825FRIENDS (ABAP-Anwei-

sung) 383FROM (Zusatz)

DELETE 323INSERT 325LOOP AT 257MODIFY 329SELECT 289, 299UPDATE 326

FROM MEMORY ID (Zusatz), IMPORT 779

FTP 646FuBa � FunktionsbausteinFunction Builder 139,

438, 442FUNCTION KEY (Zusatz),

SELECTION-SCREEN 403

Function Module � Funktionsbaustein

Funktionarithmetische 319eingebaute 210, 277mathematische 196Zeichenketten 210, 317

Funktionsbaustein 437, 810ABAP4_CALL_

TRANSACTION 137Ablaufart 140ALV 581anlegen 142APPL_LOG_INIT 542,

1019Arten 438Aufbau 139Aufruf 439Ausnahmen 142BAL_DB_SAVE 544,

1019BAL_DSP_LOG_

DISPLAY 545, 1019BAL_DSP_PROFILE_

POPUP_GET 545BAL_LOG_CREATE 543,

1019BAL_LOG_MSG_ADD

543BAPI_MATERIAL_

DISPLAY 639

Funktionsbaustein (Forts.)BAPI_MATERIAL_

SAVEDATA 641BAPI_TRANSACTION_

COMMIT 445, 1020BAPI_TRANSACTION_

ROLLBACK 445, 1022BAPI_USER_GET_DETAIL

658BDC_CLOSE_GROUP

677, 1019BDC_INSERT 677BDC_OPEN_GROUP 677BP_EVENT_RAISE 572,

1019CLOSE_FORM 742CONVERT_OTF 762,

1020DD_POPUP_WITH_INFO-

TEXT 466, 1021DYNP_VALUES_READ

399, 1020Erweiterung 703finden 442FP_FUNCTION_

MODULE_NAME 757, 1020

FP_JOB_CLOSE 757FP_JOB_OPEN 757, 761ICON_CREATE 402JOB_CLOSE 573JOB_OPEN 573JOB_SUBMIT 573, 1019lokale Ausnahme 441LVC_FIELDCATALOG_

MERGE 581OPEN_FORM 742POPUP_GET_VALUES

467, 1021POPUP_TO_CONFIRM

465, 1021Remote-fähiger 438, 634SAPGUI_PROGRESS_

INDICATOR 540Schnittstelle 140SCMS_XSTRING_TO_

BINARY 761SSF_FUNCTION_

MODULE_NAME 752, 1020

SWO_CREATE 638SWO_INVOKE 638

Funktionsbaustein (Forts.)testen 143Übersicht 1019VRM_SET_VALUES 399,

1020WRITE_FORM 742WS_DOWNLOAD 648

Funktionscode 404, 456, 460

Funktionsgruppe 120, 144, 818anlegen 144, 720aufrufen 442Lebensdauer 146Rahmenprogramm 145

Funktionsleiste 456Funktionstaste 457Funktionstasten-

belegung 456FUZZY (Zusatz),

SELECT 922Fuzzy-Suche 627, 919, 922

G

Ganzzahl 314Ganzzahldivision 195Garbage Collector 493, 820Gebiet

anlegen 782Shared Memory 780

Gebietsklasse 780Geheimnisprinzip 874Generalisierung 829, 856GET BADI (ABAP-Anwei-

sung) 715GET PARAMETER (ABAP-

Anweisung) 424GET RUN TIME FIELD 539Get-Methode 824Glossar 1029goldene Regeln 286Groß- und Kleinschrei-

bung 166Größenkategorie 108GROUP BY (Zusatz)

LOOP AT 259, 522SELECT 298

GROUP INDEX (Zusatz), LOOP AT 263

4270.book Seite 1045 Donnerstag, 8. Dezember 2016 3:31 15

Page 43: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Index

1046

GROUP SIZE (Zusatz), LOOP AT 263

Gruppenschlüssel-bindung 262

Gruppierung 246GUI-Control 461GUI-Status 456

ALV 601anlegen 456Drucktastenleiste 457Funktionstasten 457kopieren 602Menüleiste 457SALV_TABLE_

STANDARD 601setzen 458

GUI-Titel 458anlegen 459Platzhalter 459setzen 459

H

HANA � SAP HANAHANDLE (Zusatz),

CREATE DATA 787HASHED TABLE (Zusatz),

DATA 235Hash-Tabelle 234, 240Hauptpaket 58Hauptspeicher 910HAVING (Zusatz),

SELECT 298HCP � SAP HANA Cloud

PlatformHELP-REQUEST (Zusatz),

AT SELECTION-SCREEN 411

Help-View 117Hilfsvariable 226Hintergrundjob debuggen

477Hintergrundverarbeitung

563Host-Ausdruck 301Host-Variable 300Hotspot 591, 607, 622HTML5 928HTMLB 965, 969HTTP- und RFC-Trace 535HTTPS 659

I

ICF 655, 991ICF-Service 991Icon 402

ALV 595, 609Infotext 596

ID (Zusatz), SET PARAMETER 423

IDA 578, 613IDE 37, 62Identitätstransformation

772IF (ABAP-Anweisung) 188,

220IF FOUND (Zusatz), PER-

FORM 429IGNORING CASE (Zusatz),

FIND 206IMPLEMENTATION

(Zusatz), CLASS 355Implementierungsteil 354IMPORT (ABAP-Anwei-

sung) 777IMPORTING (Zusatz) 360Importqueue 554IN (Zusatz), FILTER 276IN PROGRAM (Zusatz),

PERFORM 429IN UPDATE TASK (Zusatz),

CALL FUNCTION 444Include 434

anlegen 436einbinden 435Top-Include 434

INCLUDE (ABAP-Anwei-sung) 435

INCLUDE STRUCTURE (Zusatz), TYPES 185, 584

Include-Beziehung 847Index 110

anlegen 111Extension-Index 708verwendeter 537Volltext 919

INDEX (Zusatz)INSERT 241MODIFY 267

Information View � SAP-HANA-View

Informationsnachricht 200

INHERITING FROM (Zusatz), CLASS 373

INIT (Zusatz), REDUCE 275Initialisierung 186INITIALIZATION (ABAP-

Anweisung) 394Inline-Count 957Inline-Deklaration 182,

302, 614Inline-Kommentar 167In-Memory-Technologie

910Inner Join 307INNER JOIN (Zusatz),

SELECT 307INSERT (ABAP-Anwei-

sung) 241INSERT (Open-SQL-Anwei-

sung) 324, 521Inspektion 501Instanz 813, 817Instanziieren 817, 820Instanzkonstruktor 158Instanzmethode 636Integrated Data Access

578, 613Integrated Development

Environment 37, 62Interaktion, externe 867Interface 150, 835

Alias 157ALV 624ALV mit IDA 619anlegen 161definieren 383IF_MESSAGE 379IF_OS_CA_

PERSISTENCY 768IF_OS_FACTORY 768,

772IF_OS_QUERY 771IF_OS_QUERY_

MANAGER 771IF_SALV_C_CELL_TYPE

607IF_SALV_GUI_TABLE_

DISPLAY_OPT 617IF_SALV_GUI_TYPES_IDA

618IF_SALV_IDA_CALC_

FIELD_HANDLER 620

4270.book Seite 1046 Donnerstag, 8. Dezember 2016 3:31 15

Index

1047

Interface (Forts.)IF_SALV_SERVICE_TYPES

624IF_SERIALIZABLE_

OBJECT 776IF_SHM_BUILD_

INSTANCE 781IF_T100_DYN_MSG 381implementieren 384Komponenten 383Verwendung 386

INTERFACE ... ENDINTER-FACE (ABAP-Anwei-sung) 383

INTERFACES (ABAP-Anwei-sung) 384

interne Tabelle 80, 91, 231ändern 265, 486Arten 233aufbereiten 273auslesen 251Debugging 486dynamisch erzeugen 787eingebaute Funktion 277füllen 239gehashte 521initialisieren 239Kopfzeile 236kopieren 271löschen 264mit Kopfzeile 239sortieren 273sortierte 521strukturfremde 271strukturgleiche 271Summen bilden 274Verkettung 278Zuweisung 223

Internet Communication Framework 655, 991

INTO (Zusatz)CASE 191CASE TYPE OF 390CATCH 379CONCATENATE 203INSERT 325MESSAGE 419SELECT 289, 299

INTO CORRESPONDING FIELDS OF (Zusatz), SELECT 292, 803

INTO TABLE (Zusatz), SELECT 240

ipow() (eingebaute Funktion) 245

IS INITIAL (Zusatz), TYPES 177

IS INSTANCE OF (ABAP-Anweisung) 389

Iteration, bedingte 244Iterationsausdruck 244Iterationsvariable 244

J

JavaScript 928Job 563

allgemeine Angaben 564Betriebsart 567definieren 563einplanen 570Ereignis 567, 572freigeben 570Jobklassen 564Ketten 567Klasse 564mit ABAP definieren 573periodische Ausführung

565Schritt (Step) 569Startbedingung 565Übersicht 570Wizard 564

Jobverwaltung 563Join 304JOIN (Zusatz), SELECT 304JSON 773

K

Kachel 932Kardinalität 977KEEPING TARGET LINES

(Zusatz), MOVE-CORRES-PONDING 272

KEEPING TASK (Zusatz), RECEIVE RESULTS FROM FUNCTION 785

Kettensatz 167Kindklasse � Unterklasse

Klasse 810, 816abstrakte 375, 834anlegen 147Art 375Attribut 151, 358Aufbau 354Ausnahme 155Ausnahmeklasse 376CL _SALV _FILTERS 613CL_ABAP_CLASSDESCR

797CL_ABAP_CORRESPON-

DING 225CL_ABAP_ELEMDESCR

799CL_ABAP_INTFDESCR

798CL_ABAP_STRUCT-

DESCR 795CL_ABAP_TABLEDESCR

795CL_ABAP_TYPDESCR

792CL_ALV_TABLE_CREATE

789CL_EXITHANDLER 689CL_GUI_ALV_GRID 579CL_GUI_CALENDAR 463CL_GUI_CONTAINER

461CL_GUI_CONTROL 461CL_GUI_DOCKING_

CONTAINER 628, 631CL_GUI_FRONTEND_

SERVICES 648CL_GUI_HTML_EDITOR

463CL_GUI_HTML_VIEWER

463CL_GUI_IMAGE 463CL_GUI_SPLITTER_

CONTAINER 631CL_GUI_TEXTEDIT 462,

463CL_GUI_TOOLBAR 463CL_OS_SYSTEM 770CL_SALV_COLUMN_

TABLE 604CL_SALV_COLUMNS_

TABLE 604CL_SALV_EVENTS_TABLE

602

4270.book Seite 1047 Donnerstag, 8. Dezember 2016 3:31 15

Page 44: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Index

1048

Klasse (Forts.)CL_SALV_FUNCTIONS_

LIST 601CL_SALV_GUI_TABLE_

IDA 614CL_SALV_GUI_

TOOLBAR_IDA 615CL_SALV_LAYOUT 612CL_SALV_RANGE_TAB_

COLLECTOR 626CL_SALV_SORTS 610CL_SALV_TABLE 599CL_SXML_STRING_

WRITER 774CL_XML_DOCUMENT

775CX_SY_AUTHORIZA-

TION_ERROR 137Datentypen 358Definitionsteil 354Entitätsklasse 871Ereignis 156erweitern 701finale 375, 834Freund 151, 383globale 353, 810Hierarchie 831Implementierungsteil 354instanziieren 355Interface 150Klassenereignis 826Komponente 357Komponentensicht-

barkeit 357Konstruktor 822Konstruktorklasse 781Kontrollklasse 871lokale 353, 810Oberklasse 830persistente 764Schnittstellenklasse 871Shared Objects 781Sichtbarkeit 357statische 375, 818testen 158Unterklasse 830Vererbung 149, 373Wurzelklasse 781

Klassenakteur 767Klassenattribut 819Klassendiagramm 843,

850, 866

Klassenkomponentedynamische 375statische 375

Klassenkomponenten-selektor 359

Klassenkonstruktor 158, 368

Klassenmethode 819Klassifikation 816Knoten 977Komma 167Kommentar 82, 167Komponentenselektor 52Komprimierung 913Konsistenz 443Konstante 173Konstruktor 157, 366, 821

Instanz 367, 821Klassen 368, 821Redefinition 840statischer 368

Konstruktorausdruck 229, 356, 522, 614

Konstruktorklasse 781Kontrollklasse 871Konvertierungs-Exit 94Konvertierungsroutine 93Kopfzeile 236Kopiermodus 155

L

Lastenheft 865Laufzeitanalyse 519, 523

ABAP Debugger 528auswerten 525Messung 524mit ABAP 538Transaktion SE30 527

Layout 598LEAVE PROGRAM (ABAP-

Anweisung) 460LEAVE TO SCREEN (ABAP-

Anweisung) 460Leerzeichen 166Leerzeilen 406LEFT [OUTER] JOIN

(Zusatz), SELECT 308LENGTH (Zusatz), PARA-

METERS 397Leseposition 227

Lesesperre 126LET (Zusatz) 226

COND 220CONV 219EXACT 219SWITCH 222

LIKE (Zusatz)DATA 181FORMS 432

LIKE LINE OF (Zusatz) 235line_exists() (eingebaute

Funktion) 279, 522line_index() (eingebaute

Funktion) 278LINES OF (Zusatz)

APPEND 240INSERT 242NEW 250VALUE 250

lines() (eingebaute Funk-tion) 277

linguistische Suche 919Linie 406Liste, hierarchische 579Listenausgabe 197Listenüberschrift 417Literal 174, 211Logger 911Log-Handle 543Logical Unit of Work 444logischer Ausdruck 189Look-up-Variante 268LOOP AT … ASSIGNING

521LOOP AT (ABAP-Anwei-

sung) 257, 521LOWER CASE (Zusatz),

PARAMETERS 396LSMW 678LUW 444

M

Makro 433aufrufen 434definieren 433

Mandant 314, 548CUST 548Customizing-Mandant

549

4270.book Seite 1048 Donnerstag, 8. Dezember 2016 3:31 15

Index

1049

Mandant (Forts.)Entwicklungstest-

mandant 550Mandantentyp 548PROD 548Produktivmandant 549Prototypmandant 551QTST 548SAND 551Schulungsmandant 551TEST 550TRNG 551

Mandantenabhängigkeit 110

Mapping 983MAPPING (Zusatz),

CORRESPONDING 224Mapping-Vorschrift 224Master-Include 146MATCHCODE OBJECT

(Zusatz), PARAMETERS 396, 925

mathematische Funktion 196

me-> (Selbstreferenz) 365Mechanismus 857, 872Meldung, Typen 200Memory 778MEMORY ID (Zusatz)

PARAMETERS 396, 422SELECT-OPTIONS 422

Memory Object Explorer 492

Mengenfeld 314Menü-Exit 717Menüleiste 457Mesh 279Mesh-Pfad 280Mesh-Typ 279MESSAGE (ABAP-Anwei-

sung) 200, 419MESSAGE RAISING (ABAP-

Anweisung) 382Metadatendokument 936METHOD (ABAP-Anwei-

sung) 362Methode 813, 817

abstrakte 360anlegen 152aufrufen 363Ausnahmen 377definieren 360

Methode (Forts.)erweitern 702finale 360implementieren 362Over-Write-Methode 702Parameter 153polymorphe 839Post-Methode 702Pre-Methode 702Redefinition 155, 373Signatur 154statische 819Verkettung 365

Methode, statische 819METHODS (ABAP-Anwei-

sung) 360MIME Repository 40MODE (Zusatz), CALL

TRANSACTION 675Model 885Model Provider Class 946Model View Controller

885Modell 862

strukturelles 843verhaltensorientiertes 843

Modellierung 862MODIF-ID (Zusatz) 408Modifikation 681Modifikationsgruppe 408Modifikator 824MODIFY (ABAP-Anwei-

sung) 267, 521MODIFY (Open-SQL-

Anweisung) 328MODIFY SCREEN (ABAP-

Anweisung) 409Modul 454MOVE (ABAP-Anweisung)

218MOVE-CORRESPONDING

(ABAP-Anweisung) 176, 223, 272, 522

Multiplikation 195Muster 51, 54

ABAP Objects 387ADT 74Funktionsbaustein 74Methodenaufruf 74

MVC 885

N

Nachrichtanlegen 418aufrufen 419parametrisierte 419

Nachrichten-Header 543Nachrichtenklasse 417,

543anlegen 418aufrufen 419Platzhalter 419

Namenskonvention 1025natives SQL 285, 330, 342Navigation 49, 937Navigations-Button 457Navigationsstapel 50NEW (ABAP-Anweisung)

222, 251, 356, 788NEXT (Zusatz), REDUCE

275NO INTERVALS (Zusatz),

SELECT-OPTIONS 401NO-DISPLAY (Zusatz),

PARAMETERS 397NO-EXTENSION (Zusatz),

SELECT-OPTIONS 401Nullwert ersetzen 320

O

Oberklasse 149, 374, 829Object Navigator 39Object Services 764Objekt 813, 816

Klassifikation 816persistentes 764

Objektidentität 820Objektliste 43, 50Objektmenge 501objektorientierte Analyse

843Objektorientierung 809Objektreferenzvariable

Fallunterscheidung 191Typ prüfen 389

Objektsperre 547OBLIGATORY (Zusatz),

PARAMETERS 396Observer 895

4270.book Seite 1049 Donnerstag, 8. Dezember 2016 3:31 15

Page 45: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Index

1050

OData 933OData-Service 927

entwickeln 942Fehleranalyse 953lesender 942Metadaten 936Methode 933Navigation 935testen 951Veröffentlichung 949

OF PROGRAM (Zusatz)SET PF-STATUS 458SET TITLEBAR 459

Offset 204OFFSET (Zusatz)

DELETE 322SELECT 303, 956

ON ... FOR (Zusatz), AT SELECTION-SCREEN 411

ON (Zusatz), SELECT 304ON BLOCK (Ereignis) 411ON COMMIT (Zusatz),

PERFORM 444ON END OF (Ereignis) 411ON EXIT-COMMAND

(Ereignis) 411ON HELP-REQUEST FOR

(Ereignis) 411ON RADIOBUTTON

GROUP (Ereignis) 411OOA 843OO-Transaktionsmodell

132OPEN DATASET (ABAP-

Anweisung) 647Open SQL 285

Ausdruck 311dynamisches 802Funktionen 315Neuerungen 336Performance 286Syntaxänderungen 300WHERE … IN 295Wildcards 295

Operandenposition 226Operation 872OPTION (Zusatz), SELECT-

OPTIONS 401OPTIONAL (Zusatz), Tabel-

lenausdruck 254

ORDER BY (Zusatz)DELETE 322SELECT 297, 304

OTF 762OTF-Tabelle 759OTHERS (ABAP-

Anweisung) 441Outer Join 307OUTER JOIN (Zusatz),

SELECT 307Outline-Anzeige 78OUTPUT (Zusatz), AT

SELECTION-SCREEN 410

P

Package Builder 57PACKAGE SECTION (Sicht-

barkeitsbereich) 358Page Management 910Paging 303PAI 452, 460Paket 57

anlegen 57Hierarchie 58Transport 551Typ 58

Parallelisierung 785Parameter 153, 396, 818PARAMETERS (ABAP-

Anweisung) 396Parametertransaktion 133PBO 452PDF 733, 759PERFORM (ABAP-Anwei-

sung) 428Performance 286, 519Performance-Trace 523,

528PERFORMING (Zusatz),

CALL FUNCTION 785Persistenzdienst 764Persistenzschicht 911Pfad 340Pflegedialog 117

anlegen 118Ansicht verbreitern 119

Pflege-View 116Pflichtfeld 467Pointer 179

Polymorphie 839, 841Pop-up-Fenster 451,

464, 485Port, logischer 666Potenzierung 195Prädikatfunktion 279Pretty Printer 54, 73Primärindex 110Primärschlüssel 110Primärschlüsselfeld 584Private 357PRIVATE SECTION (Sicht-

barkeitsbereich) 358Process After Input 452,

460Process Before Output 452Produktivmandant 548Produktivsystem 549Programm 636

ausführbares 47, 394dynamisches 447Typen 47

Project Explorer 68Projekt, ADT 67Projektion 115, 291Projektions-View 115Property 936, 937Protected 357PROTECTED SECTION

(Sichtbarkeitsbereich) 358

Prototypmandant 551prozedurale Programmier-

sprache 425Prüfkriterium 312Prüfvariante 501

anlegen 502FUNCTIONAL_DB 914FUNCTIONAL_DB_

ADDITION 914importieren 914

Public 357PUBLIC SECTION (Sichtbar-

keitsbereich) 358Puffer 108Puffer-Trace 535Pufferung 108Punkt 166PUSHBUTTON (Zusatz),

SELECTION-SCREEN 401

4270.book Seite 1050 Donnerstag, 8. Dezember 2016 3:31 15

Index

1051

Q

QL 334Qualitätssicherungs-

mandant 548Qualitätssicherungs-

system 549Query Language 334Query-Dienst 764Query-Manager 770Query-Objekt 770Quick Fix 84, 87Quickinfo 402

R

Radiobutton 398, 451RADIOBUTTON GROUP

(Zusatz), PARAMETERS 398

Rahmen 451Rahmenprogramm 144,

720RAISE (ABAP-Anweisung)

382RAISE EVENT (ABAP-

Anweisung) 370RAISING (Zusatz),

METHODS 360, 378Ranges-Tabelle 295Ranges-Tabellentyp 103READ DATASET (ABAP-

Anweisung) 649READ TABLE (ABAP-Anwei-

sung) 251, 521READ-ONLY (Zusatz),

DATA 359RECEIVE RESULTS FROM

FUNCTION (ABAP-Anweisung) 785

Rechenausdruck 195Rechenoperation 195Redefinition 830, 839REDEFINITION (Zusatz),

CLASS 374REDUCE (ABAP-Anwei-

sung) 274, 522Redundanz 815Refactoring 85Referenzfeld 101

Referenztabelle 101Referenzübergabe 430Referenzvariable 279, 356,

786, 820Registerkarte 407, 451Remote Function Call 634Rename 86REPLACE (ABAP-Anwei-

sung) 208replace() (eingebaute Funk-

tion) 208Report 47

anlegen 46aufrufen 420Ereignisse 394objektorientierter 901RDDIT076 561RS_AUCV_RUNNER 513Selektionsbildschirm 393

Reporttransaktion 131Repository Browser 40, 42Repository-Infosystem 40,

442Repräsentant 260Repräsentantenbindung

260RESPECTING CASE (Zusatz),

FIND 206Rest (Rechenoperation)

195RESULT XML (Zusatz),

CALL TRANSFORMA-TION 774

RESUMABLE (Zusatz), METHODS 378

Return-Code 1016RETURNING (Zusatz),

METHODS 360RFC 634RIGHT [OUTER] JOIN

(Zusatz), SELECT 308RISK LEVEL HARMLESS

(Zusatz), CLASS 507Robustheit 823Rollback 443, 445ROLLBACK WORK (ABAP-

Anweisung) 322, 445Rolle 845RTTC 792RTTI 792RTTS 792

Rückgabe 182Runtime Type Services 792

S

Sammelsuchhilfe 121SAP .NET Connector 635SAP Community Network

442SAP Control Framework

461SAP Fiori 927, 931

Apps 927Launchpad 927, 932UX 927

SAP Gateway 927, 939SAP GUI,

Programmierung 447SAP HANA 90, 285, 907

Datenbankschema 340goldene Regeln 287Migration 913

SAP HANA Cloud Platform 930

SAP HANA Studio 908, 915

SAP Interactive Forms by Adobe 753

SAP Java Connector 635SAP List Viewer � ALVSAP S/4HANA 928SAP Smart Forms 731, 743SAP User Interface Develop-

ment Toolkit for HTML5 � SAPUI5

SAP Web IDE 930SAP-Business-Objekt 635SAP-HANA-Objekt 908,

915SAP-HANA-View 339, 908,

915SAP-Hilfe 168SAP-Komponente 636SAP-LUW 444SAPscript 731, 735SAPUI5 303, 927, 928SAP-Verknüpfung 486Satz 166Schalter 728Schleife 187

4270.book Seite 1051 Donnerstag, 8. Dezember 2016 3:31 15

Page 46: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Index

1052

Schlüssel 314definieren 235interne Tabelle 235

Schlüsselfeld 110Schlüsselwort, Dokumen-

tation 168Schnellanzeige der

Variablen 481Schnittstelle 633Schnittstellenklasse 871Schreibposition 226, 228Schreibsperre 126Schulungsmandant 551SCN 442SCREEN (Tabelle) 412Screen Painter 449Screenvariante 135Script Wizard 497Script Wrapper 499Searched Case 312Seite

Folgeseite 736, 743Formular 735

Seitenattribut 968Seitenfenster 735Sekundärindex 111Selbstreferenz 365SELECT (ABAP-Anwei-

sung) 240SELECT (Open-SQL-Anwei-

sung) 288, 520SELECT * (Open-SQL-

Anweisung) 520SELECTION-SCREEN

BEGIN OF BLOCK (ABAP-Anweisung) 405

SELECTION-SCREEN BEGIN OF SCREEN (ABAP-Anweisung) 469

SELECT-OPTIONS (ABAP-Anweisung) 400, 521

Selektion 293Selektionsbedingung 114,

237Selektionsbildschirm 393

Blöcke 405dynamisches Ausblenden

412Eingabeelemente 395Ereignisse 410Funktionscode 404Leerzeilen 406

Selektionsbildschirm (Forts.)Linie 406Parameter 396Pop-up-Fenster 468Strukturierungselemente

405Tabelle SCREEN 412Textausgaben 407Texte 416Variante 132

Selektionsliste 291, 299, 803

Selektionsoptionen 295, 400

Selektionsparameter 421Selektionstabelle 421Selektionstext 416Selektor 824SEPARATED BY (Zusatz),

CONCATENATE 203Serialisierung 773, 776Service-Consumer 664Session-Breakpoint 475SET (Zusatz), UPDATE 328SET HANDLER (ABAP-

Anweisung) 370, 588SET PARAMETER (ABAP-

Anweisung) 423SET PF-STATUS (ABAP-

Anweisung) 458SET TITLEBAR (ABAP-

Anweisung) 459Set-/Get-Parameter

� SPA-/GPA-ParameterSet-Methode 824Shared Memory 778, 780SHARED MEMORY

ENABLED (Zusatz), CLASS 781

Shared Objects 778, 780Sichtbarkeit 357, 823

package 824private 823protected 823public 823

SIGN (Zusatz), SELECT-OPTIONS 401

SINGLE (Zusatz), SELECT 289

Singleton 879

SKIP (Zusatz), SELECTION-SCREEN 406

SM30-Tabelle 117Smart Forms 731, 743Smart Style 745Snapshot 532SOA-Manager 655, 661SOAP 654Softwarekomponente 58SORT (ABAP-Anweisung)

273SORTED TABLE (Zusatz),

DATA 235sortierte Tabelle 234, 240SOURCE XML (Zusatz),

CALL TRANSFORMA-TION 775

SPA-/GPA-Parameter 422anlegen 423auslesen 424setzen 423

Spalte 104ausblenden 588,

604, 618Breite 590, 606Datenelement 622einfärben 608entfernen 604hinzufügen 589, 604,

619löschen 589, 618Position 590, 605, 621umbenennen 590,

605, 619Spaltenorientierung 911Speicherabzug 493Speicherart 110Speichern, Implementie-

rung 583Speicherverwaltung 492Sperrbaustein 126Sperrkonzept 125Sperrmodus 126Sperrobjekt 125Spezialisierung 829, 856SPLIT ... AT (ABAP-Anwei-

sung) 650Split-Container 631Spool-Auftrag 734SPOTS (Zusatz)

ENHANCEMENT-POINT 697

4270.book Seite 1052 Donnerstag, 8. Dezember 2016 3:31 15

Index

1053

SPOTS (Zusatz) (Forts.)ENHANCEMENT-

SECTION 705Sprache 314, 1029SQL

natives 285, 330, 342Open SQL 285

SQL Performance Tuning Worklist 520, 529, 533

SQL-Monitor 519, 529Administration 530Snapshots 532

SQLScript 346, 908, 918SQL-Trace 536SSCRFIELDS (Struktur)

403, 405Stammdaten 108STANDARD TABLE

(Zusatz), DATA 235Standardtabelle 233Startbedingung 564STARTING AT (Zusatz),

CALL SCREEN 451STARTING NEW TASK

(Zusatz), CALL FUNC-TION 785

START-OF-SELECTION (ABAP-Anweisung) 356, 394

statischer Konstruktor � Klassenkonstruktor

Status-Icon 451Statusmeldung 200Stepliste 569Steuerkommando 740Stored Procedure

� DatenbankprozedurString-Template 211strlen() (Zeichenketten-

funktion) 205STRUCTURE (Zusatz),

TYPES 178Struktur 100, 174

ALV 581anlegen 100Append-Struktur 706definieren 185erweitern 706tiefe 100, 174zu interner Tabelle 235Zuweisung 223

Strukturierungselement 405

Strukturmuster 878Strukturpaket 58Subklasse � UnterklasseSUBMIT (ABAP-

Anweisung) 420Subscreen 407, 449, 721substring() (Teilfeldfunk-

tion) 205Subtraktion 195Suche

Fuzzy-Suche 922linguistische 923Type-Ahead 924Vorschlagssuche 924

Suchhilfe 121, 396anlegen 121Append-Suchhilfe 708elementare 121erweitern 708Vorschlagssuche 926

SUPER (Referenz) 374super-> (Pseudoreferenz)

830Superklasse � OberklasseSWITCH (ABAP-

Anweisung) 221Switch Framework 693,

727sy-index (Systemfeld) 192Syntax 353Syntaxregeln 166Systembefehl /h 477Systemcode 129System-Debugging 481Systemfeld

sy-subrc 1016sy-ucomm 460Übersicht 1016

Systemverbindung 653sy-ucomm (Systemfeld)

405Szenario 847, 868

T

Tabelleanlegen 105Anzeige 577Arten 233

Tabelle (Forts.)Datenbanktabelle 104Hash-Tabelle 234interne 80, 91, 231mandantenabhängige

110mit Kopfzeile 236MODSAP 686Ranges-Tabelle 237, 295SCREEN 412sortierte 234Standard 233technische Einstellungen

107verknüpfen 113

Tabellenausdruck 253, 522Tabellenausdruck,

allgemeiner 309Tabellen-Comprehension

245Tabellenfunktion 277Tabelleniteration 244Tabellensicht-Pflege 107,

117Tabellentyp 102TABLE (Zusatz) 235

INSERT 325MODIFY 329UPDATE 327

Table Control 451TABLE OF (Zusatz),

SELECT 290TABLES (Zusatz)

FORMS 432PERFORM 430

Tabstrip 407, 451Tag Browser 40, 966, 970technische Einstellungen

107Technische Info 423, 536Teilfeldfunktion 205Teilfeldzugriff 204, 208Test Repository 41Testklasse 506, 511Testmethode 507Text 607

Feldbezeichner 97Selektionsbildschirm 407Selektionstext 416Übersetzung 98

Textanalyse 923Textdatei 646

4270.book Seite 1053 Donnerstag, 8. Dezember 2016 3:31 15

Page 47: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Index

1054

Text-Editor 461Textelement 413, 417, 739Textfeld 451, 750Textliteral 174Textsuche 627, 923Textsymbol 402, 413TIMES (Zusatz), DO 192TMS 548TO (Zusatz), LOOP AT 257TO MEMORY ID (Zusatz),

EXPORT 779Token 166Toolbar Control 463Top-down-Ansatz 334Top-Include 47, 146, 434Trace 535

im Debugger 535Performance-Trace 523

Transaktion 129, 636/IWFND/ERROR_LOG

942, 953/IWFND/GW_CLIENT

942/IWFND/MAINT_

SERVICE 942, 949, 951

AL11 647ATC 516BAPI 639CMOD 685, 686DBACOCKPIT 330ICON 595mit Parametern 133mit Variante 133, 134OMSR 644PFCG 67SAT 519, 523SAUNIT_CLIENT_SETUP

509SCI 501, 502, 914SCOV 534SE01 40, 548SE03 561SE10 40, 548SE11 89, 920SE16 107SE16N 107SE18 722SE19 689, 690SE20 41, 694SE21 57, 131SE24 147, 765

Transaktion (Forts.)SE30 523, 527SE37 442SE38 46SE71 735SE80 39, 46, 966SE84 40SE91 418SE93 130SEGW 942SFP 753SFW1 729SFW2 729SFW3 729SFW5 729SHD0 135SHDB 672SHMA 782SICF 662, 991SICK 347SLG0 542SLG1 541SM13 445SM30 117SM35 671SM36 563SM37 563, 570SM59 653SM62 572SM64 572SM69 570SMARTFORMS 743SMOD 685SOAMANAGER 661SP01 734SPACKAGE 57SPAU 712SPAU_ENH 712SPDD 712SPROXY 657SQLM 529SQLMD 529, 532ST05 535STERM 1029STMS 548, 554STWBM 41SU01 422, 734SWLT 529, 533SWO1 636WSCONFIG 661

Transaktionscode 129anlegen 130

Transaktionscode (Forts.)SE37 139Übersicht 1012

Transaktionsdienst 132, 764

Transaktionsrecorder 671Transaktionsvariante 134TRANSFER DATASET

(ABAP-Anweisung) 647Transformation 772Transport

Art 551Aufgabe 557von Kopie 551

Transport Organizer 40, 548, 553

Transport Organizer Tools 561

Transportauftrag 547, 551anlegen 552Aufgabe 547finden 561Freigabe zurücknehmen

561freigeben 553importieren 554löschen 559Objekte aufnehmen 559Objektsperre 547schreiben 558verschmelzen 560Zuordnung ändern 557

TRANSPORTING (Zusatz), MODIFY 267

TRANSPORTING NO-FIELDS (Zusatz), READ TABLE 252, 522

Transport-Management-System 548

Transport-Prüfvariante 502Transportschicht 58Transportwesen 547Trigger 497TRY ... CATCH (ABAP-

Anweisung) 803TRY ... ENDTRY (ABAP-

Anweisung) 379, 441Typ

eigener 786umwandeln 388

Typbeschreibungsobjekt 799

4270.book Seite 1054 Donnerstag, 8. Dezember 2016 3:31 15

Index

1055

TYPE (Zusatz)DATA 102, 172, 181,

235FORMS 432MESSAGE 200PARAMETERS 397TYPES 184

TYPE RANGE OF (Zusatz), DATA 238

TYPE TABLE OF (Zusatz), DATA 102, 235

Type-Ahead-Suche 924TYPES (ABAP-Anweisung)

184, 279Typgruppe 112Typkonvertierung 173Typumwandlung 314

U

UI-Element 449, 451, 965, 984

ULINE (Zusatz), SELEC-TION-SCREEN 406

Umbenennung 86UML 843UNION (Open-SQL-

Anweisung) 299UNION (Zusatz), SELECT

310Unterklasse 374, 829Unterpaket 58Unterprogramm 426, 810

Aufruf 428Aufruf aus anderem Pro-

gramm 428definieren 427Parameterübergabe 430

UNTIL (Zusatz) 244Up Cast 388UP TO ... ROWS

(Zusatz) 522DELETE 322SELECT 290

UPDATE (Open-SQL-Anweisung) 326

Use Case Diagram 844, 866User Experience 927User-Breakpoint 476USER-COMMAND (Zusatz)

PARAMETERS 404

USER-COMMAND (Zusatz) (Forts.)SELECTION-SCREEN 404

User-Exit 681USING (Zusatz)

CALL TRANSACTION 674

PERFORM 430USING KEY (Zusatz)

APPEND 241FILTER 276MODIFY 267TYPES 279

USING SELECTION-SET (Zusatz), SUBMIT 421

V

VALUE (ABAP-Anwei-sung) 216, 242, 522

VALUE (Zusatz)CONSTANTS 173DATA 172Tabellenausdruck 256

VALUE CHECK (Zusatz), PARAMETERS 396

VALUE-REQUEST (Zusatz), AT SELECTION-SCREEN 411

VALUES (Zusatz), INSERT 325

Variable 169Anzeige 78bearbeiten 482vergleichen 482

Variante 132Variantentransaktion 133Verantwortlichkeit 871Verbuchungsbaustein 438,

444Vererbung 149, 373, 815,

828, 841Vergleich 189Vergleichstool 483Verhaltensmuster 878Verkettungsfunktion 278Verkettungsoperator 203,

312Verknüpfung 304Verwendungsnachweis 50Verzweigung 187

VIA SELECTION-SCREEN (Zusatz), SUBMIT 420

View 113, 885Analytic 917Attribute 916Calculcation 917CDS 333externer 340

VISIBLE LENGTH (Zusatz), PARAMETERS 397

Vollbildmodus 50Volltextindex 919Vorschlagshilfe 51Vorschlagsliste 51Vorschlagssuche 924Vorwärtsnavigation 49

W

Währungsfeld 314Währungsschlüssel 314WAIT UNTIL (ABAP-Anwei-

sung) 785Warnung 200Wartbarkeit 815Watchpoint 79, 491Web Dynpro

Anwendung 974Component 974Knoten 976Mapping 983Methode 979

Web Dynpro ABAP 963, 972

Web Dynpro ABAP, SAP List Viewer 886

Web Dynpro Text Browser 41

Web-Dynpro-Anwendung aufrufen 990

Weboberfläche 963Webservice

anlegen 658Aufruf mit ABAP 669Freigabe 661logischer Port 666Service-Definition 658testen 669Wizard 657

Webservice konsumieren 664

4270.book Seite 1055 Donnerstag, 8. Dezember 2016 3:31 15

Page 48: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Index

1056

Webservice-Framework 655

Webservicesöffnen 657Sicherheitsprofil 659

Wert, elementarer 315Wertebereich 95Wertetabelle 95Werteübergabe 430Wertparameter 369Wertüber- und -rückgabe

430WHERE (Zusatz) 521

DELETE 322FILTER 276MODIFY 267UPDATE 328

WHERE-Klausel (Open SQL) 293

WHILE (ABAP-Anwei-sung) 193

WHILE (Zusatz) 244Wiederverwendung 815Window 974WITH (ABAP-Anweisung)

309WITH (Zusatz)

MESSAGE 420SET TITLEBAR 459SUBMIT 421

WITH AUTHORITY-CHECK (Zusatz), CALL TRANS-FORMATION 137

WITH FRAME ... TITLE (Zusatz), SELECTION-

SCREEN BEGIN OF BLOCK 405

WITH NON-UNIQUE (Zusatz), DATA 235

WITH OVERVIEW (Zusatz), CALL 343

WITH SELECTION-TABLE (Zusatz), SUBMIT 421

WITH TABLE KEY 521WITH UNIQUE (Zusatz),

DATA 235WITHOUT AUTHORITY-

CHECK (Zusatz), CALL TRANSFORMATION 137

WITHOUT MEMBERS (Zusatz)FOR GROUPS OF 247LOOP AT 262

Workarea 174Workprozess 444Workspace 65WRITE (ABAP-Anwei-

sung) 198WSDL 656Wurzelklasse 781

X

XINX 709XML 772XML-Dokument 775xsdbool() (Funktion) 202

Z

Zahlenliteral 174zeichenartiger Typ 314Zeichenformat 737Zeichenkette 201

ersetzen 207finden 206Operator 201Vergleich 201Verkettung 203

Zeichenkettenfunktion 317Zeichenketten-Template

211Zeichenliteral 174Zeigervariable 820Zeile 104Zeile einfärben 594Zeilenkommentar 167Zeilentyp 747Zeilentyp, strukturierter

103Zelle

einfärben 594Typ 607, 622

Z-Include 684Zusatz 166Zuweisung 172, 820Zuweisungsoperator 172,

388zweistufiges Domänenprin-

zip 91Zwei-Systeme-Landschaft

550

4270.book Seite 1056 Donnerstag, 8. Dezember 2016 3:31 15

Page 49: ABAP Objects – Das umfassende Handbuch · PDF fileABAP Dictionary enthaltenen Tabelle MARA mit all seinen Feldnamen, Daten-typen und Feldlängen. Alle Programme greifen, wenn es

Wir hoffen sehr, dass Ihnen diese Leseprobe gefallen hat. Sie dürfen sie gerne empfehlen und weitergeben, allerdings nur vollständig mit allen Seiten. Bitte beachten Sie, dass der Funktionsumfang dieser Leseprobe sowie ihre Darstel-lung von der E-Book-Fassung des vorgestellten Buches abweichen können. Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschützt. Alle Nut-zungs- und Verwertungsrechte liegen beim Autor und beim Verlag.

Teilen Sie Ihre Leseerfahrung mit uns!

Felix Roth ist Trainer, Entwickler und Berater mit Herzblut und im kompletten ABAP-Technologie-Umfeld zu Hause. Seit 2013 arbeitet er als SAP Consultant und Software En-gineer bei der X-CASE GmbH. In seiner Position berät er Kunden in den verschiedensten Entwicklungsprojekten und beschäftigt sich maßgeblich mit den neuesten SAP-Techno-logien. Darüber hinaus kümmert er sich hauptverantwort-lich um die Nachwuchsgewinnung und die Weiterbildung der Werkstudenten und Praktikanten. Seit 2014 hält Felix Roth regelmäßig SAP-Schulungen für die Integrata AG und erstellte dafür auch mehrere Schulungsunterlagen.

Felix Roth

ABAP Objects – Das umfassende Handbuch1.056 Seiten, gebunden, Dezember 2016 69,90 Euro, ISBN 978-3-8362-4270-7

www.sap-press.de/4201

SAP-Wissen aus erster Hand.