7107.book seite 48 mittwoch, 4. september 2019 11:36 11 ... file7107.book seite 46 mittwoch, 4....

22

Upload: others

Post on 26-Oct-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

7107.book Seite 46 Mittwoch, 4. September 2019 11:36 11

47

2

Kapitel 2

ABAP Dictionary

Für die Beispielanwendung dieses Buches benötigen wir Daten, mit

denen wir arbeiten können. Dazu erstellen wir als Erstes eine Tabelle

im ABAP Dictionary. Dabei lernen Sie ganz nebenbei, wie Sie mit dem

ABAP Dictionary umgehen, um Objekte anzulegen.

Bereits in der Standardauslieferung des SAP-Systems sind Tausende Tabellen enthal-

ten. Dennoch benötigen Kunden zusätzlich eigene Tabellen für individuelle Anforde-

rungen. Die wichtigsten Arbeiten im Zusammenhang mit dem Anlegen und Pflegen

von Tabellen erledigen wir daher gleich am Anfang.

In diesem Kapitel legen wir eine Tabelle an und füllen diese. Auf diese Tabelle werden

Sie in den weiteren Kapiteln immer wieder zugreifen. Sie ist die grundlegende Tabelle

unserer Beispielanwendung, einer Verwaltungsanwendung für die Teilnehmer von

IT-Kursen. In der Tabelle legen Sie für jeden Teilnehmer einen Datensatz an, ändern

und pflegen ihn. Schrittweise erarbeiten Sie sich so das Wissen für immer schwierigere

Aufgaben.

Tabellen in der Praxis

Natürlich werden in der Praxis die Daten der SAP-Komponenten nicht in einer einzi-

gen Tabelle gepflegt, sondern auf viele Tabellen verteilt, die über Beziehungen zu

komplexen Datenmodellen verknüpft sind. Doch um die Grundprinzipien zu verste-

hen, genügt uns vorerst eine Tabelle.

2.1 Einstieg in das ABAP Dictionary

Rufen Sie zunächst das ABAP Dictionary auf – entweder über den Navigationspfad

SAP Menü � Werkzeuge � ABAP Workbench � Entwicklung � Dictionary oder über den

Transaktionscode SE11. Der Einstiegsbildschirm des ABAP Dictionarys wird nun an-

gezeigt (siehe Abbildung 2.1).

7107.book Seite 47 Mittwoch, 4. September 2019 11:36 11

2 ABAP Dictionary

48

Abbildung 2.1 Einstieg in das ABAP Dictionary

ABAP Dictionary außerhalb des SAP GUI

Bereits seit dem Release SAP NetWeaver 7.31 besteht mit den ABAP Development

Tools (ADT), auch ABAP in Eclipse genannt, die Möglichkeit, innerhalb der Open-

Source-Entwicklungsumgebung Eclipse ABAP-Programme zu entwickeln. Eclipse ist

eine kostenlose, Java-basierte Entwicklungsumgebung, die vor allem bei Java-Ent-

wicklern sehr beliebt ist.

Für den Einstieg sollten Sie die klassische Entwicklungsumgebung über das SAP GUI

verwenden, die daher auch die Grundlage für die Beispiele in diesem Buch darstellt.

Im Zusammenhang mit dem ABAP Dictionary ist jedoch zu erwähnen, dass es seit SAP

NetWeaver Application Server (AS) ABAP 7.40 einige neue Objekttypen gibt (insbe-

sondere CDS Views), die nur in Eclipse gepflegt werden können. Diesen widmen wir

uns in Kapitel 15, »Core Data Services zur Abbildung von Datenmodellen«.

2.1.1 Datenbanktabellen

Vom Einstiegsbild aus können Sie sich ein Dictionary-Objekt – d. h. eine Datenbank-

tabelle, einen View, einen Datentyp, eine Typgruppe, eine Domäne, eine Suchhilfe

oder ein Sperrobjekt – anzeigen lassen, es ändern oder anlegen. Vorerst soll Sie hier

nur die Arbeit mit Datenbanktabellen interessieren.

In SAP-Systemen gibt es drei Arten von Datenbanktabellen:

� transparente Tabellen

� Pool-Tabellen

� Cluster-Tabellen

7107.book Seite 48 Mittwoch, 4. September 2019 11:36 11

2.1 Einstieg in das ABAP Dictionary

49

2

Bei Pool- und Cluster-Tabellen liegen die Daten in einem zugeordneten Tabellen-Pool

bzw. -Cluster auf der physischen Datenbank. Beide Tabellentypen dienen der Ablage

spezieller Daten, wie beispielsweise Programmparameter, Dynpro-Folgen oder Do-

kumentationen, und können Daten aus mehreren Tabellen gemeinsam in einem

Pool bzw. Cluster halten. Pool- und Cluster-Tabellen dienen üblicherweise nicht

der Speicherung betriebswirtschaftlicher Anwendungsdaten, da diese grundsätzlich

in transparenten Tabellen liegen.

Transparente Tabellen

Wie beschrieben, arbeiten wir ausschließlich mit SAP-Werkzeugen, um auf der physi-

schen Datenbank Objekte anzulegen oder zu pflegen. Transparente Tabellen sind die

einzige Tabellenart, bei der 1:1 zu der im ABAP Dictionary hinterlegten Tabellendefi-

nition auch entsprechende physische Tabellendefinitionen auf der physischen Da-

tenbank angelegt werden.

Ein Tabellen-Pool besteht auf der physischen Datenbank aus nur einer einzigen Ta-

belle. Alle Tabellen, die diesem Pool zugeordnet sind, heißen Pool-Tabellen. In der

Pool-Tabelle sind alle Sätze der Tabellen des Pools abgelegt, die über den Namen der

Pool-Tabelle und Schlüsselfelder identifiziert werden.

Ein Tabellen-Cluster besteht aus mehreren Cluster-Tabellen. Das Tabellen-Cluster fasst

Datensätze mit gleichem Schlüssel aus mehreren Cluster-Tabellen zu einem physi-

schen Datensatz zusammen. Die Anzahl der Datensätze wird hierdurch geringer;

gleichzeitig wird ein Datensatz jedoch länger, sodass häufig Fortsetzungssätze ange-

legt werden müssen.

Nur mit Open SQL

Eine 1:1-Umsetzung wie bei transparenten Tabellen erfolgt bei Cluster- und Pool-Ta-

bellen nicht; deshalb müssen auch keine technischen Einstellungen oder Indizes ge-

pflegt werden. Für die Verarbeitung dieser Tabellentypen sind aber die im ABAP Dic-

tionary gespeicherten Informationen zwingend notwendig. Im »Brandfall« (z. B.

wenn in einem System fehlerhafte Daten korrigiert werden müssen, aber der Trans-

port eines ABAP-Programms zur Durchführung der Datenkorrektur aus irgendwel-

chen Gründen nicht möglich ist) können diese Tabellentypen deshalb auch nicht über

Native SQL, sondern immer nur mit Open SQL verarbeitet werden.

2.1.2 Tabelle anlegen und pflegen

Beim Anlegen einer neuen Tabelle müssen Sie sich zuerst einen Namen für diese Ta-

belle überlegen. Der Tabellenname hat maximal 16 Stellen, wobei nicht zwischen

7107.book Seite 49 Mittwoch, 4. September 2019 11:36 11

2 ABAP Dictionary

50

Groß- und Kleinschreibung unterschieden wird. Beachten müssen Sie, dass – wie bei

fast allen Objekten – unterschiedliche Namensräume für Standard-SAP-Objekte und

kundenindividuelle Objekte verwendet werden.

Nach den Namenskonventionen beginnen Kundenobjekte mit einem Z, Y oder einem

sogenannten Präfixnamensraum. Ein Präfixnamensraum ist eine von Schrägstrichen

eingerahmte, eindeutig bei SAP reservierte Buchstabenfolge, die dem Namen der Ent-

wicklungsobjekte vorangestellt wird und die kein anderer SAP-Kunde in seinen kun-

denindividuellen Objekten verwenden darf – beispielsweise /SAPPRESS/. Damit wird

garantiert, dass Objektnamen wirklich eindeutig sind und es beispielsweise bei Un-

ternehmensfusionen nicht zu Namenskonflikten kommt. Für unsere Übungszwecke

sind jedoch die herkömmlichen Kundennamensräume Z und Y ausreichend. Deshalb

nennen Sie Ihre erste Datenbanktabelle »ZTEILNEHMER« und klicken auf den Button

Anlegen (siehe Abbildung 2.2).

Abbildung 2.2 Datenbanktabelle anlegen

Der Pflegebildschirm des ABAP Dictionarys mit fünf Registerkarten erscheint: Eigen-

schaften, Auslieferung und Pflege, Felder, Eingabehilfe/-prüfung sowie Währungs-/

Mengenfelder. Im Feld Kurzbeschreibung in den Kopfdaten geben Sie einen aussage-

kräftigen, erklärenden Text ein, z. B. »Tabelle der Kursteilnehmer«. Die Registerkarte

Eigenschaften enthält die Paketzuordnung bzw. die Kennzeichnung als lokales Objekt

(Paket $TMP) und wird beim ersten Speichern des Objekts automatisch befüllt.

Auf der Registerkarte Auslieferung und Pflege müssen zwei Felder ausgefüllt werden:

� Auslieferungsklasse

Die Auslieferungsklasse regelt den Transport der Datensätze der Tabelle bei der

Installation oder einem Upgrade, bei einer Mandantenkopie oder dem Transport

7107.book Seite 50 Mittwoch, 4. September 2019 11:36 11

2.1 Einstieg in das ABAP Dictionary

51

2

zu einem anderen SAP-System. Je nach Auslieferungsklasse haben SAP und Kun-

den unterschiedliche Schreibrechte.

Geben Sie in diesem Feld ein »A« für eine Anwendungstabelle der Stamm- und

Bewegungsdaten ein. Stammdaten sind Anwendungsdaten, die sich relativ selten

ändern, wie beispielsweise Materialnummern oder Personalnummern. Bewe-

gungsdaten ändern sich häufig, wie beispielsweise Rechnungspositionen.

Die Tabellen der verschiedenen Auslieferungsklassen werden bei Mandanten-

kopien, Neuinstallationen oder Upgrades unterschiedlich behandelt. Bei einer

Mandantenkopie werden beispielsweise Stamm- und Bewegungsdaten grund-

sätzlich nicht mit kopiert.

� Data Browser/Tabellensicht-Pflege

Die Einstellung im Feld Data Browser/Tabellensicht-Pflege regelt, in welchem

Umfang die SAP-Standardpflegewerkzeuge für die Anzeige und Pflege der Daten-

sätze verwendet werden dürfen. Wenn Sie diese Rechte einschränken, kann es

geschehen, dass beispielsweise im ABAP Dictionary keine neuen Datensätze für

Ihre Tabelle erfasst werden können.

Aus diesem Grund wählen Sie für dieses Feld die Option Anzeige/Pflege erlaubt,

da Sie so für Ihre Arbeit im ABAP Dictionary alle nötigen Rechte haben und neue

Datensätze erfassen oder Datensätze verändern und löschen können (siehe Abbil-

dung 2.3).

Abbildung 2.3 Einstellungen zur Auslieferung und Pflege der Tabelle

Bevor Sie damit jedoch beginnen, sollten Sie den bisherigen Stand der Arbeit sichern,

am einfachsten über den Button Sichern ( ) oder – wie der Button-Tooltip schon

sagt – über die Tastenkombination (Strg)+(S).

Im folgenden Dialogfenster treffen Sie eine wichtige Entscheidung: Sie legen fest, ob

Ihre Tabelle in ein anderes SAP-System transportiert werden kann oder nicht. Soll die

Tabelle transportiert werden, müssen Sie ein Paket angeben. Ein Paket bündelt zusam-

mengehörige Objekte der ABAP Workbench und definiert die Transportschicht, die

7107.book Seite 51 Mittwoch, 4. September 2019 11:36 11

2 ABAP Dictionary

52

wiederum bestimmt, ob Objekte einem transportierbaren Änderungsauftrag zu ei-

nem Zielsystem zugeordnet werden oder ob sie auf dem aktuellen lokalen SAP-Sys-

tem verbleiben.

Transport – ja oder nein?

Es gilt, gut zu überlegen: Im »wirklichen Leben«, d. h. in einer mehrstufigen System-

landschaft, würden Sie von den Systemverantwortlichen den Namen des Pakets er-

fragen und eintragen, weil Sie z. B. auf dem Test- und Entwicklungssystem Objekte

anlegen, die später für ein Produktivsystem bestimmt sind. Für Ihre ersten Gehversu-

che im Übungsbeispiel ist dies jedoch nicht notwendig, sondern es genügt, wenn die

Tabelle und Ihre ersten Reports lokal auf dem Test- und Entwicklungssystem verblei-

ben.

Speichern Sie die Tabelle als Lokales Objekt (siehe Abbildung 2.4). Sie wird damit au-

tomatisch dem Paket $TMP zugeordnet. Objekte dieses Paketes werden nie transpor-

tiert und unterliegen auch keiner Versionsverwaltung.

Abbildung 2.4 Tabelle als lokales Objekt speichern

Im nächsten Schritt tragen Sie auf der Registerkarte Felder (siehe Abbildung 2.5) die

Felder der Tabelle ein und legen fest, ob ein Feld ein Schlüsselfeld ist, ob es auf der Da-

tenbank mit einem Initialwert versehen werden soll und welches Datenelement die

betriebswirtschaftlichen Attribute des Feldes beschreibt:

� Feld

Bei der Wahl des Feldnamens müssen Sie keine Namenskonventionen beachten;

dennoch sollte der Feldname möglichst sinnvoll gewählt sein. Da ein Feld der

Tabelle immer über die Tabelle angesprochen wird, und zwar in der Form Tabel-

lenname-Feldname, ist der Unterschied zwischen Kundenfeldern und SAP-Feldern

hier kein Problem. Der Feldname hat maximal 30 Stellen.

7107.book Seite 52 Mittwoch, 4. September 2019 11:36 11

2.1 Einstieg in das ABAP Dictionary

53

2

Abbildung 2.5 Tabellenfelder pflegen

� Key

Unter Key legen Sie fest, ob ein Feld ein Schlüsselfeld ist. Schlüsselfelder müssen

lückenlos zusammenhängend am Anfang der Tabelle stehen. Über Schlüsselfelder

wird eine Zeile eindeutig identifiziert, und sie dienen als Sortier- und Suchkrite-

rium. Maximal sind 16 Schlüsselfelder möglich.

� Initialwerte

Der Eintrag Initialwert ist interessant, falls das Feld in einem Datensatz leer ist,

d. h. keinen gültigen Wert enthält. Soll das Feld auf der Datenbank, je nach Typ, mit

dem entsprechenden Initialwert vorbelegt werden, beispielsweise eine Integer-

zahl mit dem Wert 0, muss hier ein Eintrag erfolgen; im Übrigen bleibt das Feld

wirklich leer. Der Feldinhalt kann aber auch jederzeit nachträglich mit einem gül-

tigen Wert gefüllt werden.

Die Vorbelegung mit Initialwerten ist in der Regel vorzuziehen, da in dem Feld auf

der Datenbank sonst Nullwerte auftreten können. Diese sind in der Programmie-

rung leicht mit initialen Werten zu verwechseln, was zu unangenehmen Fehlern

führen kann, weil beispielsweise Datenbankabfragen und Joins nicht wie erwartet

funktionieren. Sie sollten daher in der Regel einen Haken in der Spalte Initialwert

setzen.

� Datenelement

In der Spalte Datenelement tragen Sie den Namen eines Datenelements ein bzw.

wählen ein vorgegebenes Datenelement aus. Im Datenelement sind einige Attri-

bute eines Feldes wie Länge und Typ hinterlegt.

7107.book Seite 53 Mittwoch, 4. September 2019 11:36 11

2 ABAP Dictionary

54

Betriebswirtschaftliche und technische Attribute

Eine Besonderheit des ABAP Dictionarys ist, dass die Eigenschaften von Feldern, die

Feldattribute, in der Regel nicht direkt beim Feld abgelegt werden, sondern getrennt

davon in eigenen Dictionary-Objekten. Man unterscheidet hierbei betriebswirt-

schaftliche und technische Attribute:

� Die betriebswirtschaftlichen Attribute eines Feldes liegen im zugehörigen

Datenelement.

� Die technischen Attribute eines Feldes liegen in der zugehörigen Domäne.

Den Namen des Datenelements tragen Sie deshalb in der Spalte Datenelement der

Tabellenpflege ein, den der Domäne beim Datenelement. Letzteren Vorgang betrach-

ten wir in Abschnitt 2.2.1, »Datenelement anlegen«, noch näher.

Diese Zerlegung hat unter anderem den Vorteil, dass Datenelemente und Domänen

als eigene Dictionary-Objekte mehrfach verwendbar sind: Felder verschiedener Ta-

bellen können auf dasselbe Datenelement verweisen, und Änderungen von Feldattri-

buten können an einer Stelle zentral gepflegt werden. Abhängige Objekte werden

dann zur Laufzeit automatisch nachgeneriert.

2.2 Datenelemente und Domänen

Wir durchlaufen nun exemplarisch die Reihenfolge Feld – Datenelement – Domäne

und legen dabei alle Objekte an. Als Beispiel dient zunächst ein Feld, in dem Sie den

Namen des Systemmandanten speichern, d. h. des Mandanten, mit dem Sie sich an-

gemeldet haben. Objekte, wie z. B. Tabellen, sind mandantenunabhängig zentral in der

Datenbank abgelegt und könnten auch aus anderen Mandanten heraus angesprochen

werden. Für die Identifizierung des richtigen Datensatzes ist die Einschränkung auf

den richtigen Mandanten eine große Hilfe.

2.2.1 Datenelement anlegen

Das erste Feld unserer Tabelle ZTEILNEHMER soll MANDANT heißen und ein Schlüsselfeld

sein. Als Datenelement verwenden Sie das bestehende Element MANDT. Tragen Sie diese

Angaben ein, und klicken Sie auf den Button Sichern ((Strg)+(S)). Beachten Sie

anschließend die rechten, blau hinterlegten Spalten der ersten Zeile (siehe Abbil-

dung 2.6). Da das Datenelement MANDT bereits aktiv existiert, wurden alle Attribute des

Datenelements und der entsprechenden Domäne automatisch übernommen, in un-

serem Beispiel der Datentyp, die Länge, die Anzahl der Dezimalstellen (DezStellen)

und eine Kurzbeschreibung. Mehr Arbeit haben Sie für dieses Tabellenfeld nicht zu

leisten.

7107.book Seite 54 Mittwoch, 4. September 2019 11:36 11

2.2 Datenelemente und Domänen

55

2

Abbildung 2.6 Tabellenfeld mit bestehendem Datenelement anlegen

Ein bisschen umfangreicher wird die Angelegenheit, wenn sowohl das Datenelement

als auch die Domäne neu gefunden werden sollen. Denken Sie aber bei der weiteren

Arbeit daran, dass Sie das Rad nicht immer wieder neu erfinden müssen und es durch-

aus eine sinnvolle und bessere Alternative sein kann, wie gezeigt auf bestehende Ob-

jekte wie Datenelemente oder Domänen zurückzugreifen.

Das zweite Feld der Tabelle soll eine eindeutige Teilnehmernummer zwischen 1 und

99.999 beinhalten. Als Feldnamen tragen Sie »TNUMMER« ein, für den Namen des Da-

tenelements müssen Sie nur den Kundennamensraum beachten, im Übrigen können

Sie ihn frei wählen – beispielsweise ZTNUMMER. Nachdem Sie beides eingetragen und

auch dieses Feld über einen Haken in der Spalte Key zum Schlüsselfeld gemacht haben,

sichern Sie Ihre Arbeit wieder.

Im Gegensatz zur ersten Zeile bleiben dieses Mal die blau hinterlegten Felder hinter

der Spalte Datenelement unausgefüllt, da das Datenelement ja noch gar nicht exis-

tiert. Um beim Anlegen eines Datenelements nicht umständlich durch die ABAP

Workbench navigieren zu müssen, verwenden Sie an dieser Stelle die sogenannte Vor-

wärtsnavigation. Hierzu klicken Sie doppelt auf das Objekt, das Sie interessiert – in un-

serem Fall das Datenelement ZTNUMMER –, und das System fragt, ob Sie das Datenele-

ment anlegen möchten (siehe Abbildung 2.7).

Abbildung 2.7 Objekt anlegen

7107.book Seite 55 Mittwoch, 4. September 2019 11:36 11

2 ABAP Dictionary

56

Diese Frage bestätigen Sie mit Ja, und Sie landen im Dialog zur Pflege des Datenele-

ments (siehe Abbildung 2.8).

Abbildung 2.8 Datenelement pflegen

Auf der Registerkarte Datentyp geben Sie die verknüpfte Domäne an. Denken Sie da-

ran, dass Datenelemente und Domänen verschiedene Objekttypen sind. Sie können

deshalb für die neu anzulegende Domäne wieder einen anderen Namen erfinden,

aber auch denselben Namen wie für das Datenelement verwenden.

Im Übrigen ist wiederum nur der Kundennamensraum zu beachten. Durch den Ob-

jekttyp Domäne hat das System kein Problem bei der Identifizierung des richtigen

Objekts. In unserem Beispiel soll die Domäne zur Vereinfachung und Vereinheitli-

chung auch ZTNUMMER heißen. Tragen Sie die Domäne in das entsprechende Feld ein,

und sichern Sie das Datenelement.

Zunächst müssen Sie wieder eine Kurzbeschreibung des Objekts eingeben, z. B. »Da-

tenelement für Teilnehmernummer«. Da das Datenelement ein eigenes Objekt ist,

möchte das System wissen, ob das Objekt transportiert werden soll oder nicht. Sie

müssen deshalb wieder einen Paketnamen angeben. Wie zuvor transportieren Sie

Ihre ersten Gehversuche aber nicht und speichern das Datenelement daher als Lokales

Objekt ab (siehe Abbildung 2.9).

7107.book Seite 56 Mittwoch, 4. September 2019 11:36 11

2.2 Datenelemente und Domänen

57

2

Abbildung 2.9 Datenelement sichern

Auf der Registerkarte Feldbezeichner müssen Sie als Nächstes die Bezeichnungen des

Feldes angeben, die später in Dialogprogrammen und Listen ausgegeben werden. In

Bildschirmmasken späterer Dialogprogramme können Sie das Tabellenfeld z. B. mit

seinem Kurz-, Mittel- oder Langtext einbauen; in Listen erhält die Spalte für das Feld

eine Überschrift. Alle Texte hierzu pflegen Sie an dieser Stelle und füllen dazu die ent-

sprechenden Felder der Spalte Feldbezeichner mit den Angaben aus Abbildung 2.10.

Nachdem Sie Ihre Eingaben gesichert haben, rechnet das System die Textlängen aus

und füllt die Werte der Spalte Länge. Die mindestens notwendigen Voraussetzungen,

um ein Datenelement anzulegen, sind somit erfüllt.

Abbildung 2.10 Feldbezeichner pflegen

Nach einem Klick auf den Button Dokumentation (in der Funktionsleiste in Abbil-

dung 2.10 zu sehen) wird Ihnen der Bildschirm eines anderen SAP-Werkzeugs ange-

7107.book Seite 57 Mittwoch, 4. September 2019 11:36 11

2 ABAP Dictionary

58

zeigt: des SAPscript-Editors. SAPscript ist ein schon in die Jahre gekommenes, aber un-

verwüstliches Tool. Neben seinem Einsatz in der Onlinedokumentation wird es in der

SAP-Welt unter anderem für die Formulargestaltung verwendet und verfügt über ei-

nen eigenen Editor und einen eigenen Kommandosatz. Klicken Sie einfach in den Ab-

schnitt &DEFINITION&, und schreiben Sie den Hilfetext »Bitte geben Sie eine Teilneh-

mernummer zwischen 1 und 99999 ein.« in die Zeile unterhalb des Eintrags &

DEFINITION& (siehe Abbildung 2.11). Sichern Ihre Eingabe, und kehren Sie über die

(F3)-Taste zur Pflege des Datenelements zurück.

Abbildung 2.11 Hilfetext pflegen

Dokumentation

Da die Erfahrung zeigt, dass man sich als Entwickler ebenso wie als Anwender zu oft

über schlecht dokumentierte Programme anderer Entwickler ärgert, werden wir es an

dieser Stelle natürlich besser machen und legen einen erklärenden Text für unser Da-

tenelement an. Falls später jemand nicht weiß, wofür dieses Feld gedacht ist – ob-

wohl es z. B. vom Namen her für ein Projekt sinnvoll erscheint –, erhält die Person eine

sachliche Erklärung und Hilfestellung für die Eingabe oder Verwendung in eigenen

Programmen.

7107.book Seite 58 Mittwoch, 4. September 2019 11:36 11

2.2 Datenelemente und Domänen

59

2

Wie alle Texte wird auch die Dokumentation sprachabhängig in der Anmeldesprache

gepflegt, in unserem Beispiel in Deutsch. Bei Bedarf werden die Texte und Dokumen-

tationen mittels eines separaten Werkzeugs in die Zielsprache übersetzt.

2.2.2 Domäne anlegen

Auf dem Pflegebildschirm des Datenelements haben Sie auf der Registerkarte

Datentyp bereits den Domänennamen angegeben. Nachdem die Arbeit mit dem Da-

tenelement vorerst abgeschlossen ist, können wir diese Domäne anlegen. Am besten

arbeiten Sie dabei wieder mit der Vorwärtsnavigation, d. h. einem Doppelklick auf

den Domänennamen ZTNUMMER.

Sie werden nun gefragt, ob Sie die Domäne anlegen möchten, und beantworten die

Frage mit Ja. Daraufhin wird Ihnen der Pflegebildschirm für die Domäne angezeigt

(siehe Abbildung 2.12). Bevor wir uns den Registerkarten zuwenden, müssen Sie wie-

der eine Kurzbeschreibung eingeben, beispielsweise »Domäne für Teilnehmernum-

mer«.

Abbildung 2.12 Domäne pflegen

Auf der Registerkarte Definition müssen Sie zunächst den Datentyp der Domäne an-

geben. In der Praxis sollten Sie viel früher, bereits bei der Konzeption der Tabelle »auf

dem Papier«, alle Attribute des Feldes festlegen. An dieser Stelle können Sie aber über

die (F4)-Taste sehen, welche Datentypen im ABAP Dictionary enthalten sind und über

7107.book Seite 59 Mittwoch, 4. September 2019 11:36 11

2 ABAP Dictionary

60

welche Eigenschaften sie jeweils verfügen. Für unser Beispiel wählen Sie als Daten-

typ NUMC, d. h. eine Zeichenfolge nur mit Ziffern und der Ausgabelänge 5. Anschließend

sichern Sie das Domänenobjekt wieder als Lokales Objekt.

Nach dieser Deklaration der Domäne könnte es zusätzlich sinnvoll sein, die gültigen

Werte für das Tabellenfeld einzugrenzen. Auf dem Pflegebildschirm für die Domäne

existiert hierzu die Registerkarte Wertebereich (siehe Abbildung 2.13).

Abbildung 2.13 Wertebereich einer Domäne festlegen

Grundsätzlich sind hier drei verschiedene Eingrenzungen möglich: Einzelwerte, In-

tervalle oder eine Wertetabelle. Falls Sie in diese Felder etwas eintragen, akzeptiert das

System nur noch die hier definierten und damit gültigen Werte; alle anderen Einga-

ben werden abgewiesen. Beachten Sie jedoch, dass die Reaktion des Systems vom Da-

tentyp abhängig ist. So können Festwerte, d. h. Einzelwerte und Intervalle, nicht für alle

Datentypen eingetragen werden, und auch die Eingabeprüfung bei Dialogbildschir-

men hängt vom Datentyp ab:

� Einzelwerte

Bei der Pflege von Einzelwerten wird jeder gültige Wert einzeln aufgeführt und

beschrieben. Die Pflege von Einzelwerten in der Domäne ist nur bei einer relativ

kleinen Anzahl zulässiger Eingaben sinnvoll.

7107.book Seite 60 Mittwoch, 4. September 2019 11:36 11

2.2 Datenelemente und Domänen

61

2

� Intervalle

Pflegt man in der Domäne gültige Intervalle ein, wird jeweils der kleinste und der

größte Wert eines Intervalls angegeben. Alle Werte dazwischen sind ebenfalls gül-

tig, einschließlich der Grenzwerte.

� Wertetabelle

Das Arbeiten mit einer Wertetabelle ist bei großen Datenmengen zu empfehlen,

wenn absehbar ist, dass Eingabeprüfungen für das Feld anhand einer entsprechen-

den Tabelle erfolgen sollen. Beachten Sie, dass nur durch das Eintragen der Wer-

tetabelle noch keine Prüfung eingerichtet wird. Hierzu muss erst noch ein

Fremdschlüssel für das Tabellenfeld implementiert werden. Auf die Arbeit mit

Fremdschlüsseln gehen wir in Abschnitt 7.2.3, »Fremdschlüssel pflegen«, ein.

In diesem Beispiel verzichten wir darauf, Festwerte oder Wertetabellen einzutragen,

und sichern die Domäne. Um formale Fehler auszuschließen, sollten Sie im näch-

sten Schritt die Domäne prüfen, entweder über den Menüpfad Domäne � Prüfen �

Prüfen (siehe Abbildung 2.14), über die Tastenkombination (Strg)+(F2) oder über

den Prüfen-Button ( ). Im günstigen Fall erhalten Sie die Meldung, dass das

System keine Inkonsistenzen gefunden hat, und können dazu übergehen, die

Domäne zu aktivieren.

Abbildung 2.14 Domäne prüfen

Noch hat die Domäne den Status neu (überarbeitet) (siehe Abbildung 2.15). Um sie in

einem Datenelement verwenden zu können, muss sie den Status aktiv haben – dies

7107.book Seite 61 Mittwoch, 4. September 2019 11:36 11

2 ABAP Dictionary

62

erreichen Sie, indem Sie die Domäne aktivieren. Auch hierfür gibt es wieder die Mög-

lichkeiten, über das Menü zu navigieren (Domäne � Aktivieren), eine Tastenkombina-

tion zu verwenden ((Strg)+(F3)) oder den Aktivieren-Button ( ) anzuklicken.

Abbildung 2.15 Domäne aktivieren

Im folgenden Dialogfenster erhalten Sie eine Übersicht über alle momentan inakti-

ven Objekte. Die Domäne ist bereits markiert (siehe Abbildung 2.16). Bei Bedarf kön-

nen Sie die anderen, inaktiven Objekte ebenfalls markieren und aktivieren. Falls die

Arbeit an diesen Objekten aber noch nicht abgeschlossen ist, sollten Sie keine unnö-

tigen Risiken eingehen und wie geplant nur die gewünschte Domäne aktivieren.

Abbildung 2.16 Objekte aktivieren

Bestätigen Sie Ihre Auswahl über den Button mit dem grünen Haken rechts unten

bzw. über die (¢)-Taste. Sie erhalten unten in der Statuszeile die Meldung, dass das

Objekt aktiviert wurde. Zur Kontrolle können Sie auch den Status vergleichen, der jetzt

auf aktiv steht (siehe Abbildung 2.17). Die Domäne ist damit systemglobal verwendbar.

Mit der Taste (F3) verlassen Sie den Pflegebildschirm und kehren zum Datenelement

zurück.

7107.book Seite 62 Mittwoch, 4. September 2019 11:36 11

2.2 Datenelemente und Domänen

63

2

Abbildung 2.17 Aktivierte Domäne

2.2.3 Datenelement prüfen und aktivieren

Zum Einstieg sollten Sie auch vor dem Aktivieren des Datenelements eine Konsis-

tenzprüfung durchführen. Hierzu arbeiten Sie wieder mit dem Menü, der Tastenkom-

bination oder dem Prüfen-Button ( , siehe Abbildung 2.18). Im Idealfall haben Sie al-

les richtig gemacht und können mit der Aktivierung des Datenelements fortfahren.

Abbildung 2.18 Datenelement prüfen

Dieser Arbeitsschritt entspricht dem beschriebenen Vorgehen für die Domäne: Akti-

vieren Sie das Datenelement über das Menü oder den Aktivieren-Button ( ), bestäti-

gen Sie im Folgedialog die Aktivierung des Datenelements, und prüfen Sie, ob die Ak-

tivierung erfolgreich war, d. h., ob der Status aktiv für das Datenelement und die

entsprechende Meldung in der Statuszeile angezeigt werden. Anschließend kehren

Sie mit der Taste (F3) zur Bearbeitung der Tabellenfelder zurück.

7107.book Seite 63 Mittwoch, 4. September 2019 11:36 11

2 ABAP Dictionary

64

Um in der Tabelle sinnvolle Datensätze ablegen zu können, sollte diese für unser Bei-

spielszenario um weitere Felder ergänzt werden. Es bleibt Ihnen selbst überlassen, wie

viele Felder Sie – zur Übung – in die Tabelle einpflegen möchten. Für das weitere Vor-

gehen genügen vorerst vier Felder, um einen kleinen Datensatz in die Tabelle einzu-

pflegen. Das Ergebnis sollte dann wie in Abbildung 2.19 aussehen.

Abbildung 2.19 Beispieltabelle mit vier Feldern

Tabelle prüfen

Vergessen Sie nicht, auch die Tabelle über den Prüfen-Button ( ), über die Tasten-

kombination (Strg)+(F2) oder das Menü auf Inkonsistenzen hin zu überprüfen. Die-

sen Schritt sollten Sie sich von Anfang an angewöhnen, und er sollte Ihnen in Fleisch

und Blut übergehen.

2.2.4 Technische Einstellungen der Tabelle pflegen

Noch liegt die Tabelle lediglich im ABAP Dictionary. Deshalb müssen Sie vor der Ak-

tivierung noch die technischen Einstellungen pflegen. Sie legen dort Speicherparame-

ter fest und bestimmen, ob und wie Datensätze beim Lesen aus der Datenbank in ei-

nem Lesepuffer gehalten werden sollen.

Zu den technischen Einstellungen navigieren Sie aus dem Tabellenpflegebildschirm

des ABAP Dictionarys über den Menüpfad Springen � Technische Einstellungen oder

über den Button Technische Einstellungen. Es erscheint der entsprechende Pflegebild-

schirm (siehe Abbildung 2.20).

In unserem Beispiel verwenden wir für die Datenart den Wert APPL0 (Stammdaten in

transparenten Tabellen). Sie legen damit bereits den richtigen physischen Bereich für

die Tabelle auf der Datenbank fest. Der physische Bereich, auch Tablespace genannt,

7107.book Seite 64 Mittwoch, 4. September 2019 11:36 11

2.2 Datenelemente und Domänen

65

2

ist je nach Konfiguration des Datenbanksystems eine Zuordnung zu einem physi-

schen Ablageort wie z. B. einem Verzeichnis oder Laufwerk der Datenbank.

Abbildung 2.20 Technische Einstellungen der Tabelle pflegen

Je nach Datenbanksystem, Datenvolumen und der Anzahl von Zugriffen beeinflusst

diese Entscheidung das spätere Laufzeitverhalten der Tabelle und soll die Lese- und

Schreibzugriffe optimieren. Stammdaten oder Customizing-Daten für die System-

einstellungen können in jeweils eigenen physischen Datenbankbereichen abgespei-

chert werden. Auch das Pufferungsverhalten, das das System beim Zugriff auf die Ta-

bellen an den Tag legt, kann sich je nach Datenart unterscheiden. Insgesamt handelt

es sich um Optimierungen, die das System vornimmt und bei denen Sie es unterstüt-

zen, indem Sie Ihre Daten mit Hilfe der Datenart kategorisieren.

Im Feld Größenkategorie geben Sie »0« ein, da wir für dieses Übungsbeispiel nicht

viele Datensätze erwarten. Die Größenkategorie legt die Größe des initialen Speicher-

platzes für die Tabelle auf der Datenbank fest. Wählen Sie den Platz zu groß, reservie-

ren Sie Bereiche, die ungenutzt bleiben; wählen Sie den Platz zu klein, müssen Sie häu-

figer reorganisieren.

7107.book Seite 65 Mittwoch, 4. September 2019 11:36 11

2 ABAP Dictionary

66

Kleinste Kategorie

Im Hilfefenster zu den Größenkategorien erscheinen Beispielzahlen für die zu erwar-

tenden Datensätze. Lassen Sie sich durch diese Zahlen nicht irritieren: Diese Vor-

schlagswerte sollen Ihnen einfach einen Anhaltspunkt geben, welche Größenord-

nungen als klein, mittel, groß usw. gelten dürfen. Für unser Beispiel reicht einfach die

kleinste der vier Größenkategorien aus.

Für die Pufferungsart wählen Sie Pufferung nicht erlaubt. Bei der Pufferung geht es all-

gemein darum, dass die Tabelle zum Lesen ganz oder teilweise in den Arbeitsspeicher

geladen wird – es wird sozusagen »auf Vorrat« gelesen. Aus Performancegründen

empfiehlt sich die Pufferung von Tabellen oder Datensätzen bei großen Tabellen mit

vielen Lesezugriffen und relativ wenigen Schreibzugriffen. Bei bestimmten Leseope-

rationen, beispielsweise wenn Summen gebildet werden, wird die Pufferung in jedem

Fall umgangen, und es erfolgt ein Lesezugriff auf die Datenbank, anstatt die Anfrage

aus dem Puffer des Applikationsservers zu beantworten. Bei unserem Übungsbeispiel

arbeiten wir jedoch nur mit einer sehr kleinen Tabelle und wenigen Zugriffen, sodass

das Pufferungsverhalten nicht ins Gewicht fällt.

Nach diesen Einstellungen kehren Sie mit der Taste (F3) zur Tabellenpflege zurück

und aktivieren die Tabelle. Den Erfolg erkennen Sie an die Meldung in der Statuszeile

(»Objekt wurde aktiviert«), aber auch am Status der Tabelle, der jetzt auf aktiv steht

(siehe Abbildung 2.21).

Abbildung 2.21 Aktivierte Tabelle

Standarderweiterungskategorie ausreichend

Lassen Sie sich nach der erfolgreichen Aktivierung nicht irritieren, wenn der Hinweis

erscheint, dass bei der Aktivierung Warnungen aufgetreten sind. Wenn Sie das Proto-

koll der Aktivierung anzeigen lassen, wird ersichtlich, worin die Warnung besteht:

7107.book Seite 66 Mittwoch, 4. September 2019 11:36 11

2.3 Datensätze erfassen

67

2

Das System weist darauf hin, dass der Tabelle noch keine Erweiterungskategorie zu-

gewiesen wurde. Der Hintergrund dieser harmlosen Warnung ist, dass jede Tabelle

und Struktur im ABAP Dictionary mit einer Erweiterungskategorie klassifiziert wer-

den kann, die bestimmt, wie die Tabelle in Zukunft erweitert werden kann. Die War-

nung weist darauf hin, dass hierfür der Standardvorschlag des Systems übernommen

wurde – dies ist für uns im Moment völlig ausreichend.

2.3 Datensätze erfassen

Bereits jetzt können Sie aus dem Pflegedialog heraus Datensätze für die Tabelle er-

fassen. Um einige Datensätze in die Tabelle zu schreiben, navigieren Sie über den

Menüpfad Hilfsmittel � Tabelleninhalt � Einträge erfassen (siehe Abbildung 2.22) in ei-

nen Pflegedialog, in dem Sie Datensätze erfassen und sichern können (siehe Abbil-

dung 2.23).

Abbildung 2.22 Einträge in Tabelle erfassen

Abbildung 2.23 Pflegedialog zum Erfassen von Datensätzen

7107.book Seite 67 Mittwoch, 4. September 2019 11:36 11

2 ABAP Dictionary

68

2.3.1 Datensätze eingeben

Zum Testen geben Sie drei Datensätze ein, jeweils eine Teilnehmernummer (im Feld

TNUMMER), einen Teilnehmernamen (im Feld TNAME) und den Geburtstag des Teil-

nehmers (im Feld TGEBURTSDATUM). Das Feld MANDANT ist in der Hintergrundfarbe

hinterlegt und nicht eingabebereit, da die automatische Mandantenbehandlung, auf

die wir in Abschnitt 9.3, »Open-SQL-Anweisungen«, noch einmal zurückkommen

werden, in dieses Feld selbstständig den Anmeldemandanten einträgt. Schlüsselfel-

der, in unserem Beispiel die Teilnehmernummer, sind gelb hinterlegt, die anderen

Felder weiß. Sichern Sie über den Sichern-Button ( ) jeden einzelnen Datensatz. In

der Statuszeile erhalten Sie nach dem Sichern jedes Satzes die Meldung »Datensatz

erfolgreich weggeschrieben«.

Zur Kontrolle, ob die Dokumentation beim Datenelement sauber eingebaut wurde,

können Sie bereits hier das Eingabefeld für das Geburtsdatum fokussieren, d. h. ankli-

cken, und die Taste (F1) drücken. Haben Sie alles richtig gemacht, erscheint in einem

neuen Fenster die betriebswirtschaftliche Hilfe (F1-Hilfe). Falls Sie Festwerte in der

Domäne verankert haben, lässt sich das über die Wertehilfe prüfen, die Sie mit der

Taste (F4) aufrufen. Anschließend kehren Sie über den Zurück-Button ( ) oder die

Taste (F3) in den Pflegedialog der Tabelle zurück.

2.3.2 Tabelleninhalt anzeigen

Aus dem Pflegedialog heraus können Sie sich die Datensätze der Tabelle zur Prüfung

ansehen. Navigieren Sie hierzu, wie eben gezeigt, über den Pfad Hilfsmittel � Tabellen-

inhalt, wählen Sie nun aber Anzeigen. Um bestimmte Sätze zu selektieren, könnten Sie

nun die Auswahl eingrenzen. Sie möchten sich aber alle Datensätze ansehen – d. h. die,

die Sie gerade eingepflegt haben – und klicken daher direkt auf den Ausführen-Button

( , siehe Abbildung 2.24).

Abbildung 2.24 Tabelleninhalt anzeigen

7107.book Seite 68 Mittwoch, 4. September 2019 11:36 11

2.3 Datensätze erfassen

69

2

Wenn Sie nun eine Liste wie in Abbildung 2.25 sehen, hat alles wie gewünscht geklappt.

Natürlich sind Tabellen in der Praxis ein wenig umfangreicher, und viele Möglichkei-

ten des ABAP Dictionarys haben wir bislang noch nicht erläutert. Aber für den Einstieg

in ABAP liegt das Wesentliche bereits hinter Ihnen: Sie haben eine Tabelle angelegt,

mit Daten gefüllt und können sich ab sofort mit voller Kraft der ABAP-Programmie-

rung zuwenden.

Abbildung 2.25 Datensätze anzeigen

7107.book Seite 69 Mittwoch, 4. September 2019 11:36 11

15

Einleitung

Dieses Buch ist auch in der fünften Auflage ein Lehr- und Lernbuch für alle Interes-

sierten, die in die Welt der ABAP-Programmierung einsteigen möchten. Diesem Ziel

ordnet es einiges unter: An manchen Stellen »lügt« das Buch, indem es vorgibt, alles

sei ganz unkompliziert. Es vereinfacht, indem es technische und betriebswirtschaft-

liche Probleme auf ein Minimum reduziert. Es nimmt gewisse Lücken in Kauf, weil es

das Thema ABAP nicht in epischer Breite behandeln will, sondern sich auf einen the-

matischen Kern und den roten Faden zum Lernziel beschränkt. Denn dieses Buch

möchte Ihnen vor allem eines vermitteln: Erfolgserlebnisse.

»Einstieg in ABAP« kann keinen allgemeinen SAP-Grundlagenkurs ersetzen, ebenso

wenig wie vertiefende Literatur zu speziellen ABAP-Themen. Das Buch erhebt auch

keinen Anspruch auf Vollständigkeit. Es möchte kein Trockenkurs sein, sondern Sie

zum Lernen am und zum Arbeiten im SAP-System motivieren. Alle hierfür relevanten

Arbeitsschritte werden ausführlich mit Beispielen, Hintergrundinformationen und

Quellcodebeschreibungen erklärt.

An wen richtet sich dieses Buch?

Dieses Buch ist für Entwickler geschrieben, in deren Firmen ein SAP-System einge-

führt wird. Es richtet sich an Berater und Projektleiter, die ABAP-Quellcode lesen und

verstehen sowie einige Änderungen selbst vornehmen möchten. Außerdem ist es für

Studenten und Auszubildende geschrieben, die ABAP im Rahmen ihrer Berufsausbil-

dung erlernen. Besondere Vorkenntnisse sind nicht erforderlich, auch wenn sich ein-

zelne Abschnitte an Programmierer mit Vorerfahrungen aus anderen Programmier-

sprachen wenden.

Über dieses Buch

Sie werden vom einfachsten ABAP-Report bis hin zur modularisierten Ablaufsteue-

rung geführt. Auch wichtige Arbeiten zur Tabellenpflege im ABAP Dictionary und

komplexe Datenübergabestrukturen zwischen Reports kommen nicht zu kurz. Au-

ßerdem lernen Sie die datenbanknahe Programmierung mit CDS Views kennen. Hier-

bei wird ein einfaches betriebswirtschaftliches Beispiel, eine fiktive Anwendung zur

Verwaltung der Teilnehmer von IT-Kursen, durchgängig mitgeführt und immer wie-

der verwendet, um die Theorie unmittelbar in der Praxis anzuwenden. Der Schwer-

punkt dieses Buches liegt demnach auf der Vermittlung und Aneignung von ABAP-

Wissen und nicht auf betriebswirtschaftlichen Zusammenhängen und Prozessen.

7107.book Seite 15 Mittwoch, 4. September 2019 11:36 11

Einleitung

16

Neuerungen in der fünften Auflage

Die SAP-Welt dreht sich schneller denn je weiter, und davon sind die Programmier-

sprache ABAP und ihre natürliche Umgebung, der ABAP-Applikationsserver, in beson-

ders starkem Maße betroffen. Auch wenn viele Weiterentwicklungen eher fortge-

schrittene Programmierer betreffen und in diesem Buch nicht vertieft betrachtet

werden können, haben wir ihnen so gut wie möglich Rechnung getragen und Ver-

weise auf aktuelle Themen wie SAP Fiori und SAP HANA an passenden Stellen einge-

fügt. Vielleicht möchten Sie auf dieser Basis auf eigene Faust bzw. zu einem späteren

Zeitpunkt über den Tellerrand des ABAP-Einsteigers schauen.

Es gibt in der fünften Auflage gegenüber der Vorauflage zwei neue Kapitel, in denen

die Themen ABAP in Eclipse und Core Data Services (CDS) behandelt werden. Diese

Themen sind besonders relevant für die moderne ABAP-Programmierung.

Die Gemeinde der ABAP-Programmierer erlebt heute erfreulicherweise Zuwachs von

Programmierern, die Erfahrungen mit den unterschiedlichsten Programmierspra-

chen mitbringen. Waren es früher vor allem erfahrene COBOL-Programmierer und

Experten ohne vorherige Programmiererfahrung, die die Gemeinde bereicherten,

kommen heute Webentwickler, Java-Programmierer, Entwickler mit Erfahrung in den

modernen Skriptsprachen sowie in cloudbasierten Programmiermodellen und viele

andere hinzu. Die ABAP-Welt ist heute auch weniger in sich geschlossen als noch vor

einigen Jahren. Dieser Tatsache ist es geschuldet, dass in diesem Buch eine Vielzahl

von Bezügen zu Themen auftauchen, auf die wir nicht vertieft eingehen können. In

diesem Fall vermitteln wir Ihnen die Grundlagen zur ersten Einordnung des Themas

und verweisen auf andere Bücher, die das jeweilige Thema ausführlich behandeln.

Wie können Sie mit diesem Buch arbeiten?

In diesem Buch finden Sie mehrere Orientierungshilfen. Die folgenden Symbole hel-

fen Ihnen dabei, sich schneller zu orientieren:

� Tipp: Dieses Symbol steht an Stellen, die spezielle Tipps und Empfehlungen bereit-

halten, die Ihnen die Arbeit erleichtern können.

� Hinweis: Hinweise geben Informationen zu weiterführenden Themen, zu weite-

ren Quellen oder wichtigen Inhalten, die Sie sich merken sollten.

� Achtung: Dieses Symbol warnt Sie vor Fallstricken und typischen Fehlern.

� Beispiel: Unter diesem Symbol finden Sie Szenarien und Beispiele aus der Praxis.

Systemvoraussetzungen

Um von diesem Buch optimal profitieren zu können, sollten Sie einige Voraussetzun-

gen mitbringen: Ideal wäre es sicherlich, sich mit SAP-Grundlagen wie der Navigation

im Hauptmenü schon vorab beschäftigt zu haben. Auch Erfahrungen mit allgemeiner

7107.book Seite 16 Mittwoch, 4. September 2019 11:36 11

Einleitung

17

Programmierlogik aus anderen Programmiersprachen, mit Makros oder Skripten

sind für den Lernerfolg förderlich. Ideal wäre auch der Zugang zu einem SAP-System

mit den entsprechenden Berechtigungen – hier genügen zum großen Teil aber auch

die SAP-Trial-Systeme.

SAP-Trial-Systeme

Bei den SAP-Trial-Systemen, auch ABAP-Trial-Systeme genannt, handelt es sich um

kostenlose, von SAP zu Lehr- und Testzwecken bereitgestellte, persönlich nutzbare

ABAP-Systeme. Den einfachsten Einstieg bietet die SAP Cloud Appliance Library

(http://cal.sap.com). Auf dieser Webseite bietet SAP eine Vielzahl von Trial-Versionen

für viele unterschiedliche SAP-Softwareprodukte. Einige davon sind kostenpflichtig,

doch die meisten können nahezu kostenlos bezogen werden.

Diese Testsysteme laden Sie nicht wie das sogenannte Mini-SAP-System in früheren

Releases herunter und installieren es auf Ihrem eigenen Rechner, sondern nutzen

Cloud-Dienstleister wie Amazon Web Services, um Ihr persönliches Testsystem in Ih-

rer Amazon-Cloud oder bei einem vergleichbaren Anbieter zu installieren.

Ein Hinweis, um böse Überraschungen zu vermeiden: Durch die Nutzung des Cloud-

Dienstleisters entstehen Ihnen Kosten, die Sie sorgfältig kontrollieren sollten, wenn

Sie ein solches System nutzen. Studieren Sie die Preisliste, damit Sie wissen, welcher

Betrag für die Nutzung auf Sie zukommt. Normalerweise erfolgt die Bezahlung pro

Stunde, in der das System aktiv ist. Achten Sie daher stets darauf, Ihr System herun-

terzufahren, wenn Sie für den Tag damit fertig sind, und löschen Sie es, wenn Sie es

nicht mehr benötigen.

Wenn Sie ein lokal installiertes System bevorzugen, prüfen Sie im SAP Developer Cen-

ter (https://developers.sap.com/) oder im SAP Store (https://www.sapstore.com/), ob

aktuell ein Trial-System zur lokalen Installation verfügbar ist.

Ob lokal oder in der Cloud: Das ABAP-Trial-System stellt die ABAP-Entwicklungs-

umgebung bereit – mehr benötigen Sie für den Lernerfolg mit diesem Buch nicht.

Die Beispiele und Abbildungen in diesem Buch beziehen sich auf SAP NetWeaver Ap-

plication Server ABAP 7.51 SP 02, können aber auch problemlos mit neueren Releases

genutzt werden. (Das zum Zeitpunkt der Drucklegung dieses Buches neueste Release

ist ABAP 7.53.)

Kapitelübersicht und Aufbau

Kapitel 1, »ABAP und die ersten Schritte im SAP-System«, vermittelt Ihnen das für den

Einstieg in ABAP notwendige Wissen über die organisatorische und technische Archi-

tektur von SAP-Systemen und die Entwicklungsvoraussetzungen. Ferner wird die Ar-

7107.book Seite 17 Mittwoch, 4. September 2019 11:36 11

Einleitung

18

beitsteilung zwischen der Laufzeitumgebung und den Anwendungsprogrammen ge-

zeigt sowie die Struktur von ABAP-Reports.

Kapitel 2, »ABAP Dictionary«, liefert einen Überblick über den Sinn und Zweck des

ABAP Dictionarys. Am Beispiel einer transparenten Tabelle erlernen Sie das Anlegen

einer Tabelle bis hin zum Erfassen und Anzeigen von Tabelleneinträgen und alle not-

wendigen Arbeiten mit Datenelementen, Domänen und technischen Einstellungen.

In Kapitel 3, »Programmieren im ABAP Editor«, legen Sie Ihren ersten ABAP-Report

an, pflegen dessen Eigenschaften, erstellen den Quellcode und führen diesen aus.

Gleichzeitig lernen Sie die ersten ABAP-Anweisungen und die notwendige Syntax

kennen.

Das Grundrechnen mit Variablen üben Sie in Kapitel 4, »Felder und Berechnungen«;

Sie betrachten die Eigenschaften von Datenobjekten und den Unterschied zwischen

Kompatibilität und Konvertibilität. Gleichzeitig lernen Sie einige Kniffe für eine bes-

sere Listaufbereitung kennen.

In Kapitel 5, »Mit Zeichenketten arbeiten«, arbeiten Sie mit Zeichenketten und führen

String-Operationen in verschiedenen Varianten aus. Sie suchen Teil-Strings und mo-

difizieren Zeichenketten.

Kapitel 6, »Debugging von Programmen«, ist dem Verfolgen des Programmablaufs

und dem Suchen nach Programmfehlern gewidmet. Sie arbeiten zu diesem Zweck mit

dem ABAP Debugger und seinen wichtigsten Modi. Das schichtenorientierte Debug-

ging wird in diesem Rahmen vorgestellt.

In Kapitel 7, »Transparente Datenbanktabellen bearbeiten«, erweitern und modifizie-

ren Sie eine transparente Tabelle, lernen, was ein Fremdschlüssel ist, und bauen Prü-

fungen für die Tabelleninhalte ein. Hierzu arbeiten Sie mit Festwerten in der Domäne,

mit Wertetabellen und Prüftabellen. Außerdem lernen Sie Besonderheiten bei Wäh-

rungs- und Mengenfeldern kennen.

In Kapitel 8, »Rechnen mit Datum und Zeit, Mengen und Währungen«, deklarieren Sie

Datums- und Zeitfelder, verarbeiten diese und betrachten deren besondere Eigen-

schaften. Dem Verständnis dienen viele Beispiele, die auch im ABAP Debugger ver-

folgt und beschrieben werden.

Den Inhalt einer Datenbanktabelle modifizieren Sie in Kapitel 9, »Mit Daten in einer

Datenbanktabelle arbeiten«. Sie fügen neue Zeilen über ABAP-Anweisungen ein und

ändern und löschen bestehende Zeilen. Auch die Risiken beim Löschen und der Da-

tenmanipulation werden gezeigt.

Das Anwendungsbeispiel wird komplexer: In Kapitel 10, »Programmablaufsteuerung

und logische Ausdrücke«, treffen Sie Fallunterscheidungen, bauen Kontrollstruktu-

ren und Verzweigungen ein und lernen logische Ausdrücke kennen.

7107.book Seite 18 Mittwoch, 4. September 2019 11:36 11

Einleitung

19

In Kapitel 11, »Selektionsbildschirme«, lernen Sie, einen Report mit Eingabewerten für

den Programmlauf auf einem Selektionsbildschirm zu versorgen. Sie erarbeiten sich

einfache und komplexe Selektionen und Selektionstexte und gestalten den Selekti-

onsbildschirm völlig frei. Außerdem lernen Sie, was Textsymbole, Nachrichten und

Varianten bedeuten, insbesondere im Zusammenhang mit dem Selektionsbild-

schirm.

Kapitel 12, »Interne Tabellen«, zeigt interne Tabellen, deren Bedeutung und verschie-

dene Formen. Sie erfahren, wie Sie eine interne Tabelle definieren, befüllen und zei-

lenweise verarbeiten. Zum besseren Verständnis wird auch in diesem Arbeitsschritt

besonderer Wert auf die Ablaufverfolgung im ABAP Debugger gelegt.

In Kapitel 13, »Modularisierung von Programmen«, erfahren Sie, was Quelltextmo-

dule, interne und externe Unterprogramme sowie Funktionsbausteine sind. Bei die-

ser Gelegenheit lernen Sie auch eine Möglichkeit für den Datenexport aus dem SAP-

System kennen. Ein weiterer wichtiger Punkt dieses Kapitels ist die Übergabe von

Daten und Datenstrukturen an gerufene Module.

In Kapitel 14, »ABAP in Eclipse«, beschäftigen wir uns mit der neuen, Eclipse-basierten

ABAP-Entwicklungsumgebung. Wir zeigen Ihnen Download und Installation der Soft-

ware, die Verbindung mit einem ABAP-System und machen dann die ersten Schritte

in der neuen Umgebung.

Kapitel 15, »Core Data Services zur Abbildung von Datenmodellen«, führt Sie in die

Welt der CDS Views und macht Sie mit dem vielleicht wichtigsten neuen Entwick-

lungswerkzeug vertraut, das erst in den letzten Jahren Einzug in die SAP-Welt gehalten

hat. Sie lernen, wie Sie CDS Views anlegen und mithilfe von Assoziationen mit ande-

ren Views und Tabellen verknüpfen. Sie erfahren, wie Sie mithilfe von Annotationen

Ihren CDS View um Metadaten anreichern, die von zahlreichen Frameworks genutzt

werden, um Ihnen das Entwicklerleben zu erleichtern.

Kapitel 16, »Weiterführende Themen«, gibt einen Ausblick und Vorgeschmack auf die

zahlreichen Neuerungen, die in der SAP-Welt Einzug gehalten haben. Auch wenn ein

Einsteigerbuch fortgeschrittene Themen wie Web Dynpro, OData-Services und cloud-

basierte Entwicklung nicht in der Tiefe behandeln kann, kann es doch einen groben

Überblick vermitteln und die wichtigsten Themen auf Ihrer geistigen SAP-Landkarte

verorten.

Download der Codebeispiele

Um Ihnen zeitraubende Tipparbeit zu ersparen, können Sie die Quellcodes zu allen

Beispiel-Listings von der Seite zu diesem Buch auf der Website von SAP PRESS herun-

terladen (http://www.sap-press.de/4922).

7107.book Seite 19 Mittwoch, 4. September 2019 11:36 11

Einleitung

20

Danksagung

Es ist mir eine Freude, mich bei meiner Frau und meinen Kindern zu bedanken: Sie ha-

ben es mir durch viel Verzicht auf unser Familienleben und durch häusliche »Entlas-

tungstätigkeiten« ermöglicht, dieses Buch fortzuschreiben.

Renate Fäcke-Kühnhauser danke ich, dass ich das Werk ihres leider verstorbenen Gat-

ten weiterführen darf. Karl-Heinz Kühnhauser ist der ursprüngliche Autor dieses Bu-

ches, dem ich mich zutiefst verpflichtet fühle. Ich habe mich bemüht, alle Überarbei-

tungen so gut wie möglich in seinem Sinn vorzunehmen.

Als selbstständiger SAP-Berater danke ich meinen Kunden für spannende Projekte

und Workshops, die mich das Thema ABAP immer wieder in neuem Licht sehen las-

sen.

Allen Lesern wünsche ich viel Spaß und viel Erfolg beim Lesen und Lernen!

Thorsten Franz

Freiberuflicher SAP-Berater, operatics.de, Bonn

7107.book Seite 20 Mittwoch, 4. September 2019 11:36 11

Auf einen Blick

1 ABAP und die ersten Schritte im SAP-System .............................................. 21

2 ABAP Dictionary ...................................................................................................... 47

3 Programmieren im ABAP Editor ........................................................................ 71

4 Felder und Berechnungen ................................................................................... 97

5 Mit Zeichenketten arbeiten ............................................................................... 119

6 Debugging von Programmen ............................................................................ 137

7 Transparente Datenbanktabellen bearbeiten ............................................. 163

8 Rechnen mit Datum und Zeit, Mengen und Währungen ........................ 199

9 Mit Daten in einer Datenbanktabelle arbeiten ........................................... 227

10 Programmablaufsteuerung und logische Ausdrücke ............................... 255

11 Selektionsbildschirme .......................................................................................... 303

12 Interne Tabellen ..................................................................................................... 359

13 Modularisierung von Programmen ................................................................. 391

14 ABAP in Eclipse ........................................................................................................ 451

15 Core Data Services zur Abbildung von Datenmodellen ........................... 469

16 Weiterführende Themen ..................................................................................... 497

7107.book Seite 5 Mittwoch, 4. September 2019 11:36 11

7

Inhalt

Einleitung ............................................................................................................................................... 15

1 ABAP und die ersten Schritte im SAP-System 21

1.1 Architektur des SAP-Systems im Überblick ............................................................. 23

1.1.1 Technische Architektur ....................................................................................... 23

1.1.2 Betriebswirtschaftlich-organisatorische Architektur .............................. 26

1.1.3 Plattformunabhängigkeit .................................................................................. 29

1.2 Anwendungsprogramme und Laufzeitumgebung ............................................... 30

1.2.1 Workprozesse ........................................................................................................ 31

1.2.2 Struktur von ABAP-Programmen .................................................................... 33

1.3 Anmelden und Abmelden am System ....................................................................... 36

1.3.1 Betriebswirtschaftlicher Modulüberblick .................................................... 37

1.3.2 ABAP Workbench .................................................................................................. 40

1.3.3 Abmelden vom SAP-System ............................................................................. 44

2 ABAP Dictionary 47

2.1 Einstieg in das ABAP Dictionary .................................................................................... 47

2.1.1 Datenbanktabellen .............................................................................................. 48

2.1.2 Tabelle anlegen und pflegen ............................................................................ 49

2.2 Datenelemente und Domänen ...................................................................................... 54

2.2.1 Datenelement anlegen ...................................................................................... 54

2.2.2 Domäne anlegen .................................................................................................. 59

2.2.3 Datenelement prüfen und aktivieren ........................................................... 63

2.2.4 Technische Einstellungen der Tabelle pflegen ........................................... 64

2.3 Datensätze erfassen ........................................................................................................... 67

2.3.1 Datensätze eingeben .......................................................................................... 68

2.3.2 Tabelleninhalt anzeigen .................................................................................... 68

7107.book Seite 7 Mittwoch, 4. September 2019 11:36 11

Inhalt

8

3 Programmieren im ABAP Editor 71

3.1 ABAP-Report anlegen ........................................................................................................ 71

3.2 ABAP Editor im Überblick ................................................................................................. 74

3.3 ABAP-Programme verstehen und bearbeiten ........................................................ 78

3.4 ABAP-Report ausführen .................................................................................................... 81

3.5 Datenbanktabelle lesen und ausgeben ..................................................................... 82

3.6 Aufbereitung von Listen ................................................................................................... 86

3.6.1 Kettensatz ............................................................................................................... 87

3.6.2 Linien ........................................................................................................................ 88

3.6.3 Leerzeilen ................................................................................................................ 88

3.7 Quellcode schreiben und editieren .............................................................................. 88

4 Felder und Berechnungen 97

4.1 Report vorbereiten .............................................................................................................. 97

4.2 Felder deklarieren ................................................................................................................ 101

4.2.1 Variablen deklarieren .......................................................................................... 101

4.2.2 Konstanten deklarieren ...................................................................................... 105

4.3 Grundrechenarten ............................................................................................................... 106

4.3.1 Kompatible und konvertible Datenobjekte ................................................. 107

4.3.2 Konvertierungsregeln ......................................................................................... 108

4.3.3 Besonderheiten bei der Division ...................................................................... 109

4.4 Inline-Variablendeklarationen ...................................................................................... 110

4.4.1 Ableitung des Datentyps aus dem Kontext ................................................. 111

4.4.2 Statische Ableitung und Deklaration ............................................................. 112

4.5 Codebeispiel zu Feldern und Berechnungen ........................................................... 113

5 Mit Zeichenketten arbeiten 119

5.1 Zeichenketten deklarieren .............................................................................................. 119

5.1.1 Datentyp c ............................................................................................................... 120

5.1.2 Datentyp n .............................................................................................................. 121

7107.book Seite 8 Mittwoch, 4. September 2019 11:36 11

Inhalt

9

5.2 Zeichenkettenoperationen ............................................................................................. 122

5.2.1 Zeichenketten verschieben ............................................................................... 122

5.2.2 Zeichenketten ersetzen ...................................................................................... 124

5.2.3 Zeichenketten verdichten ................................................................................. 125

5.2.4 Zeichenkettenfelder zusammenziehen ........................................................ 126

5.2.5 Zeichenketten zerlegen ...................................................................................... 129

5.2.6 Zeichenkettenoperationen mit direkter Positionierung ......................... 130

5.3 Codebeispiel zu String-Operationen .......................................................................... 131

6 Debugging von Programmen 137

6.1 Aufruf des ABAP Debuggers ........................................................................................... 137

6.2 Mit dem ABAP Debugger arbeiten .............................................................................. 141

6.2.1 Registerkarte »Desktop 1« ................................................................................ 142

6.2.2 Registerkarte »Strukturen« ............................................................................... 146

6.2.3 Registerkarte »Break-/Watchpoints« ............................................................ 147

6.2.4 Modus für Breakpoints ....................................................................................... 150

6.2.5 Statische Breakpoints ......................................................................................... 152

6.3 Schicht für Schicht: Layer-aware Debugging .......................................................... 153

6.4 Codebeispiel zum Layer-aware Debugging ............................................................. 160

7 Transparente Datenbanktabellen bearbeiten 163

7.1 Datenbanktabelle kopieren ............................................................................................ 164

7.2 Nicht-Schlüsselfelder ergänzen .................................................................................... 169

7.2.1 Festwerte in Domäne einpflegen ................................................................... 169

7.2.2 Besonderheiten bei Währungs- und Mengenfeldern .............................. 171

7.2.3 Fremdschlüssel pflegen ..................................................................................... 174

7.3 Tabellen erweitern .............................................................................................................. 181

7.3.1 Append-Strukturen pflegen .............................................................................. 182

7.3.2 Include-Struktur einpflegen ............................................................................. 185

7.4 Schlüsselfelder von Tabellen manipulieren ............................................................ 189

7.5 Tabellenfelder löschen ...................................................................................................... 193

7.6 Tabellen löschen .................................................................................................................. 195

7107.book Seite 9 Mittwoch, 4. September 2019 11:36 11

Inhalt

10

8 Rechnen mit Datum und Zeit, Mengen und Währungen 199

8.1 Felddeklarationen ............................................................................................................... 199

8.2 Rechnen mit Datumsfeldern .......................................................................................... 202

8.3 Rechnen mit Zeitfeldern ................................................................................................... 208

8.4 Rechnen mit Mengen- und Währungsfeldern ........................................................ 212

8.5 Codebeispiel zu Datums-, Zeit- und Währungsfeldern ...................................... 214

9 Mit Daten in einer Datenbanktabelle arbeiten 227

9.1 Berechtigungskonzept ...................................................................................................... 228

9.2 Sperrkonzept ......................................................................................................................... 230

9.3 Open-SQL-Anweisungen .................................................................................................. 232

9.3.1 Neuen Datensatz anlegen ................................................................................. 234

9.3.2 Bestehenden Datensatz ändern ...................................................................... 236

9.3.3 Datensatz modifizieren ...................................................................................... 237

9.3.4 Datensatz löschen ................................................................................................ 237

9.3.5 Löschen an eine Bedingung knüpfen ............................................................. 239

9.4 Codebeispiel zu INSERT ..................................................................................................... 240

9.5 Codebeispiel zu UPDATE ................................................................................................... 243

9.6 Codebeispiel zu MODIFY .................................................................................................. 247

9.7 Codebeispiel zu DELETE ..................................................................................................... 250

10 Programmablaufsteuerung und logische Ausdrücke 255

10.1 Kontrollstrukturen .............................................................................................................. 255

10.2 Arbeiten mit Mustern ........................................................................................................ 256

10.3 Verzweigungen .................................................................................................................... 260

10.3.1 IF-Struktur ............................................................................................................... 261

10.3.2 CASE-Struktur ........................................................................................................ 263

7107.book Seite 10 Mittwoch, 4. September 2019 11:36 11

Inhalt

11

10.4 Schleifen .................................................................................................................................. 265

10.4.1 SELECT-Schleife ..................................................................................................... 266

10.4.2 DO-Schleife ............................................................................................................. 266

10.4.3 WHILE-Schleife ...................................................................................................... 268

10.4.4 Abbruchanweisungen für Schleifen .............................................................. 270

10.5 Logische Ausdrücke ............................................................................................................ 273

10.5.1 Einfache logische Ausdrücke ............................................................................ 274

10.5.2 Verknüpfte logische Ausdrücke ....................................................................... 276

10.6 Codebeispiel zu IF ................................................................................................................ 280

10.7 Codebeispiel zu CASE ......................................................................................................... 285

10.8 Codebeispiel zu DO und Abbruchbedingungen ..................................................... 289

10.9 Codebeispiel zu WHILE und logischen Ausdrücken ............................................. 295

11 Selektionsbildschirme 303

11.1 Ereignisse ................................................................................................................................ 306

11.1.1 Reihenfolge von Ereignissen ............................................................................. 306

11.1.2 Beispiele für Ereignisse ....................................................................................... 307

11.2 Einfache Selektionen ......................................................................................................... 309

11.2.1 PARAMETERS-Anweisung .................................................................................. 309

11.2.2 Zusätze zur PARAMETERS-Anweisung .......................................................... 310

11.3 Komplexe Selektionen ...................................................................................................... 316

11.3.1 SELECT-OPTIONS-Anweisung ........................................................................... 317

11.3.2 Mehrfachselektionen .......................................................................................... 319

11.3.3 Zusätze zur SELECT-OPTIONS-Anweisung ................................................... 321

11.4 Selektionstexte verwenden ............................................................................................ 322

11.4.1 Textelemente im Überblick .............................................................................. 322

11.4.2 Selektionstexte anlegen .................................................................................... 322

11.5 Selektionsbild speichern .................................................................................................. 326

11.5.1 Selektionsvariante anlegen .............................................................................. 326

11.5.2 Report mit Variante starten .............................................................................. 331

11.6 Ergänzende Textobjekte .................................................................................................. 333

11.6.1 Textsymbole anlegen .......................................................................................... 333

11.6.2 Nachrichten anlegen ........................................................................................... 334

11.6.3 Nachrichten im Rahmen der Fehlerbehandlung ....................................... 336

7107.book Seite 11 Mittwoch, 4. September 2019 11:36 11

Inhalt

12

11.7 Selektionsbilder frei gestalten ...................................................................................... 338

11.7.1 Einzelne Zeile gestalten ...................................................................................... 339

11.7.2 Zeilenblock gestalten .......................................................................................... 341

11.8 Codebeispiel zum Selektionsbild (einfache Form) ................................................ 342

11.9 Codebeispiel zum Selektionsbild (erweiterte Form) ............................................ 348

12 Interne Tabellen 359

12.1 Sinn und Zweck interner Tabellen ............................................................................... 360

12.2 Aufbau und Arten interner Tabellen ........................................................................... 362

12.3 Interne Standardtabelle deklarieren .......................................................................... 364

12.4 Interne Standardtabelle füllen ...................................................................................... 367

12.5 Interne Tabelle zeilenweise verarbeiten ................................................................... 371

12.6 Inhalte von internen Tabellen löschen ...................................................................... 380

12.7 Codebeispiel zum Arbeiten mit internen Tabellen ............................................... 381

13 Modularisierung von Programmen 391

13.1 Modularisierungstechniken ............................................................................................ 391

13.2 Quelltextmodule .................................................................................................................. 394

13.3 Unterprogramme ................................................................................................................. 396

13.3.1 Globale und lokale Variablen ........................................................................... 398

13.3.2 Interne Tabellen übergeben .............................................................................. 401

13.3.3 Externe Unterprogramme ................................................................................. 403

13.3.4 Externe Reports ..................................................................................................... 404

13.4 Funktionsbausteine ............................................................................................................ 406

13.4.1 Function Builder .................................................................................................... 407

13.4.2 Funktionsbaustein zum Starten eines Programms .................................. 408

13.4.3 Funktionsbaustein zum Download einer internen Tabelle .................... 417

13.5 ABAP-Klassen ........................................................................................................................ 422

13.5.1 Klassen und Funktionsgruppen ....................................................................... 422

13.5.2 Globale und lokale Klassen ............................................................................... 424

13.5.3 Class Builder ........................................................................................................... 424

13.5.4 Lokale Klassen ........................................................................................................ 429

7107.book Seite 12 Mittwoch, 4. September 2019 11:36 11

Inhalt

13

13.6 Speicherbereiche für die Datenübergabe ................................................................. 430

13.6.1 Globaler SAP Memory ......................................................................................... 430

13.6.2 Lokaler SAP Memory ............................................................................................ 431

13.6.3 ABAP Memory ........................................................................................................ 431

13.6.4 Shared Objects ...................................................................................................... 433

13.7 Codebeispiele zur Modularisierung ............................................................................ 434

13.8 Codebeispiele zum Aufruf fremder Reports ............................................................ 445

14 ABAP in Eclipse 451

14.1 Eclipse als alternative Entwicklungsumgebung .................................................... 451

14.2 Installation von ABAP in Eclipse .................................................................................. 453

14.2.1 Java herunterladen .............................................................................................. 453

14.2.2 Eclipse herunterladen ......................................................................................... 454

14.2.3 ABAP Development Tools herunterladen ..................................................... 456

14.3 Erste Schritte mit ABAP in Eclipse ................................................................................ 458

14.3.1 ABAP-Projekt anlegen ......................................................................................... 459

14.3.2 Ein ABAP-Entwicklungsobjekt bearbeiten ................................................... 463

14.3.3 Ein neues ABAP-Entwicklungsobjekt anlegen ............................................ 465

14.4 ABAP in Eclipse oder im SAP GUI? ................................................................................ 467

15 Core Data Services zur Abbildung von Datenmodellen 469

15.1 Datenbank-Views in der Anwendungsentwicklung ............................................ 469

15.2 Klassische Datenbank-Views im ABAP Dictionary .............................................. 471

15.2.1 Datenbank-View anlegen .................................................................................. 471

15.2.2 Datensätze anzeigen ........................................................................................... 475

15.3 CDS Views in Eclipse .......................................................................................................... 475

15.3.1 CDS View anlegen ................................................................................................ 475

15.3.2 Projektionsliste des Views bearbeiten .......................................................... 478

15.3.3 CDS View mit Annotationen und Assoziationen anreichern ................ 480

15.3.4 CDS Views mit Assoziationen verknüpfen ................................................... 484

15.3.5 Datenvorschau ...................................................................................................... 485

15.3.6 Zugriff auf CDS Views ........................................................................................ 487

7107.book Seite 13 Mittwoch, 4. September 2019 11:36 11

Inhalt

14

15.3.7 Abfrage zur Verwendung in Programmen anpassen ............................... 492

15.3.8 Zielbereich per Inline-Deklaration definieren ............................................. 493

15.3.9 Codebeispiel zum Zugriff auf einen CDS View ........................................... 493

16 Weiterführende Themen 497

16.1 Interessante Zeiten für die Programmiersprache ABAP .................................... 497

16.2 SAP HANA ................................................................................................................................ 498

16.3 Wichtige Frameworks im SAP-Standard ................................................................... 499

16.3.1 Web Dynpro ABAP und SAP Fiori ..................................................................... 500

16.3.2 OData-Services mit SAP Gateway ................................................................... 504

16.3.3 Frameworks für Erweiterungen ....................................................................... 505

16.4 Cloudbasierte Entwicklung ............................................................................................. 508

16.5 Auf zu neuen Ufern! ........................................................................................................... 511

Anhang 515

A Icons auf einen Blick ........................................................................................................... 517

B Abkürzungsverzeichnis ..................................................................................................... 521

C Die Autoren ............................................................................................................................ 523

Index ........................................................................................................................................................ 525

7107.book Seite 14 Mittwoch, 4. September 2019 11:36 11