28
SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz 4., aktualisierte und erweiterte Auflage 2015. Buch. 575 S. Kartoniert ISBN 978 3 8362 3803 8 Format (B x L): 17 x 23 cm Weitere Fachgebiete > EDV, Informatik > Datenbanken, Informationssicherheit, Geschäftssoftware > SAP schnell und portofrei erhältlich bei Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft. Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, eBooks, etc.) aller Verlage. Ergänzt wird das Programm durch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr als 8 Millionen Produkte.

Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

SAP PRESS

Einstieg in ABAP

Die Neuauflage von »Discover ABAP«.

Bearbeitet vonKarl-Heinz Kühnhauser, Thorsten Franz

4., aktualisierte und erweiterte Auflage 2015. Buch. 575 S. KartoniertISBN 978 3 8362 3803 8

Format (B x L): 17 x 23 cm

Weitere Fachgebiete > EDV, Informatik > Datenbanken, Informationssicherheit,Geschäftssoftware > SAP

schnell und portofrei erhältlich bei

Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft.Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, eBooks, etc.) aller Verlage. Ergänzt wird das Programmdurch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr

als 8 Millionen Produkte.

Page 2: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

LeseprobeIn dieser Leseprobe üben Sie das Grundrechnen mit Variablen: Es handelt sich um das vollständige Kapitel 4 des Buches, »Felder und Berechnungen«. Sie betrachten die Eigenschaften von Datenobjek-ten und lernen den Unterschied zwischen Kompatibilität und Kon-vertibilität kennen. Gleichzeitig eignen Sie sich einige Kniffe für eine bessere Listaufbereitung an. Die Leseprobe umfasst darüber hinaus das Inhaltsverzeichnis sowie den Index des Buches.

Karl-Heinz Kühnhauser, Thorsten Franz

Einstieg in ABAP575 Seiten, broschiert, 4. Auflage 2015 39,90 Euro, ISBN 978-3-8362-3803-8

www.sap-press.de/3878

Kapitel 4: »Felder und Berechnungen«

Inhalt

Index

Die Autoren

Leseprobe weiterempfehlen

Wissen aus erster Hand.

Page 3: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

107

Als Nächstes wenden wir uns der Welt der Zahlen zu. Erfahren Sie in diesem Kapitel, wie Sie Berechnungen in ABAP-Programmen durchführen.

4 Felder und Berechnungen

Sie sollten mit allem rechnen – im SAP-System können Sie das sogarmit Datumswerten und Zeichenketten. In diesem Kapitel beginnenwir jedoch mit dem Einfachsten: dem Rechnen mit Zahlen.

Vorbereitungen

Bevor wir beginnen, sollten Sie entscheiden, ob Sie für die ersten Berech-nungen in ABAP einen neuen Report anlegen oder diese einfach in unse-rem Report aus Kapitel 3, »Programmieren im ABAP Editor«, einbauen.Beides ist natürlich möglich – doch nicht zuletzt für eine bessere Über-sichtlichkeit sollten Sie mit einem frischen Report arbeiten. Die Neuanlageeines Reports wird in Abschnitt 3.1, »ABAP-Report anlegen«, beschrieben.Als Alternative können Sie aber auch einen bestehenden Report kopierenund ihn anschließend modifizieren. Auf diese Weise bleibt der alte Reporterhalten, und der neue wird unter einem eigenen Namen abgespeichert.

4.1 Report vorbereiten

Report kopieren und modifizieren

Starten Sie im Einstiegsbild für den ABAP Editor (SAP Menü � Werk-

zeuge � ABAP Workbench � Entwicklung � ABAP Editor). Im Start-bildschirm geben Sie als Programmnamen den Namen unseres letz-ten Reports ein, »Z_TEILNEHMERLISTE01«. Anschließend können

3803-8.book Seite 107 Freitag, 31. Juli 2015 3:10 15

Page 4: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Felder und Berechnungen

108

4

Sie entweder über Programm � Kopieren oder über den ButtonKopieren ( , (Strg) + (F5)) den Kopiervorgang starten (siehe Abbil-dung 4.1).

Abbildung 4.1 ABAP-Programm kopieren

Sie werden nach dem Namen des Zielprogramms gefragt (siehe Abbil-dung 4.2). Dieser muss sich vom Namen des Quellprogramms unter-scheiden, und es gelten für ihn selbstverständlich auch die Namens-konventionen, wie sie in Abschnitt 2.1.2, »Tabelle anlegen undpflegen«, beschrieben werden.

Abbildung 4.2 Namen eines Zielprogramms auswählen

Haben Sie den Namen des Zielprogramms eingetragen, setzen Sie denKopiervorgang über die Schaltfläche Kopieren oder die (¢)-Tastefort. Anschließend haben Sie die Wahl, neben dem Quellcode undden Textelementen auch andere Elemente des alten Programms mitzu kopieren (siehe Abbildung 4.3).

3803-8.book Seite 108 Freitag, 31. Juli 2015 3:10 15

Report vorbereiten

109

4.1

Abbildung 4.3 Elemente eines ABAP-Reports mit kopieren

Für den Anfang können Sie, ohne ein Häkchen zu setzen, einfachüber die Schaltfläche Kopieren den Prozess fortführen und unserenneuen Report als Lokales Objekt abspeichern. Das System zeigtIhnen anschließend wieder das Einstiegsbild des ABAP Editors mitdem neuen Programmnamen. Das alte Programm wurde mit allengewählten Elementen kopiert; beachten sollten Sie nur, dass der neueQuellcode noch inaktiv ist.

Elemente kopieren

Hätten Sie beispielsweise für den alten Quellcode eine Dokumentationhinterlegt, könnte diese ausgewählt und kopiert werden. Alle Elementedieses Fensters sind keine eigenen Objekte der Datenbank, sondern hän-gen fest am Report, d. h., dass beispielsweise die Dokumentation für denReport nicht mehrfach verwendbar ist (etwa für andere Reports), wie esbei einem Datenelement der Fall wäre. Ein Datenelement ist dagegen eineigenes Objekt und damit mehrfach verwendbar.

Über den Ändern-Button ( ) gelangen Sie in den Änderungsmodusfür den Quellcode. Was Sie jetzt sehen, ist nicht neu: Den alten Quell-code kennen Sie bereits. Auffallen könnte Ihnen aber, dass dieREPORT-Anweisung nicht mehr ganz korrekt ist. Sie wurde zwar rich-tig kopiert, doch da sich der Programmname im Operanden geänderthat, sollte es der erste Arbeitsschritt im neuen Quellcode sein, denNamen auf unseren neuen Programmnamen umzuschreiben: Z_TEIL-NEHMERLISTE02.

3803-8.book Seite 109 Freitag, 31. Juli 2015 3:10 15

Page 5: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Felder und Berechnungen

110

4

Zeilenblock in Kommentarzeilen umwandeln

Was machen Sie mit den Programmzeilen, die Sie nicht mehr benötigen?Es gibt zwei Möglichkeiten: Entweder Sie löschen die Zeilen, oder Sie wan-deln sie in Kommentarzeilen um (»auskommentieren«). Vorsichtige Ent-wickler werden sich zunächst für die zweite Möglichkeit entscheiden, ver-meintlich überflüssige Anweisungen in Kommentarzeilen umzuwandeln,die man vielleicht für die eine oder die andere Anweisung doch noch ein-mal braucht – man kann ja nie wissen.

Deshalb gehen auch wir so vor und wandeln vorsichtshalber zunächstdie alten Anweisungen in Kommentarzeilen um. Hierzu markieren Siemit dem Cursor den zu bearbeitenden Zeilenblock wie in jedem Editorüblich mit den Cursortasten oder mit der Maus. Der markierte Blockwird nun dunkelblau hinterlegt dargestellt (siehe Abbildung 4.4)

Abbildung 4.4 Block markieren

Anschließend wandeln Sie über Hilfsmittel � Block/Ablage � Kom-

mentar-* einfügen den gesamten Block in Kommentarzeilen um(siehe Abbildung 4.5). Als Ergebnis sind alle Zeilen des Blocks inSpalte 1 mit einem Stern als Kommentarzeilen gekennzeichnet. Wareine Zeile bereits vorher eine Kommentarzeile, hat sie jetzt zwei füh-rende Sterne.

3803-8.book Seite 110 Freitag, 31. Juli 2015 3:10 15

Report vorbereiten

111

4.1

Abbildung 4.5 Block in Kommentarzeilen umwandeln

Aus Abbildung 4.5 können Sie auch ableiten, wie Sie bei Bedarf einenBlock von Kommentarzeilen analog wieder in Anweisungszeilenumwandeln: Hierzu markieren Sie den Block sowie das Blockendeund wählen Hilfsmittel � Block/Ablage � Kommentar-* löschen.

Zeilenblock löschenDa wir für die Anweisungen ab Zeile 10 aber tatsächlich im Folgen-den keine Verwendung mehr haben, können Sie den Zeilenblockruhig löschen. Hierfür markieren Sie zunächst wieder den entspre-chenden Block und drücken dann die (Entf)-Taste auf Ihrer Tastatur.

Sichern nicht vergessen!

Vergessen Sie nicht, die Veränderung am Quellcode nach wichtigenArbeitsschritten oder vor Arbeitspausen über den Sichern-Button ( ) zuspeichern.

Spreu vomWeizen trennen

Wir können uns nun der eigentlichen Aufgabe dieses Kapitels zuwen-den: Wir verarbeiten nun zwei Zahlen mit ABAP mithilfe der vier

3803-8.book Seite 111 Freitag, 31. Juli 2015 3:10 15

Page 6: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Felder und Berechnungen

112

4

Grundrechenarten und schreiben das Ergebnis in eine Liste. Hierzusind drei Arbeitsschritte erforderlich:

1. die Felder für die Zahlen deklarieren

2. das Ergebnis berechnen

3. das Ergebnis ausgeben

4.2 Felder deklarieren

Wie in der Praxis müssen auch bei unserer TeilnehmerverwaltungInhalte einer oder mehrerer Tabellen im Report durch Berechnungenweiterverarbeitet, ergänzt oder ausgewertet werden. Hierzu benöti-gen wir im Report eigene Felder.

Felder verarbeiten Auch ABAP verfügt über Regeln, auf welche Weise Felder verarbeitetwerden. Das System muss die Zahlen in unserem Beispiel zwischen-speichern, ablegen und sie sich für folgende Verarbeitungsschrittewieder zurückholen. Hierzu werden die Werte an einem Ort bzw.einer Datenadresse im Speicher temporär abgelegt.

In ABAP heißen diese Orte Felder oder Datenobjekte. Sind die Inhalteder Datenobjekte durch ABAP-Anweisungen veränderbar, sprichtman von Variablen, sind sie es nicht, spricht man von Konstanten.

4.2.1 Variablen deklarieren

Namen vergeben Bei der Namensvergabe für Variablen müssen Sie Folgendes beach-ten:

� Der Name soll mit einem Buchstaben beginnen; er darf nicht aus-schließlich aus Ziffern bestehen.

� Der Name darf maximal 30 Zeichen lang sein.

� Der Name soll möglichst keine Sonderzeichen enthalten, bis auf denUnterstrich. Ausdrücklich verbotene Sonderzeichen sind Plus (+),Komma (,), Doppelpunkt (:), Klammer auf (() und Klammer zu ()).

� Für den Namen dürfen keine reservierten Wörter für ABAP-Anwei-sungen oder Zusätze verwendet werden.

3803-8.book Seite 112 Freitag, 31. Juli 2015 3:10 15

Felder deklarieren

113

4.2

Sprechende Variablen

Die Namen der Variablen sollten darüber hinaus sprechend, d. h. selbster-klärend sein. Nennen Sie die Variable für einen Familiennamen z. B. FAMI-LIENNAME und nicht A1. Legen Sie großen Wert auf Lesbarkeit, und seienSie dementsprechend gnädig mit Dritten – Sie könnten es in wenigenWochen selbst sein.

Felder haben einen symbolischen Namen (z. B. ZAHL01), eine defi-nierte Länge und einen Datentyp. Über die symbolischen Namenwerden die Speicheradressen angesprochen, und die dort abgelegtenInhalte können gelesen und verarbeitet werden. Für die Verarbeitunggelten je nach Datentyp entsprechende Regeln, die allerdings vonProgrammiersprache zu Programmiersprache sehr unterschiedlichsind.

DATASollen sich die Inhalte unserer Zahlenfelder verändern können,deklarieren wir für den Einstieg unsere Felder mit der DATA-Anwei-sung. Für unsere Berechnungen bieten sich vorerst zwei Datentypenfür die Variablen an, nämlich ganze Zahlen (Integer) und Dezimal-zahlen.

TYPE iSoll das Feld ZAHL01 eine ganze Zahl enthalten, lautet die Anweisungfolgendermaßen:

DATA zahl01 TYPE i.

TYPE pSoll das Feld ZAHL01 hingegen eine Dezimalzahl mit zwei Nachkom-mastellen sein, lautet die Anweisung:

DATA zahl01 TYPE p DECIMALS 2.

Bei der Entscheidung, welche Deklaration sinnvoller ist, kommt esdemnach auf den Verwendungszweck an. Felder vom Typ i werdenüblicherweise für Zähler oder Stückzahlen verwendet. Felder vomTyp p sind für arithmetische Berechnungen mit Nachkommastellenüblich. Wichtig ist, vor der weiteren Programmierung zu überlegen,welche Rechen- und Anzeigegenauigkeit bei der gewünschtenBerechnung erforderlich ist, weil sich die Zahl der nötigen Nachkom-mastellen hiernach richtet – denken Sie z. B. an Wechselkurse. FünfNachkommastellen sind in solchen Fällen keine Seltenheit, wogegendie 14 erlaubten Nachkommastellen eher selten ausgereizt werden.

3803-8.book Seite 113 Freitag, 31. Juli 2015 3:10 15

Page 7: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Felder und Berechnungen

114

4

ElementareDatentypen

Beide Datentypen, i und p, sind für ABAP elementare Datentypenmit fester Länge. Deshalb müssen Sie die Feldlänge hier nicht explizitangeben. Die beiden Datentypen sind zwei von acht dieser in ABAPeingebauten elementaren Datentypen fester Länge.

Umfassenderes Typkonzept

Einen elementaren Datentyp variabler Länge werden Sie noch kennenler-nen. Für ein leichteres Verständnis beschränken wir uns vorerst auf diewichtigsten Datentypen. Auf die Darstellung von Referenzdatentypen undkomplexen Datentypen wird verzichtet. Sie sollten jedoch im Hinterkopfbehalten, dass das Typkonzept in ABAP für fortgeschrittene Anwendungenviel umfassender ist, als hier dargestellt.

Möchten Sie zwei Variablen gleichlautend deklarieren, müssen Siezwei Anweisungszeilen schreiben und darauf achten, dass Sie diesel-ben Attribute verwenden, beispielsweise:

DATA zahl01 TYPE p DECIMALS 2.DATA zahl02 TYPE p DECIMALS 2.

LIKE Dies hat allerdings den entscheidenden Nachteil, dass Sie immerselbst dafür sorgen müssen, die Deklaration von ZAHL02 nachzupfle-gen, falls sich die Deklaration von ZAHL01 ändert. Bei vielen abhängi-gen Deklarationen wird dies schnell zu einer sehr mühseligen undlangatmigen Arbeit. Einfacher ist es, bei ZAHL02 auf die Deklarationvon ZAHL01 zu verweisen. Dies geschieht mit dem Zusatz LIKE:

DATA zahl01 TYPE p DECIMALS 2.DATA zahl02 LIKE zahl01.

Damit ist gewährleistet, dass die Deklaration von ZAHL02 immer rich-tig bleibt, da sie so an die Deklaration von ZAHL01 geknüpft ist. Sollteeinmal ein Anlass bestehen, die Zahl der Dezimalstellen beispiels-weise von zwei auf vier zu erhöhen, muss nur die Deklaration vonZAHL01 geändert werden; die Deklaration von ZAHL02 wird automa-tisch angepasst. Natürlich gilt dies entsprechend für alle Variablen ineinem Report, die auf die Deklaration von ZAHL01 verweisen.

Inkonsistenzenvermeiden

Auf diese Weise können Sie zwar erreichen, dass Inkonsistenzeninnerhalb eines Reports vermieden werden, aber falls in verschiede-nen Reports gleichlautende Deklarationen von Variablen benötigt

3803-8.book Seite 114 Freitag, 31. Juli 2015 3:10 15

Felder deklarieren

115

4.2

werden, müssen Sie sich bei der Deklaration beispielsweise auf einTabellenfeld im ABAP Dictionary beziehen. Möchten Sie im Reportdie Variable LAUFENDE_NUMMER genauso deklarieren wie das FeldTNUMMER der Tabelle ZTEILNEHMER, schreiben Sie:

DATA laufende_nummer TYPE zteilnehmer-tnummer.

Mit dieser Methode müssen Sie in den einzelnen Reports keine Anpas-sung dieser Variablen mehr vornehmen. Sollte sich je eine Änderunghinsichtlich der Länge ergeben, betrifft sie ausschließlich die Domänedes Tabellenfeldes. Alle betroffenen Reports werden automatischbeim ersten Start nach der Änderung nachgeneriert, und kein einzigerQuellcode muss aus diesem Grund mehr geändert werden.

Postleitzahlen

Der Praxisbezug dieses Vorgehens wird schnell deutlich, wenn Sie sichdaran erinnern, dass in der Bundesrepublik die Postleitzahlen früher vier-stellig waren und im Jahr 1993 auf fünf Stellen umgestellt wurden. Teil-weise mussten Entwickler in Hunderten kundenspezifischer Programmedas Postleitzahlenfeld suchen und umstellen, die Programme wieder bin-den und kompilieren. Dies war eine absolut lästige Angelegenheit – manglaubt gar nicht, wie viele verschiedene Möglichkeiten es gibt, um dasWort »Postleitzahl« abzukürzen und eine Variable zu deklarieren! Mitunserer Methode wäre das Problem schnell gelöst gewesen.

Ähnliche Probleme treten auf, wenn Unternehmen – beispielsweisebedingt durch eine Fusion – ihre Organisation erheblich umstellen undplötzlich das früher einstellige Regionskennzeichen nicht mehr ausreicht,um knapp fünfhundert Regionen zu unterscheiden, in denen das Unter-nehmen tätig ist. Oder, um zum Beispiel Postleitzahl zurückzukehren, dasUnternehmen wird international tätig und muss neben rein numerischenPostleitzahlen auch englische Postleitzahlen verwalten, die Buchstabenenthalten.

VALUEFür jeden Datentyp vergibt das System Initialwerte. Für die Daten-typen i und p belegt das SAP-System das Feld zunächst mit demWert 0. Manchmal kann es jedoch sehr nützlich sein, eine Variableselbst mit einem Startwert zu versehen – hierzu verwenden Sie beider DATA-Anweisung den Zusatz VALUE. Soll beispielsweise die Varia-ble ZAHL01 eine ganze Zahl darstellen und mit dem Wert 5 vorbelegtwerden, lautet die Anweisung:

3803-8.book Seite 115 Freitag, 31. Juli 2015 3:10 15

Page 8: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Felder und Berechnungen

116

4

DATA zahl01 TYPE i VALUE 5.

Bei einer Vorbelegung mit dem negativen Wert –105 müsste dasnegative Vorzeichen mitgeschrieben werden, und die Anweisungwürde entsprechend lauten:

DATA zahl01 TYPE i VALUE -105.

Initialwerte mitNachkommastellen

Auch dies ist relativ einfach. Soll die Variable ZAHL01 hingegen eineDezimalzahl mit zwei Nachkommastellen sein, wird das Ganze schonetwas aufwendiger. Lautet der Plan, die Variable ZAHL01 beispiels-weise mit dem Wert 3,14 vorzubelegen, würde man eigentlich eineAnweisung vermuten wie:

DATA zahl01 TYPE p DECIMALS 2 VALUE 3,14.

Dies funktioniert aber leider nicht: Der Doppelpunkt nach DATA fehlt,und das Komma ist für einen Kettensatz und eine zweite Anweisungreserviert, in diesem Fall:

DATA 14.

Dies ergäbe leider auch keinen Sinn. Es funktioniert auch nicht, fürdas Dezimaltrennzeichen anstelle des Kommas einen Punkt einzuset-zen. Grundsätzlich ist diese Idee ausgezeichnet, weil das Systemintern als Dezimaltrennzeichen tatsächlich einen Punkt verwendet,aber wie Sie wissen, ist der Punkt für das Ende einer Anweisungreserviert. Für das System würden dann zwei Anweisungen in einerZeile stehen, wobei die zweite keinen Sinn ergibt.

Lösung: Literal Deshalb ist es formal korrekt, wenn Sie den Vorbelegungswert in einLiteral schreiben:

DATA zahl01 TYPE p DECIMALS 2 VALUE '3.14'.

Bei der Vorbelegung mit der negativen Zahl –4,56 lautet die richtigeSyntax entsprechend:

DATA zahl01 TYPE p DECIMALS 2 VALUE '-4.56'.

4.2.2 Konstanten deklarieren

CONSTANTS Der Vollständigkeit halber erwähnen wir hier, dass wir für die Dekla-ration von Konstanten, d. h. Feldern mit gleichbleibendem unverän-

3803-8.book Seite 116 Freitag, 31. Juli 2015 3:10 15

Grundrechenarten

117

4.3

derten Inhalt, mit einer eigenen Anweisung namens CONSTANTS arbei-ten. Damit werden wir denjenigen Fällen gerecht, in denengewährleistet sein muss, dass ein Feldinhalt während der Laufzeit desReports unverändert bleiben soll. Stoßen Sie in der Praxis auf ein sol-ches Beispiel, ist die CONSTANTS-Anweisung geeigneter als die DATA-Anweisung. Das System unterstützt dieses Konzept dadurch, dass beiVeränderungsversuchen dieser Felder Syntax- oder Laufzeitfehlergeneriert werden.

Einfache arithmetische Operationen

Da diese Anweisungen allerdings bis auf den Verwendungszweckweitgehend identisch sind, verzichten wir für den Einstieg auf dieCONSTANTS-Anweisung. Für einfache arithmetische Operationenkönnten unsere Deklarationen deshalb vorerst so aussehen:

DATA zahl01 TYPE p DECIMALS 2 VALUE '-4.56'.DATA zahl02 LIKE zahl01 VALUE '5.67'.DATA ergebnis LIKE zahl01.

Die Variable ZAHL01 gibt den Datentyp p und die Anzahl von zweiDezimalstellen vor. Außerdem wird der Variablen die negative Zahl –4,56 als Startwert zugewiesen. Die Variable ZAHL02 verweist hinsicht-lich des Typs und der Dezimalstellen auf die Variable ZAHL01 underhält als Startwert die Zahl 5,67. Die Variable ERGEBNIS verweist hin-sichtlich des Typs und der Dezimalstellen ebenfalls auf ZAHL01.

Der Vorteil dieser Schreibweise besteht darin, dass bei einer Ände-rung der Deklaration nur die Deklaration von ZAHL01 geändert wer-den muss, die Deklarationen von ZAHL02 und ERGEBNIS werden auto-matisch angepasst.

4.3 Grundrechenarten

Für die Addition, Subtraktion, Multiplikation und Division in ABAPhaben wir damit bereits alle erforderlichen Variablen deklariert.Arithmetische Operationen können Sie nun leicht über Zuweisungendurchführen: Soll beispielsweise der Inhalt der Felder ZAHL01 undZAHL02 addiert werden, schreiben Sie einfach:

ergebnis = zahl01 + zahl02.

3803-8.book Seite 117 Freitag, 31. Juli 2015 3:10 15

Page 9: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Felder und Berechnungen

118

4

MathematischerAusdruck

Formal ist anzumerken, dass rechts vom Gleichheitszeichen die arith-metische Operation selbst stehen muss. Das Ergebnis der Operationwird in das links vom Gleichheitszeichen stehende Feld eingetragen,die Felder ZAHL01 und ZAHL02 behalten auch nach der Berechnungihren alten Inhalt. Anders hingegen verhält es sich mit dem Feld linksvom Gleichheitszeichen: Im Feld ERGEBNIS steht nach der Berechnungnicht mehr der alte, sondern der neue Inhalt; der alte Inhalt des Fel-des wurde ersetzt.

Leerzeichen in arithmetischen Operationen

Darüber hinaus ist für die richtige Schreibweise der Umgang mit Leerzei-chen wichtig: Sie müssen sowohl vor als auch nach dem Gleichheitszei-chen sowie vor und nach dem Rechenzeichen stehen, im oberen Beispieldem Pluszeichen (+). Wenn Sie später einmal mit komplexeren Ausdrü-cken und mehreren Klammerebenen arbeiten, sollten Sie schon jetzt darandenken, dass in solchen Fällen auch vor und nach jeder Klammer ein Leer-zeichen stehen muss. Dabei muss es jeweils mindestens ein Leerzeichensein; die Eingabe mehrerer Leerzeichen schadet nicht weiter.

Der Grund für diese Schreibkonvention liegt darin, dass es Funktionengibt, die ohne Leerzeichen direkt an das Feld geschrieben werden. Damitdas System nun unterscheiden kann, ob es sich um eine arithmetischeOperation oder eine solche Funktion handelt, wird das Leerzeichen unbe-dingt benötigt.

Mit Festwertenarbeiten

Soll zum Inhalt der Variablen ZAHL02 ein Festwert, beispielsweise dieZahl 2, addiert werden, lautet die Anweisung:

zahl02 = zahl01 + 2.

Auch hier gilt die Regel, dass in der Variablen links vom Gleichheits-zeichen der alte Inhalt durch den neuen ersetzt wird. Natürlichkönnte man zum Inhalt derselben Variablen auch einen Festwertaddieren, beispielsweise um einen Zähler um 1 zu erhöhen. Dannwürde die Anweisung lauten:

zahl01 = zahl01 + 1.

Auch hier gilt wieder das gleiche Prinzip: Rechts vom Gleichheitszei-chen wird der Wert der Operation bestimmt, d. h. der Inhalt vonZAHL01 und 1 werden addiert und das Ergebnis der Operation in die

3803-8.book Seite 118 Freitag, 31. Juli 2015 3:10 15

Grundrechenarten

119

4.3

Variable links vom Gleichheitszeichen eingesetzt. Mit anderen Wor-ten: ZAHL01 erhält einen neuen Inhalt.

Für die Subtraktion, Multiplikation und Division lautet die Schreib-weise entsprechend:

ergebnis = zahl01 - zahl02.ergebnis = zahl01 * zahl02.ergebnis = zahl01 / zahl02.

Anweisungen mit Schlüsselwort

Als Rechenzeichen für Subtraktionen verwenden Sie das Minuszei-chen (-), für Multiplikationen das Sternchen (*) und für Divisionenden Schrägstrich (/). Anstelle von Rechenzeichen könnten wir auchdie Schlüsselwörter ADD, SUBTRACT, MULTIPLY und DIVIDE verwenden,die in der Praxis aber relativ selten anzutreffen sind; auch wir werdenim Folgenden darauf verzichten.

Damit haben Sie die Grundvoraussetzungen kennengelernt – und wirwenden uns den Details zu, denn hierin versteckt sich ja bekanntlichoft der Teufel. Beispielsweise haben nicht alle Felder die gleichenAttribute oder sind untereinander verträglich.

4.3.1 Kompatible und konvertible Datenobjekte

Kompatible und konvertible Datenobjekte

Verfügen Felder über die gleichen Attribute, spricht man von kompa-tiblen Datenobjekten, d. h. dass diese Felder in allen technischenEigenschaften (Typ, Feldlänge, Dezimalstellen) vollständig überein-stimmen. Sind die Attribute untereinander verträglich, spricht manvon konvertiblen Datenobjekten. Dabei müssen die Datentypen kon-vertiert, d. h. umgewandelt werden; Voraussetzung hierfür sind ent-sprechende Konvertierungsregeln. Falls die Konvertierung nichtmöglich ist, entstehen Syntax- oder Laufzeitfehler.

Automatische Umwandlung

Beruhigend ist, dass im SAP-System bereits zahlreiche Konvertie-rungsregeln hinterlegt sind (siehe Abschnitt 4.3.2, »Konvertierungs-regeln«). Das System wandelt bei entsprechenden Anweisungen nachdiesen Regeln automatisch von einem Datentyp in einen anderen um.Sofern diese Regeln die von uns gewünschten Ergebnisse erzielen,haben wir kein Problem. Leider ist dies aber nicht immer der Fall,und leider existieren auch nicht für alle denkbaren KonstellationenKonvertierungsregeln.

3803-8.book Seite 119 Freitag, 31. Juli 2015 3:10 15

Page 10: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Felder und Berechnungen

120

4

Fehlerquellen

Zähneknirschend muss außerdem hingenommen werden, dass für solcheFehler überwiegend die Entwickler selbst verantwortlich sind – denn es gibtz. B. keinen logischen Grund dafür, in einem Datumsfeld Sternchen undSonderzeichen speichern zu wollen. Solche Syntax- oder Laufzeitfehlergeschehen immer wieder einmal auch Fortgeschrittenen, und zwar insbe-sondere dann, wenn bereits bestehende Anwendungen modifiziert werdenmüssen. Auch bei einer Datenübernahme aus anderen Systemen tauchensolche Fehler auf – für einen Einsteiger erst einmal kein Grund zur Panik.

4.3.2 Konvertierungsregeln

Was geschieht,wenn ...

Die Konvertierungsregeln legen fest, wie der Inhalt eines Quellfeldes inein Zielfeld eingetragen wird. Quellfelder können verschiedene Daten-typen haben, wie die bereits vorgestellten vom Typ p für gepackte undTyp i für ganze Zahlen. Da es, wie erwähnt, auch weitere Datentypenfür Datums- und Zeitfelder oder Zeichenketten gibt, legen die Konver-tierungsregeln pro Datentyp genau fest, wie der Inhalt des Quellfeldesin das Zielfeld eingestellt wird. Was geschieht, wenn Sie eine gepackteZahl in ein Integerfeld stellen, was geschieht, wenn Sie eine gepackteZahl zum Inhalt eines Datumsfeldes addieren, oder was geschieht,wenn Sie eine gepackte Zahl in ein Character-Feld schreiben? Lassen Sieuns hierzu eine Konvertierungsregel als Beispiel ansehen.

Dezimalzahlin ganze Zahl

umwandeln

Ist der Quelltyp ein Datenobjekt vom Typ p und der Zieltyp einDatenobjekt vom Typ i (eine ganze Zahl), rundet das System die Dezi-malstellen des Quellfeldes und stellt den Inhalt rechtsbündig in dasZielfeld. Ist das Zielfeld von seiner Länge her ausreichend, wird linksmit Nullen aufgefüllt, anderenfalls kommt es zu einem Überlauf bzw.Laufzeitfehler. Stellen Sie beispielsweise die gepackte Zahl 4,44 in einIntegerfeld, hat ein Integerfeld danach den Inhalt 4; stellen Sie diegepackte Zahl 5,55 in ein Integerfeld, hat es den Inhalt 6.

Konvertierungverschiedener

Datentypen

Falls in einer numerischen Operation mehrere verschiedene Daten-typen vorkommen, konvertiert ABAP vor dem Ausführen der Opera-tion alle Datentypen in den höchsten vorkommenden Datentyp, führtdann die Operation mit den konvertierten Werten aus und stelltanschließend das Ergebnis – eventuell wieder über eine Konvertie-rungsregel – in das Ergebnisfeld.

3803-8.book Seite 120 Freitag, 31. Juli 2015 3:10 15

Grundrechenarten

121

4.3

Ganze und gepackte Zahlen sowie Exponentialzahlen

Sollten beispielsweise ganze Zahlen, gepackte Zahlen und Exponentialzah-len in einer Operation vorkommen, würden die Exponentialzahlen denDatentyp auf höchster Ebene darstellen. Erst würden alle ganzen Zahlen ingepackte Zahlen umgewandelt, dann alle Zahlen in Exponentialzahlen,und schließlich würde die Operation mit Exponentialzahlen berechnet.Anschließend würde gemäß den Konvertierungsregeln der Wert der Expo-nentialzahlen in das Ergebnisfeld eingetragen. Sie können sich wahr-scheinlich gut vorstellen, dass die Rechengenauigkeit schon durch denDatentyp des Ergebnisfeldes beeinflusst werden kann.

Um sich das Leben nicht zu erschweren, sollten Sie von Anfang andarauf achten, Ihre Datenobjekte möglichst kompatibel zu halten.

COMPUTEDer Vollständigkeit halber erwähnen wir hier das COMPUTE-Schlüssel-wort, das für numerische Operationen das ursprüngliche ABAP-Kom-mando ist. Die Schreibweise für eine Addition unter Zuhilfenahmedes Schlüsselwortes COMPUTE lautet:

COMPUTE ergebnis = zahl01 + zahl02.

Wie Sie sehen, ist die Anweisung nur länger, und die Lesbarkeitwird nicht unbedingt erhöht. Glücklicherweise ist das SchlüsselwortCOMPUTE optional und wird in der Praxis – außer für Recherche-zwecke – kaum verwendet; die meisten Entwickler bevorzugen dieverkürzte Schreibweise, die intern vom System exakt gleich behandeltwird, und auch wir arbeiten im Folgenden ohne das SchlüsselwortCOMPUTE:

ergebnis = zahl01 + zahl02.

Gut zu wissen …

Es gibt allerdings einen Fall, in dem es notwendig ist zu wissen, dass esdie COMPUTE-Anweisung gibt: Falls Sie im System die Dokumentation zuselten benötigten Funktionen suchen, finden Sie diese nämlich nur beider COMPUTE-Anweisung.

Ab SAP NetWeaver 7.0 EHP 2 bzw. SAP NetWeaver 7.3 erlaubt dieCOMPUTE-Anweisung den Zusatz EXACT, was bei Berechnungen mit dezi-malen Gleitpunktzahlen ein besonderes Verhalten bewirkt. Dieser Zu-satz ist nur im Zusammenhang mit dem ausgeschriebenen SchlüsselwortCOMPUTE verfügbar.

3803-8.book Seite 121 Freitag, 31. Juli 2015 3:10 15

Page 11: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Felder und Berechnungen

122

4

4.3.3 Besonderheiten bei der Division

Verschiedene Fälle Für Berechnungen in ABAP stellen Addition, Subtraktion und Multi-plikation kein weiteres Problem dar; nur die Division sollten wir unsnoch etwas genauer ansehen. Es gibt Fälle, in denen Sie ein Divisions-ergebnis mit Nachkommastellen wünschen, aber auch Fälle, in denenSie ganzzahlig ohne Rest teilen möchten. Vielleicht interessiert unsaber auch nur der Rest einer solchen Division. Für diese verschiede-nen Varianten gibt es in ABAP auch verschiedene Anweisungen.

Der einfachste Fall einer Division wird – wie bereits erläutert – durchden Schrägstrich (/) dargestellt:

DATA zahl01 TYPE p DECIMALS 2 VALUE '4.56'.DATA zahl02 LIKE zahl01 VALUE '5.67'.DATA ergebnis LIKE zahl01.ergebnis = zahl02 / zahl01.

Rechengenauigkeit Wenn Sie das Ergebnis mit dem Taschenrechner ausrechnen, erhaltenSie die Zahl 1,243421053. Wie verhält sich ABAP? Alle Variablensind gleichlautend deklariert. Eine gepackte Zahl hat maximal 16Bytes, dies bedeutet 32 Stellen, inklusive Vorzeichen. Das Systemwürde das genaue Ergebnis liefern (bei ABAP liegt die Rechengenau-igkeit von gepackten Zahlen bei maximal 14 Nachkommastellen), esaber auf zwei Nachkommastellen in der Zielvariable runden, die wirselbst mit zwei Dezimalstellen deklariert haben. Diese erhält, durchABAP kaufmännisch gerundet, den Wert 1.24.

DIV Falls Sie das Ergebnis einer ganzzahligen Division erhalten möchten,müssten Sie die Anweisung umschreiben und statt des Schrägstrichsden Operator DIV einsetzen:

ergebnis = zahl02 DIV zahl01.

Unter sonst gleichen Voraussetzungen ergibt die ganzzahlige Divisionfür den Quotienten den Wert 1. Da die Zielvariable zwei Dezimalstel-len hat, steht dort nach dem Ausführen der Anweisung als Inhalt 1.00.

MOD Im dritten Fall interessiert uns der Rest der Ganzzahldivision. Für die-sen Fall verwenden wir den Operanden MOD, und die Anweisung lau-tet:

ergebnis = zahl02 MOD zahl01.

3803-8.book Seite 122 Freitag, 31. Juli 2015 3:10 15

Codebeispiel zu Feldern und Berechnungen

123

4.4

Wieder unter der Annahme, dass alle übrigen Faktoren gleichbleiben,ergibt die ganzzahlige Division 1, Rest 1,11. Dieser Rest wird mitzwei Dezimalstellen in die Zielvariable übertragen, und sie erhältdementsprechend als Inhalt den Wert 1.11.

1,5 Stunden

Möglicherweise fragen Sie sich jetzt, ob solche Berechnungen überhauptpraxisrelevant sind: Aber denken Sie nur daran, dass Stunden, Tage oderJahre in vielen Systemen nicht in Stunden und Minuten erfasst werden,sondern mit Dezimalwerten wie »1,5 Stunden«. Um diese Dezimalwerteauf Stunden und Minuten umzurechnen, kommen Sie um die genanntenDivisionsmöglichkeiten nicht herum. Weitere Beispiele finden Sie in Kapi-tel 5, »Modifikation von Zeichenketten«, und Kapitel 8, »Rechnen mitDatum und Zeit, Mengen und Währungen«.

4.4 Codebeispiel zu Feldern und Berechnungen

Schauen wir uns die verschiedenen Berechnungsmöglichkeiten nunanhand unseres vorbereiteten Reports an:

1 *&---------------------------------------------*2 *& Report Z_TEILNEHMERLISTE02 *3 *& *4 *&---------------------------------------------*5 *& *6 *& *7 *&---------------------------------------------*89 REPORT z_teilnehmerliste02 .

1011 * Variable deklarieren12 DATA zahl01 TYPE p DECIMALS 2 VALUE '4.56'.13 DATA zahl02 LIKE zahl01 VALUE '5.67'.14 DATA ergebnis_addition LIKE zahl01.15 DATA ergebnis_subtraktion LIKE zahl01.16 DATA ergebnis_multiplikation LIKE zahl01.17 DATA ergebnis_division_genau LIKE zahl01.18 DATA ergebnis_division_ganzzahl LIKE zahl01.19 DATA ergebnis_division_rest LIKE zahl01.20

3803-8.book Seite 123 Freitag, 31. Juli 2015 3:10 15

Page 12: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Felder und Berechnungen

124

4

21 * Verarbeitungsteil22 zahl01 = zahl01 + 1.23 zahl02 = zahl01 + 2.24 ergebnis_addition = zahl01 + zahl02.25 ergebnis_subtraktion = zahl01 - zahl02.26 ergebnis_multiplikation = zahl01 * zahl02.27 ergebnis_division_genau = zahl02 / zahl01.28 ergebnis_division_ganzzahl = zahl02 DIV zahl01.29 ergebnis_division_rest = zahl02 MOD zahl01.3031 * Ausgabeteil32 WRITE: / 'zahl01', zahl01,33 / 'zahl02', zahl02,34 / 'ergebnis_addition:',

ergebnis_addition,35 / 'ergebnis_subtraktion:',

ergebnis_subtraktion,36 / 'ergebnis_multiplikation:',

ergebnis_multiplikation,37 / 'ergebnis_division_genau:',

ergebnis_division_genau,38 / 'ergebnis_division_ganzzahl:',

ergebnis_division_ganzzahl,39 / 'ergebnis_division_rest:',

ergebnis_division_rest.

Listing 4.1 Report Z_TEILNEHMERLISTE02

Anmerkungen zum Quellcode

Nach den Kommentarzeilen gliedert sich unser Report in drei Teile,die im Folgenden kurz beschrieben sind.

Zeile 1 bis 8

Diese Zeilen werden vom System wieder automatisch als Kommen-tarzeilen generiert.

Zeile 11

Der Quellcode wird in übersichtliche Abschnitte eingeteilt, die derLesbarkeit dienen. In Listing 4.1 werden diese Abschnitte mit dreiKommentarzeilen gebildet: Variable deklarieren (Zeile 11 bis 19),Verarbeitungsteil (Zeile 21 bis 29) und Ausgabeteil (Zeile 31 bis 39).

3803-8.book Seite 124 Freitag, 31. Juli 2015 3:10 15

Codebeispiel zu Feldern und Berechnungen

125

4.4

Zeile 12

Die Variable ZAHL01 wird als gepackte Zahl mit zwei Nachkommastel-len deklariert, und sie erhält als Startwert die Zahl 4,56.

Zeile 13

Die Variable ZAHL02 erhält als Startwert die Zahl 5,67 und die glei-chen Eigenschaften wie ZAHL01.

Zeile 14 bis 19Frage der Weiter-verarbeitung

Die Ergebnisfelder werden deklariert; für jedes Ergebnis wird eineigenes Feld angelegt. Natürlich hätte man nur das Feld ERGEBNISanlegen und immer wieder überschreiben können, aber es hängt vonder Art der Weiterverarbeitung ab, ob man einen Feldinhalt spätervielleicht wieder benötigt oder nicht – und Sie möchten gleich dieverschiedenen Berechnungsergebnisse ausgeben.

Nicht mit Variablen geizen

Arbeitsspeicher und Hardware sind kein Argument mehr, um mit Varia-blen zu knausern, sondern Lesbarkeit und Transparenz sind heute diewesentlicheren Qualitätsfaktoren. Wenn es der Qualität dient, sollten Siedeshalb nicht mit Variablen geizen.

Zeile 21

Der Verarbeitungsteil beginnt.

Zeile 22

Der Wert des Feldes ZAHL01 wird um 1 erhöht. Vor der Anweisungwar der Inhalt 4.56, danach ist er 5.56.

Zeile 23

Das Feld ZAHL02 erhält den Inhalt aus der Addition von ZAHL01 undder Zahl 2. Der alte Inhalt von ZAHL02 war 5.67, der neue Inhalt ist7.56.

Zeile 24

Das Feld ERGEBNIS_ADDITION erhält das Ergebnis der OperationZAHL01 plus ZAHL02, das ist 5.56 plus 7.56 und ergibt 13.12.

3803-8.book Seite 125 Freitag, 31. Juli 2015 3:10 15

Page 13: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Felder und Berechnungen

126

4

Zeile 25

Das Ergebnis der Subtraktion von ZAHL01 und ZAHL02 ist die negativeZahl 2. Sie wird im Ergebnisfeld ERGEBNIS_SUBTRAKTION als 2.00- dar-gestellt.

Zeile 26

Da ZAHL01 inzwischen den Wert 5.56 und ZAHL02 den Wert 7.56 hat,lautet das Ergebnis der Multiplikation auf zwei Nachkommastellengerundet 42.03.

Zeile 27

Das Ergebnis der Division: 7.56 geteilt durch 5.56 ist gerundet 1.36 –und gleichzeitig der neue Inhalt von ERGEBNIS_DIVISION_GENAU.

Zeile 28

Die ganzzahlige Division ergibt 1.00. Durch die Formatierung wer-den die eigentlich überflüssigen Dezimalstellen mitgezogen.

Zeile 29

Der Rest der Ganzzahldivision beträgt 2.00. Dieser Wert wird in dasFeld ERGEBNIS_DIVISION_REST übertragen.

Zeile 31

Der Abschnitt für die Listerstellung beginnt.

Zeile 32 bis 39

Die WRITE-Anweisung gibt in einer neuen Zeile in Spalte 1 ein Literalals Text aus und anschließend mit einer Leerstelle den Inhalt der Vari-ablen. Die WRITE-Anweisung ist als Kettensatz geschrieben, hinterdem sich eigentlich 16 WRITE-Anweisungen verbergen. Hinter derAnweisung WRITE steht ein Doppelpunkt; die einzelnen Anweisungensind durch Kommata getrennt, und nur die letzte Anweisung des Ket-tensatzes wird mit einem Punkt abgeschlossen.

Ausgabe des Quellcodes

Wenn Sie den Report wie eben editiert, gesichert, geprüft und akti-viert haben, können Sie ihn ausführen, und das Listbild sollte wie inAbbildung 4.6 aussehen.

3803-8.book Seite 126 Freitag, 31. Juli 2015 3:10 15

Codebeispiel zu Feldern und Berechnungen

127

4.4

Abbildung 4.6 Listbild zum Beispiel der Grundrechenarten

Verbesserungs-würdige Optik

Formal und logisch ist hier alles richtig – aber auch das Auge pro-grammiert mit! Da hier die Literale am Zeilenanfang unterschiedlichlang sind, stehen die ausgegebenen Variablen an unterschiedlichenSpaltenpositionen und damit nicht spaltengerecht. Deshalb kümmernwir uns im letzten Schritt noch um die optische Spaltenaufteilung.

Verbesserte Listaufbereitung

Felder einer Liste spaltengerecht ausgeben

Dieses kleine Problem lösen Sie, indem Sie dem WRITE-Kommandobei der Ausgabe mitteilen, an welcher Position einer Zeile die Varia-ble abgebildet werden soll. Möchten Sie die Variable ab Spalte 30ausgeben, müssen Sie Zeile 32 von Listing 4.1 folgendermaßenändern:

WRITE: / 'zahl01', 30 zahl01,

Vor die betreffende Variable schreiben Sie einfach die Spaltenposi-tion der Druckzeile. Beachten Sie, dass zwischen Spaltenposition undVariable mindestens eine Leerstelle bestehen bleiben muss.

Komplexe Listen

Die restlichen relevanten Zeilen könnten Sie entsprechend editieren,indem Sie vor jede betroffene Variable die Ausgabeposition schreiben. Beikurzen und überschaubaren Ausgaben ist dieses Vorgehen auch vertret-bar. Sollte eine Liste allerdings aufwendiger und komplexer zusammenge-setzt sein, könnten Sie es auch mit der nachfolgend beschriebenen Mög-lichkeit versuchen – ähnlich des Verweises bei den Datendeklarationen mitLIKE.

3803-8.book Seite 127 Freitag, 31. Juli 2015 3:10 15

Page 14: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Felder und Berechnungen

128

4

UNDER Einen Verweis auf ein anderes Objekt können Sie auch bei der Druck-position verwenden, indem Sie einfach auf die Position einer anderenVariablen verweisen. Sollte sich die Position der führenden Variablenändern, ziehen alle anderen referenzierenden Variablen automatischnach. Hierzu wird beim WRITE-Kommando die AufbereitungsoptionUNDER verwendet. Editieren Sie die Zeilen 33 bis 39 wie folgt:

33 / 'zahl02', zahl02 UNDER zahl01,34 / 'ergebnis_addition:',

ergebnis_addition UNDER zahl01,35 / 'ergebnis_subtraktion:',

ergebnis_subtraktion UNDER zahl01,36 / 'ergebnis_multiplikation:',

ergebnis_multiplikation UNDER zahl01,37 / 'ergebnis_division_genau:',

ergebnis_division_genau UNDER zahl01,38 / 'ergebnis_division_ganzzahl:',

ergebnis_division_ganzzahl UNDER zahl01,39 / 'ergebnis_division_rest:',

ergebnis_division_rest UNDER zahl01.

Nach dem Sichern, Prüfen, Aktivieren und Ausführen des Reportssollte das Listbild wie in Abbildung 4.7 aussehen.

Abbildung 4.7 Listbild mit spaltengerechter Ausgabe

3803-8.book Seite 128 Freitag, 31. Juli 2015 3:10 15

Page 15: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

7

Inhalt

Vorwort zur vierten Auflage ...................................................... 15

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

1.1 Architektur des SAP-Systems im Überblick .............. 251.1.1 Technische Architektur .............................. 261.1.2 Betriebswirtschaftlich-organisatorische

Architektur ................................................ 281.1.3 Plattformunabhängigkeit ........................... 31

1.2 Anwendungsprogramme und Laufzeitumgebung ..... 321.2.1 Workprozesse ............................................ 331.2.2 Struktur von ABAP-Programmen ............... 35

1.3 Anmelden und Abmelden am System ..................... 381.3.1 Betriebswirtschaftlicher Modulüberblick .... 401.3.2 ABAP Workbench ...................................... 431.3.3 Abmelden vom SAP-System ...................... 48

2 ABAP Dictionary ...................................................... 51

2.1 Einstieg in das ABAP Dictionary .............................. 522.1.1 Datenbanktabellen .................................... 532.1.2 Tabelle anlegen und pflegen ...................... 54

2.2 Datenelemente und Domänen ................................ 592.2.1 Datenelement anlegen .............................. 592.2.2 Domäne anlegen ....................................... 642.2.3 Datenelement prüfen und aktivieren ......... 692.2.4 Technische Einstellungen der Tabelle

pflegen ...................................................... 712.3 Datensätze erfassen ................................................ 73

2.3.1 Datensätze eingeben ................................. 742.3.2 Tabelleninhalt anzeigen ............................. 75

3803-8.book Seite 7 Freitag, 31. Juli 2015 3:10 15

Page 16: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Inhalt

8

3 Programmieren im ABAP Editor .............................. 77

3.1 ABAP-Report anlegen .............................................. 773.2 ABAP Editor im Überblick ........................................ 81

3.2.1 Modi des ABAP Editors .............................. 823.2.2 Steuerung des ABAP Editors ....................... 82

3.3 ABAP-Programme verstehen und bearbeiten ........... 893.4 ABAP-Report ausführen ........................................... 923.5 Datenbanktabelle lesen und ausgeben ..................... 943.6 Aufbereitung von Listen .......................................... 97

3.6.1 Kettensatz .................................................. 983.6.2 Linien ......................................................... 983.6.3 Leerzeilen .................................................. 99

3.7 Quellcode schreiben und editieren .......................... 99

4 Felder und Berechnungen ....................................... 107

4.1 Report vorbereiten .................................................. 1074.2 Felder deklarieren ................................................... 112

4.2.1 Variablen deklarieren ................................. 1124.2.2 Konstanten deklarieren .............................. 116

4.3 Grundrechenarten ................................................... 1174.3.1 Kompatible und konvertible

Datenobjekte ............................................. 1194.3.2 Konvertierungsregeln ................................. 1204.3.3 Besonderheiten bei der Division ................. 122

4.4 Codebeispiel zu Feldern und Berechnungen ............ 123

5 Modifikation von Zeichenketten ............................. 129

5.1 Zeichenketten deklarieren ....................................... 1305.2 Zeichenketten-Operationen ..................................... 132

5.2.1 Zeichenketten verschieben ......................... 1335.2.2 Zeichenketten ersetzen .............................. 1345.2.3 Zeichenketten verdichten ........................... 1365.2.4 Zeichenkettenfelder zusammenziehen ........ 1375.2.5 Zeichenketten zerlegen .............................. 139

3803-8.book Seite 8 Freitag, 31. Juli 2015 3:10 15

Inhalt

9

5.2.6 Zeichenketten-Operationen mit direkter Positionierung ........................................... 140

5.3 Codebeispiel zu String-Operationen ........................ 141

6 Debugging von Programmen .................................. 149

6.1 Überblick ................................................................ 1506.2 Aufruf des ABAP Debuggers ................................... 1516.3 Mit dem ABAP Debugger arbeiten .......................... 155

6.3.1 Desktop 1 ................................................. 1566.3.2 Registerkarte »Strukturen« ......................... 1606.3.3 Registerkarte »Break-/Watchpoints« .......... 1626.3.4 Breakpoints-Modus ................................... 1656.3.5 Statische Breakpoints ................................ 168

6.4 Schicht für Schicht: Layer-aware Debugging ............ 1686.5 Codebeispiel zum Layer-aware Debugging .............. 177

7 Modifikation von transparenten Datenbanktabellen .................................................. 181

7.1 Datenbanktabelle kopieren ..................................... 1827.2 Nicht-Schlüsselfelder ergänzen ............................... 187

7.2.1 Festwerte in Domäne einpflegen ............... 1887.2.2 Besonderheiten bei Währungs- und

Mengenfeldern .......................................... 1917.2.3 Fremdschlüssel pflegen .............................. 193

7.3 Tabellen erweitern .................................................. 2027.3.1 Append-Strukturen pflegen ....................... 2027.3.2 Include-Struktur einpflegen ....................... 206

7.4 Schlüsselfelder von Tabellen manipulieren .............. 2117.5 Tabellenfelder löschen ............................................ 2167.6 Tabellen löschen ..................................................... 218

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

8.1 Felddeklarationen ................................................... 2218.2 Rechnen mit Datumsfeldern ................................... 224

3803-8.book Seite 9 Freitag, 31. Juli 2015 3:10 15

Page 17: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Inhalt

10

8.3 Rechnen mit Zeitfeldern .......................................... 2318.4 Rechnen mit Mengen- und Währungsfeldern .......... 2358.5 Codebeispiel zu Datums-, Zeit- und

Währungsfeldern ..................................................... 238

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

9.1 Berechtigungskonzept ............................................. 2539.2 Sperrkonzept ........................................................... 2549.3 Open-SQL-Anweisungen ......................................... 257

9.3.1 Neuen Datensatz anlegen .......................... 2599.3.2 Bestehenden Datensatz ändern .................. 2629.3.3 Datensatz modifizieren ............................... 2639.3.4 Datensatz löschen ...................................... 264

9.4 Komfortable Alternative: Persistente Klassen ........... 2679.5 Codebeispiel zu INSERT ........................................... 2689.6 Codebeispiel zu UPDATE ......................................... 2739.7 Codebeispiel zu MODIFY ........................................ 2779.8 Codebeispiel zu DELETE .......................................... 280

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

10.1 Kontrollstrukturen ................................................... 28610.2 Arbeiten mit Mustern .............................................. 28710.3 Verzweigungen ........................................................ 291

10.3.1 IF-Struktur ................................................. 29210.3.2 CASE-Struktur ............................................ 295

10.4 Schleifen ................................................................. 29710.4.1 SELECT-Schleife ......................................... 29710.4.2 DO-Schleife ............................................... 29810.4.3 WHILE-Schleife .......................................... 30010.4.4 Abbruchanweisungen für Schleifen ............. 302

10.5 Logische Ausdrücke ................................................. 30610.5.1 Einfache logische Ausdrücke ...................... 30610.5.2 Verknüpfte logische Ausdrücke .................. 308

10.6 Codebeispiel zu IF ................................................... 31210.7 Codebeispiel zu CASE .............................................. 317

3803-8.book Seite 10 Freitag, 31. Juli 2015 3:10 15

Inhalt

11

10.8 Codebeispiel zu DO und Abbruchbedingungen ....... 32210.9 Codebeispiel zu WHILE und logischen

Ausdrücken ............................................................ 328

11 Selektionsbildschirme ............................................. 335

11.1 Ereignisse ............................................................... 33711.1.1 Reihenfolge von Ereignissen ...................... 33811.1.2 Beispiele für Ereignisse .............................. 339

11.2 Einfache Selektionen ............................................... 34111.2.1 PARAMETERS-Anweisung ......................... 34111.2.2 Zusätze zur PARAMETERS-Anweisung ....... 343

11.3 Komplexe Selektionen ............................................ 34911.3.1 SELECT-OPTIONS-Anweisung ................... 34911.3.2 Mehrfachselektionen ................................. 35111.3.3 Zusätze zur SELECT-OPTIONS-

Anweisung ................................................ 35311.4 Selektionstexte verwenden ..................................... 354

11.4.1 Textelemente im Überblick ........................ 35511.4.2 Selektionstexte anlegen ............................. 355

11.5 Selektionsbild speichern ......................................... 35911.5.1 Selektionsvariante anlegen ........................ 35911.5.2 Report mit Variante starten ....................... 364

11.6 Ergänzende Textobjekte .......................................... 36611.6.1 Textsymbole anlegen ................................. 36611.6.2 Nachrichten anlegen .................................. 368

11.7 Selektionsbilder frei gestalten ................................. 37211.7.1 Einzelne Zeile gestalten ............................. 37311.7.2 Zeilenblock gestalten ................................. 375

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

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

12 Interne Tabellen ....................................................... 395

12.1 Sinn und Zweck interner Tabellen ........................... 39612.2 Aufbau und Arten von internen Tabellen ................ 398

3803-8.book Seite 11 Freitag, 31. Juli 2015 3:10 15

Page 18: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Inhalt

12

12.3 Interne Standardtabelle anlegen .............................. 40212.3.1 Objektorientierte Schreibweise mit

Workarea ................................................... 40212.3.2 Obsolete Schreibweise mit Kopfzeile .......... 405

12.4 Interne Standardtabelle füllen ................................. 40612.4.1 Interne Tabelle mit Workarea füllen ........... 40612.4.2 Interne Tabelle mit Kopfzeile füllen ............ 410

12.5 Interne Tabelle zeilenweise verarbeiten ................... 41312.5.1 Interne Tabelle mit Workarea

verarbeiten ................................................ 41312.5.2 Interne Tabelle mit Kopfzeile

verarbeiten ................................................ 41612.6 Inhalte von internen Tabellen löschen ..................... 424

12.6.1 Workareas und interne Tabellen mit Workarea löschen ...................................... 425

12.6.2 Interne Tabellen mit Kopfzeile löschen ....... 42612.7 Codebeispiel zu ITAB mit Workarea ......................... 42712.8 Codebeispiel zu ITAB mit Kopfzeile ......................... 437

13 Modularisierung von Programmen ......................... 453

13.1 Überblick ................................................................ 45413.2 Quelltext-Module .................................................... 45613.3 Prozeduren .............................................................. 460

13.3.1 Unterprogramme ....................................... 46013.3.2 Funktionsbausteine .................................... 47213.3.3 ABAP-Klassen ............................................ 490

13.4 Speicherbereiche für Datenübergabe ....................... 50013.4.1 Globales SAP Memory ................................ 50113.4.2 Lokales SAP Memory ................................. 50113.4.3 ABAP Memory ........................................... 50213.4.4 Shared Objects ........................................... 503

13.5 Codebeispiele zur Modularisierung .......................... 50413.6 Codebeispiele zum Aufruf fremder Reports .............. 519

3803-8.book Seite 12 Freitag, 31. Juli 2015 3:10 15

Inhalt

13

14 Weiterführende Themen ......................................... 527

14.1 Interessante Zeiten für die Programmiersprache ABAP ..................................... 528

14.2 SAP HANA .............................................................. 52914.3 Programmieren mit Frameworks ............................. 529

14.3.1 Beispiel Archivierungslösung ..................... 53114.3.2 Skizze einer möglichen

Archivierungslösung .................................. 53314.4 Wichtige Frameworks im SAP-Standard .................. 534

14.4.1 Web Dynpro ABAP und Floorplan Manager .................................... 534

14.4.2 SOAP-Webservices .................................... 53814.4.3 OData-Services mit SAP Gateway .............. 54114.4.4 Frameworks für Erweiterungen .................. 542

14.5 Auf zu neuen Ufern! ............................................... 545

Anhang ........................................................................... 549

A Icons auf einen Blick ......................................................... 551

B Abkürzungsverzeichnis ...................................................... 553

C Die Autoren ...................................................................... 557

Index ........................................................................................ 559

3803-8.book Seite 13 Freitag, 31. Juli 2015 3:10 15

Page 19: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

559

Index

* (Kommentarzeile) 89/ (neue Zeile) 97/NEX 49& (Platzhalter) 372$TMP 57, 184

A

ABAP 23Anweisung 90Befehl 90Entwicklergemeinde 528Fortgeschrittenes 528Herkunft 528Kommando 90Laufzeitumgebung 35Programmierung 38Prozessor 33Schlüsselwortdokumentation 91Trial Version 546

ABAP Debugger 149, 155, 166, 434Aufruf 151Ausführungsebene 157beenden 166klassischer 150neuer 150, 159Systemfeld 159Tabellenbereich 161Tabellenmodus 446

ABAP Development Tools 42, 52ABAP Dictionary 46, 51, 52, 55, 183,

210, 252, 257Objekt 53, 58Text 357Währungsfeld 223

ABAP Editor 46, 77, 81, 99dynamischer Breakpoint 166Icons 83Modus 81quellcodebasierter 82Steuerung 82Symbolleiste 83textbasierter 82Textelemente 355

ABAP in Eclipse 42, 52ABAP Memory 502, 518ABAP Objects 36, 401, 490, 528ABAP Workbench 42, 43, 92, 457ABAP-Klasse � KlasseABAP-Programm � ProgrammABAP-Report � ReportAbbruchanweisung 302, 303Abbruchbedingung 298, 305, 327Ablauflogik 33Ablaufsteuerung 525Abmelden 48

/NEX 49mit Sicherheitsabfrage 48ohne Sicherheitsabfrage 49

Abstraktion 539Backend-Abstraktion 540Plattform-Abstraktion 540

Acrobat Reader 482ADD 119Addition 117ADJACENT DUPLICATES 416ADT 42, 52Advanced Business Application Pro-

gramming � ABAPAktion 286Aktivierungsprotokoll 186

3803-8.book Seite 559 Freitag, 31. Juli 2015 3:10 15

Page 20: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Index

560

Aktivierungsreihenfolge 188Allgemeiner Berichts-Aufbereitungs-

Prozessor � ABAPalphanumerisches Zeichen 130ALV Grid 170Amazon Web Services 17AND 310AND RETURN 472Änderung 202Änderungswesen 30Ankreuzfeld 471Anmeldebildschirm 39Anmeldemandant 75Anmeldung 39Antwortzeit 400Anweisung 90Anweisungsblock 286, 292, 373Anweisungsblock beenden 302Anwendungsprotokoll 372anwendungsübergreifende Kompo-

nente 41APPEND 409, 412, 433, 436Append-Struktur 181, 202

aktivieren 205anlegen 203Komponente 204, 205pflegen 202zuordnen 203

APPL0 71Applikationsschicht 26, 27Applikationsserver 27Arbeitsbereich 402, 413Arbeitsspeicherbereich 472, 500Arbeitsteilung 26, 28, 252Architektur 25Architekturmuster 536Archivierung 531Archivindex 532Array-Fetch 443Artikelnummer 131AS CHECKBOX 346AS TEXT 424ASSIGNING 414AT 140AT SELECTION-SCREEN 339, 340,

343, 371

Attribut 491Instanzattribut 492Klassenattribut 492

Ausdruck, logischer 285, 306ausführbares Programm 79, 337Auslieferungsklasse 55Ausnahme 480Ausnahmebehandlung 490Ausschneiden 212Auswahlknopf 347AUTHORITY-CHECK 254

B

BackendAbstraktion 540Modus 81

Backquote 135BAdI 543Batch-Job 79Bedingung 266, 286, 300, 422

auflösen 309komplexe 291, 308

Befehl 90Befehl rückgängig machen 88BEGIN OF 405BEGIN OF BLOCK 375BEGIN OF LINE 373Benutzerstammsatz 253Berechnung 107

Alter bestimmen 229Dimension von Zeitspannen 230Fälligkeitsdatum bestimmen 225Frist ermitteln 224mit Datumsfeld 224mit Mengenfeld 235mit Währungsfeld 235mit Zeitfeld 231Monatsanfang ermitteln 225Rechnungsbetrag ermitteln 237Rechnungsdatum bestimmen 225Stichtag ermitteln 224, 225Ultimo ermitteln 227verbleibende Tage ermitteln 228, 229Zeit bis Mitternacht 232Zeitspanne in Jahren 230

3803-8.book Seite 560 Freitag, 31. Juli 2015 3:10 15

Index

561

Zeitspanne in Minuten 232Zeitspanne in Sekunden 231Zeitspanne in Stunden 232Zeitspanne in Tagen 230Zeitspanne mit Datumswechsel 233

Berechtigung 253Gruppe 79Konzept 253Objekt 253Programmausführung 254Prüfung im Quellcode 254

Bereich, physischer 71BETWEEN 308Bewegungsdaten 55Binärzeichen 502Bindestrich 95Block 375

Ablage 110löschen 111Name 376

BPM 536BREAK-POINT 153, 168Breakpoint 86, 150, 162

aktiver 166dynamischer 154, 167, 168externer 86löschen 166Modus 165Session 154, 166setzen 86, 153, 165sichern 166statischer 168verwalten 166

Buchungskreis 40Büro 41Business Add-In 543BY 423

C

c (Datentyp) 130, 133, 141, 224, 236, 307

CALL FUNCTION 484, 490CALL METHOD 500Callback 172CASE 295, 320

CASE-Struktur 295, 490CHAR 188, 191CHECK 303, 464CHIP 32Class Builder 493

aufrufen 493Darstellung anpassen 494

CLASS DEFINITION 499CLASS IMPLEMENTATION 499Class Pool 499CLEAR 260, 262, 263, 425, 426, 437,

446, 450, 468Client-Server-Architektur 26, 251Client-Software 535Cluster 502Cluster-Tabelle 53COBOL 528Code

ausschneiden 87einfügen 88kopieren 88Tabelle 307

Codierung, harte 335COMMENT 374COMPUTE 121CONCATENATE 137, 148CONCATENATE SEPARATED BY 138CONDENSE 137, 148CONDENSE NO-GAPS 137CONSTANTS 117CONTINUE 302CUKY 191, 192, 223, 235CURR 191, 192, 223, 224, 235Customer Exit 543Customizing 29, 542Customizing-Tabelle 530

D

d (Datentyp) 221DATA 113, 116, 130, 221, 243, 259,

405, 445DATA BEGIN OF 405Data Browser 55, 186, 211DATA DECIMALS 113Data Dictionary � ABAP Dictionary

3803-8.book Seite 561 Freitag, 31. Juli 2015 3:10 15

Page 21: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Index

562

DATA END OF 405DATA LIKE 114, 131DATA OCCURS 405DATA TYPE 113, 131DATA VALUE 115, 131, 222Daten, temporäre 349Datenart 71Datenbank

anpassen 182, 215logische 80Schicht 26Schnittstelle 34, 252Server 27Sperre 254Utility 213

Datenbanktabelle 53, 266, 500ausgeben 94Datensatz einfügen 259kopieren 183lesen 94Modifikation 181transparente 181

DatendeklarationInclude 458Prozedur 460

Datenelement 58, 59, 109aktivieren 70, 188anlegen 59prüfen 69

Datenkonsistenz 472Datenobjekt 112, 402

deklarieren 407kompatibles 119konvertibles 119

Datensatz 397ändern 262, 263anlegen 259, 263anzeigen 76eingeben 74erfassen 73löschen 264prüfen 186Umsetzung 215

Datenschnittstelle 464, 477, 479Datentyp 61, 113, 121, 130, 402, 463

c 130, 133, 141, 224, 236, 307CHAR 188, 191

CUKY 191, 192, 223, 235CURR 191, 192, 223, 224, 235d 221DEC 191, 235elementarer 114, 402f 341F4-Hilfe 65generischer 130, 131i 113, 120, 230komplexer 402n 131, 133, 141NUMC 65, 191p 113, 117, 120, 224, 230, 235, 236QUAN 191, 236t 222UNIT 191, 236zeichenartiger 221

Datentyp string 130Datenübergabe 500, 502Datenverlust 213Datumsfeld 221

Berechnungen 224deklarieren 221füllen 222, 225Verarbeitung 224

Datumsformat 106Debugger � ABAP DebuggerDebugger-Layer konfigurieren 172Debugging 149

Layer-aware 156, 168Modus 151, 154Profil 172

DEC 191, 235DECIMALS 113DEFAULT 343, 353Deklaration 35, 114, 341DELETE 258, 264, 265, 283, 285, 416,

421, 450DELETE ADJACENT DUPLICATES

416DELETE FROM 416DELETE INDEX 421DESCENDING 424DESCRIBE 419DESCRIBE LINES 419Dezimaltrennzeichen 116Dezimalzahl 113

3803-8.book Seite 562 Freitag, 31. Juli 2015 3:10 15

Index

563

DialogModul 36Steuerung 33Umsetzung 215

digitale Signatur 401Dispatcher 33DIV 122, 230DIVIDE 119Division 117, 122, 230Division, ganzzahlige 122, 230, 332DO 298, 299Dokumentation 63Domäne 59, 115, 196

aktivieren 68, 188anlegen 64erstellen 60prüfen 67WAERS 194, 196

Drucken 336Druckposition 128Dump-Aufbereitung 93Dynpro 32, 336

Ablauflogik 336klassisches 335Prozessor 33Prüfung 199Selektionsbildschirm 335

E

E (Nachrichtentyp) 371Eclipse 52Editiermodus 82Editorsperre 80EHP 545Eigenschaft 78Eigenschaft, semantische 199Eingabeblock 373Eingabefeld positionieren 372Eingabehilfe 200Eingabeparameter 337Eingabeprüfung 190, 193, 196, 197,

199, 340, 342, 391, 394Einsetzen 212Einstellung, technische 71Einzelschritt 156, 435

Einzelwert 66, 350Element erstellen 60elementarer Datentyp 114ELSE 292, 294ELSEIF 293, 294END OF 405END OF BLOCK 375END OF LINE 373ENDCASE 295ENDDO 298ENDFORM 461, 464, 466ENDIF 286, 292ENDLOOP 413Endlosschleife 298ENDSELECT 96, 248ENDWHILE 300Enhancement Framework 544Enhancement Package 545Enterprise Service 541Entwicklerschlüssel 43Entwicklungssystem 28, 29Ereignis 36, 337, 390

beenden 305Beispiel 339Block 36Schlüsselwort 337, 390Steuerung 390, 392Struktur 338

Ersatzzeichen 474Erweitern 84Erweiterung 202, 542Erweiterungskategorie 73Erweiterungspunkt 543exe-Datei 474EXIT 304, 326Exponentialzahl 121EXPORT 502EXPORT TO MEMORY ID 502Exportparameter 479, 485, 490

F

f (Datentyp) 341F1 90, 344, 374F1-Hilfe 75F3 93, 368

3803-8.book Seite 563 Freitag, 31. Juli 2015 3:10 15

Page 22: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Index

564

F4 190, 200, 344, 345F4-Hilfe 65, 75, 360F5 156F6 157F7 157F8 93, 157, 391Facebook 546Fallunterscheidung 285, 295Fehler 296, 320

Analyse 93Ausgang 490Behandlung 272, 340, 370, 371Nachricht 199Protokoll 213Suche 150

Feld 57, 59, 107, 112, 149, 205, 399Attribut 58Bezeichner 62, 357deklarieren 112, 221, 403Eigenschaften 409hinzufügen 181Länge 113, 130, 131Liste 95, 191, 404, 464, 502löschen 216Name 57namensgleiches 406, 409, 410positionieren 372Quellfeld 120Sternchen 95Typ 403verarbeiten 112Zielfeld 120

Feldermodus 155, 156Feldinhalt

modifizieren 159prüfen 157überwachen 165verschieben 134

Festpunktarithmetik 80Festwert 66, 118, 188

Einzelwert 189Intervall 189pflegen 188testen 189

Float 341Floorplan Manager 537FOR FIELD 374

FORM 461, 463, 466FPM 537Framework 529Framework debuggen 169FREE 425, 426, 446Fremdschlüssel 67, 193, 198

Beziehung 216, 255Feld 199Feldart 199pflegen 197Tabelle 197testen 200

FROM 414, 416Frontend-Editor

alt 82neu 82

Function Builder 46, 473, 475Function Builder, Testumgebung 481Funktionsbaustein 36, 46, 255, 455,

472Ablaufart 477aufrufen 483, 484, 488Ausnahme 480Dokumentation 486Eigenschaft 476Export 478Exportparameter 479Import 477Importparameter 479Name 484remotefähiger 477suchen 473, 474testen 473, 481, 482Wertübergabe 477

Funktionsbibliothek 473Funktionscodefeld 45Funktionsgruppe 337, 454, 473, 490

G

Ganzzahldivision 122Ganzzahldivision mit Rest 122Gebietswurzelklasse 504generischer Datentyp 130, 131generischer Schlüssel 198GET PARAMETER 501

3803-8.book Seite 564 Freitag, 31. Juli 2015 3:10 15

Index

565

GET PARAMETER ID 501Gleitpunktzahl 341Graphical User Interface 27, 38Grenze 398Groß- und Kleinschreibung 132, 266,

342Größenkategorie 71Grundrechenart 112, 117GUI 27, 38

H

Haltepunkt � BreakpointHANA 529Hartcodierung 335Hash-Algorithmus 400, 421Hash-Tabelle 400Hash-Tabelle, READ 421Helferklasse 493, 499Hierarchiestufe 131HIGH 349Hilfe 85Hilfetext pflegen 64Hintergrundverarbeitung 362Hochkomma 101Hochkomma, umgekehrtes 135Hollywood-Prinzip 531HTTP 539Hut 437, 446, 466

I

i (Datentyp) 113, 120, 230ICF 28IF 286, 292, 294, 303, 309IF-Struktur 292, 295, 348, 351, 490IF-Struktur schachteln 294IMPORT 502IMPORT FROM MEMORY ID 502Importparameter 479, 485IN PROGRAM 469INCLUDE 410, 457Include

expandieren 210komprimieren 210

Include-Programm 454, 456Schachtelung 459Wiederverwendung 456

Include-Struktur 206aktivieren 210anlegen 208einfügen 208einpflegen 206Positionierung 207Voraussetzung 206

INDEX 415, 418Index 399, 415, 421Indextabelle 400, 415, 418, 421Individualsoftware 542Industrieminute 246Infosystem 41INITIAL SIZE 403INITIALIZATION 338, 339, 390Initialwert 58, 115, 262Inkonsistenz prüfen 200Inline-Dokumentation 89INSERT 258, 259, 263, 415, 419, 433Instanz 28, 31Instanzattribut 492Instanzmethode 491Integer 113, 230interne Tabelle 266, 396, 466

deklarieren 404, 405Feld 398füllen 406Kopfzeile 397, 411lokale 466mit Kopfzeile 466satzweise füllen 411Schleife 413sortieren 423Struktur 396verarbeiten 413Vorteil 396Workarea 397

Internet Communication Framework 28

Intervall 66, 308, 350, 352INTO 415, 416Inversion of Control 531IS INITIAL 307, 347

3803-8.book Seite 565 Freitag, 31. Juli 2015 3:10 15

Page 23: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Index

566

J

Java 528JavaScript 528

K

Kalender 226Kapselung 454Kardinalität 199Kettensatz 98, 105, 126, 406Key 57Klammer 312Klammerebene 309Klasse 490

Attribut 491, 492Gebietswurzelklasse 504globale 492Helferklasse 493, 499Instanz 491Interface 531interner Zustand 491lokale 493, 499Methode 491, 493Objektinstanz 491persistente 267Scope 491Shared-Memory-fähige 504Sichtbarkeit 491testen 496Zustand 491

Kleinschreibung � Groß- und Klein-schreibung

Kommando 90Kommentar 89, 489

Anführungszeichen 89im Bildschirm 373Sternchen 89

Kommentarzeile 110, 289kompatibles Datenobjekt 119Komponente

anwendungsübergreifende 41Append-Struktur 203, 205

Konsistenzprüfung 69Konsolidierungssystem 28, 29Konstante 112

Kontextsensitivität 371, 376Kontrollstruktur 286

Anfang 286Ende 286IF 292

konvertibles Datenobjekt 119Konvertierungsregel 119, 120Kopfzeile 266, 397, 405, 411, 412,

417, 466Kopfzeile initialisieren 426Kopieren 109, 212Korrekturwesen 30Kryptologie 401Kundennamensraum 204, 207Kurzbeschreibung 62Kurzdokumentation 100

L

Länge 141Langtext 357, 486Laufzeit 215Laufzeitfehler 159Laufzeitobjekt 186Laufzeitumgebung 35, 79, 338Layer-aware Debugging 156, 168, 169

aktivieren 177deaktivieren 177Objektmenge 172

LeerzeichenBerechnung 118entfernen 136

Leerzeile 212Leerzeile erzeugen 99Lesbarkeit 37, 113Lesesperre 256LIKE 114, 131, 344LINES 419LINE-SIZE 104Linie erzeugen 98Listausgabe 36, 335, 336Listausgabe, spaltengerechte 127Listbild 105Listbildschirm 336Liste 91, 97Listprozessor 336, 339

3803-8.book Seite 566 Freitag, 31. Juli 2015 3:10 15

Index

567

Listüberschrift 355Literal 91, 116, 132, 244, 266, 283,

367, 448, 484String-Literal 135Textfeldliteral 135

LOAD-OF-PROGRAM 37, 338logische Datenbank 80logischer Ausdruck 285, 306logischer Ausdruck, verknüpfen 294,

308logischer Operator 306Logistik 41lokales Objekt 31, 57, 184LOOP 413, 418LOOP ASSIGNING 414LOW 349LOWER CASE 345, 346, 353LT 302

M

Mandant 40Mandantenbehandlung, automati-

sche 257Mandantennummer 257Mandantenunabhängigkeit 257Mandantenverwaltung, automatische

74Mehrfachselektion 351, 353Mehrfachverwendbarkeit 208Meldung, Statuszeile 340Memory-ID 502Mengeneinheit 191Mengenfeld 191, 236Menu Painter 47MESSAGE 368, 370, 371, 391

ID 368Nebenwirkungen 372

Methode 455, 491, 493Instanzmethode 491Klassenmethode 491PUBLIC 493Scope 491Sichtbarkeit 455statische 491testen 496

Mini-SAP-System 546MOD 122, 230, 231Model-View-Controller 536Modifikation 84, 542MODIFY 258, 263, 414, 418MODIFY FROM 414Modul 463Modularisierung 24, 402, 453Modularisierungstechnik 454Modulpool 337Modus

externer 502zweiten öffnen 93

MOVE-CORRESPONDING 182Multi-Byte-Codierung 80Multiplikation 117MULTIPLY 119Mussfeld 343, 393Muster 86, 287, 483Muster einfügen 86, 287, 290MVC 536

N

n (Datentyp) 131, 133, 141Nachkommastelle 113, 116Nachricht 366, 368

anlegen 368Klasse 368, 369, 371Nummer 371pflegen 369Pool 368sichern 369Typ 370, 391

Name, lokaler 468Namensgleichheit 406, 409Namenskonvention 54, 77, 112, 204Namensraum 54Namensraumpräfix 368Namensvergabe

dynamische 260, 263, 265statische 265

Native SQL 34, 54Navigationsfenster 85Negation 310Netzlaufwerk 483

3803-8.book Seite 567 Freitag, 31. Juli 2015 3:10 15

Page 24: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Index

568

Netzwerkpfad 483NEW-PAGE PRINT ON 336Nicht-Schlüsselfeld 187, 211NO-EXTENSION 354NO-GAPS 137NOT 310NUMC 191numerisches Textfeld 131numerisches Zeichen 131

O

Object Navigator 48Object Services 267Objekt

aktivieren 188lokales 31, 57, 184

Objektinstanz, Attribut 492Objektkatalogeintrag 81Objektklasse 253Objektliste 84Objektorientierung 456, 490, 528objektrelationaler Persistenzdienst

267Objektschlüssel 202OBLIGATORY 343, 353OCCURS 405OData 25, 541Oder, logisches 308Offenheit 24Open SQL 34, 46, 54, 252, 539Open-SQL-Anweisung 257Operand

Stellungsoperand 464Stellunsoperand 469

Operationarithmetische 231String 231

Operation, arithmetische 231Operator, logischer 306OPTION 349OR 309ORDER BY PRIMARY KEY 96Originalsprache 78

P

p (Datentyp) 113, 120, 224, 230, 236Paket 56Parameter

Liste prüfen 469obligatorischer 485optionaler 485, 489typisieren 344

Parameter-ID 501anlegen 501initialisieren 518lesen 517prüfen 524schreiben 524

PARAMETERS 341PERFORM 461, 462, 466, 469, 516PERFORM IN PROGRAM 469PERFORM USING 464persistente Klassen 267Persistenzdienst, objektrelationaler

267Personal 41Pflegebildschirm 55, 208Pflegedialog 187Pflichtfeld 343, 393physischer Bereich 71PI 540Plattform, Abstraktion 540Platzhalter 372Pool-Tabelle 53POSITION 375Position 127Position, angeben 127Positionierung 140Positionsnummer 131Postleitzahl 115Präfixnamensraum 204, 207Präsentationsschicht 26Präsentationsserver 26, 28Pretty Printer 87Primärschlüssel 263, 264PRIVATE 491Produktivsystem 28, 30Profil 253Programm

Abbruch 93

3803-8.book Seite 568 Freitag, 31. Juli 2015 3:10 15

Index

569

Ablaufsteuerung 285aktivieren 84, 92anlegen 77ausführbares 79, 337ausführen 92Ausführung 93Eigenschaft 78erweitern 84Gruppe 80Logik prüfen 150modularer Aufbau 37Name 77prüfen 92sichern 92starten 92Status 79, 83Struktur 35Verarbeitung 460

PROTECTED 491Prozedur 36, 454, 460, 472prozedurale Konstrukte 490prozedurale Sprache 528Prüfsummenverfahren 401Prüftabelle 197, 198, 216PUBLIC 491, 493Pufferung 72, 252Punkt 90

Q

Qualitätssicherungssystem 29QUAN 191, 236Quellcode

editieren 87, 99modularisieren 454schreiben 99umschalten 83

Quellfeld 120, 138Quelltabelle 183

R

Radiobutton 347RADIOBUTTON GROUP 348Rahmen 373

Rahmenprogramm 461Rahmenwerk 529READ 415, 420, 448READ INDEX 415READ INTO 415, 416READ WITH KEY 421Rechengenauigkeit 121, 122, 235Rechenzeichen 119

– 119* 119/ 119, 122, 230+ 118

Rechnungswesen 41Redundanz 213Referenzfeld 192, 216, 224Registerkarte, Feld 205Remote Function Call 538Remote-Aufruf 538Reorganisationsarbeit 182REPLACE 134, 148REPORT 90, 109, 368Report 32

Ausgabe 336Datenübergabe 500externen aufrufen 469kopieren 108starten 364Variante 364, 469

REPORT LINE-SIZE 104Repository-Infosystem 473reservierter Speicherbereich, freigeben

426RETURN 305Returncode 160, 258, 261, 263, 264,

320, 450, 490Returncode, CASE-Struktur 296REUSE_ALV_GRID_DISPLAY 170,

176RFC 538Rolle 253Rückgabewert 160Rückruffunktion 172Rumpfzeile 502

löschen 416, 425, 426verändern 418

3803-8.book Seite 569 Freitag, 31. Juli 2015 3:10 15

Page 25: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Index

570

S

Sammelprofil 253Sandbox-System 29, 546Sandkasten 29, 546SAP Business Process Management

536SAP Community Network 546SAP Enterprise Portal 535SAP ERP 24SAP Gateway 25, 541SAP GUI 27, 38SAP HANA 529SAP HANA, Datensatzsortierung 97SAP Inside Track 546SAP List Viewer 170SAP Logon 38SAP Memory 518, 524

globales 501lesen 501lokales 501schreiben 501

SAP NetWeaver Business Client 27, 32SAP Process Integration 540SAP TechEd 547SAP-Forum 546SAPPHIRE NOW 547SAP-Release 543SAPscript-Editor 63SAP-System, Architektur 25SAP-Trial-System 17, 546SAP-Weblog 546SBAL_DOCUMENTATION 372Schachtelung 102, 294, 297, 299, 301,

403Ebene 294Include-Programm 459

Schaltjahr 311Schleife 96, 102, 248, 297, 397

Abbruchanweisung 302äußere 299Durchlauf begrenzen 298Endlosschleife 298innere 299mit Bedingung 297ohne Bedingung 297Verarbeitung 103Zähler 299

Schlüsselbenutzerdefinierter 399eindeutiger 399, 404, 415generischer 198nicht eindeutiger 399, 403, 415

Schlüsselfeld 57, 196, 207, 415hinzufügen 212löschen 213, 216Manipulation 182Nicht-Schlüsselfeld 187, 211Veränderung 211

Schlüsselverzeichnis 542Schlüsselwortdokumentation 91Schnittstelle 403Schrägstich 97Schreibsperre 256Schreibweise 401SCN 546Scope 491Screen Painter 47, 335SE11 52, 183SE24 493SE37 473SE38 77SE91 369SELECT 95, 248, 257, 296, 297, 411SELECTION-SCREEN 373SELECTION-SCREEN BEGIN OF

BLOCK 375SELECTION-SCREEN BEGIN OF LINE

373SELECTION-SCREEN COMMENT 374SELECTION-SCREEN END OF BLOCK

375SELECTION-SCREEN END OF LINE

373SELECTION-SCREEN FOR FIELD 374SELECTION-SCREEN POSITION 375SELECTION-SCREEN TITLE 376SELECTION-SCREEN WITH FRAME

376SELECT-OPTIONS 349Selektion 341, 349Selektionsbild 336, 344, 359, 363,

470Abbruch 371Layout 372

3803-8.book Seite 570 Freitag, 31. Juli 2015 3:10 15

Index

571

speichern 359übergehen 471Vorlage 359

Selektionstabelle 349Selektionstext 354, 355

aktivieren 358anlegen 355pflegen 356

Selektionsvariante anlegen 359semantische Eigenschaft 199SEPARATED BY 138Session-Breakpoint 86, 154, 166SET PARAMETER 501SET PARAMETER ID 501Shared Objects 503

Gebiet 503Gebietswurzelklasse 504

SHIFT 133SHMA 503Sichtbarkeit 491Sidepanel 32SIGN 349Signatur, digitale 401Sizing 29SKIP 99, 316SOAP 539SORT 423, 450SORT AS TEXT 424SORT BY 423SORT DESCENDING 424SORTED TABLE 404Sortierkriterium 423Sortierreihenfolge 423sortierte Tabelle 400, 419, 421Sortierung 423

absteigende 424aufsteigende 424binäre 423sprachspezifische 424

soziale Medien 546SPACE 146Spalte 399Spaltenaufteilung 127Speicherbereich 405Speicherbereich, reservierter 426Speicherplatz, initialer 403

Sperreaufheben 256betriebswirtschaftliche 254Datenbanksperre 254logische 256Zeitpunktproblematik 256

Sperrkonzept 254physische Datenbank 254SAP-System 255Sperrproblematik 256

Sperrobjekt 255entsperren 255Sperre setzen 255

Sperrtabelle 255, 256SPLIT 139, 148SPLIT AT 140Sprachenschlüssel 368SQL 252SQL, natives 34Stammdaten 55STANDARD TABLE OF 403Standardschlüssel 399Standardselektionsbild 337Standardsoftware 542Standardtabelle 204, 211, 399, 403,

419anlegen 402erweitern 203

Start über Variante 80START-OF-SELECTION 37, 339, 391,

460Startwert 115, 343, 349Status 78Stellungsoperand 138, 371, 464, 469Steuerungskomponente, zentrale 525Stoppschild 434Stoppuhr 301Streuwertfunktion 401string 130String-Literal 135String-Operation 132, 141, 231, 244Struktur 94, 205

Append 202beenden 406deklarieren 395flache 206Include 206

3803-8.book Seite 571 Freitag, 31. Juli 2015 3:10 15

Page 26: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Index

572

interne Tabelle 396Komponente 205Pflegebildschirm 208SYST 222Unterstruktur 206Zeilentyp 399

Strukturierung 453SUBMIT 470, 472, 501SUBMIT AND RETURN 472SUBMIT VIA SELECTION-SCREEN

470SUBMIT WITH 470SUBTRACT 119Subtraktion 117Suchbegriff 135Suche 88

generische 474sequenzielle 421

Suffix 482Summe

ausgeben 315ermitteln 315

Summenfeld, initialisieren 316Switch Framework 544SY-DATUM 222SY-INDEX 299, 301, 304Symbolleiste 83Syntax 401

Fehler 84prüfen 84, 460

SYST 222Systemarchitektur 25Systemdatum 222Systemmandant 59Systemsteuerung 542Systemtabelle 159, 368Systemzeit 222SY-SUBRC 160, 258, 262, 296, 450,

480, 490SY-TABIX 160, 422

T

t (Datentyp) 222T100 368, 391

Tabelle 402aktivieren 73ändern 202anlegen 54Cluster 53Deklaration 101, 401Eintrag 186erweitern 202, 203Fehlermeldung 192Feld 399Feld löschen 216Fremdschlüsseltabelle 197Hash-Tabelle 400im Arbeitsspeicher 395Index 421Indextabelle 400, 415, 418Inhalte durchsuchen 420interne � interne TabelleKopf 398kopieren 182, 183lokaler Name 468löschen 218, 220mehrdimensionale Verarbeitung 398mit Kopfzeile 418modifizieren 181Modus 155n-dimensionale Verarbeitung 398Pflegedialog 73pflegen 54, 187Pool 53prüfen 71Prüftabelle 197Rumpf 397, 398, 411, 417, 466sichern 56sortierte 400, 419, 421Sortierung 423Standard 399Status 185T100 368, 391TCURC 194technische Einstellungen 71temporäre 396transparente 53Typ 402, 403, 407Umsetzung 182, 213, 216Verarbeitung 401vervollständigen 70

3803-8.book Seite 572 Freitag, 31. Juli 2015 3:10 15

Index

573

Zeile 186, 397, 399Tabellenarbeitsbereich 259, 266

löschen 262Puffer 262

Tabellenbereich 94Tabellenbereich prüfen 160Tabellenfeld

löschen 216pflegen 57

Tabelleninhaltanzeigen 75modifizieren 257

Tabellenstruktur 104Tabellenstruktur, physische 211TABLE 416TABLES 94, 397Tablespace 71TCURC 194, 197technische Einstellung 71Teil-String 141temporäre Daten 349Testmodus 84Testsystem 28, 29Text

freier 372länderspezifischer 78Platzhalter 367

Textelement 244, 355Textelement, ergänzendes 366Textfeld, numerisches 131Textfeldliteral 135Textpool 355, 358Textpool aktivieren 368Textsymbol 355, 366, 373

aktivieren 368Nummer 368pflegen 367

TIMES 298TITLE 376Transaktion

Berechtigung 254Code 45Laufzeit 501SHMA 504

TRANSLATE 346transparente Tabelle 53Transparenz 37

Transport 56Transportwesen 30Trennzeichenkette 140Trial-System 17, 546Trick 35 226, 228Twitter 546Typdeklaration 95, 402, 404, 410TYPE 113, 131, 344TYPE-POOLS 178TYPES 403Typkonvertierung 147, 221Typkonvertierung, automatische 307

U

Übergabewert 489Übersetzbarkeit 367UDDI 540ULINE 98Umsetzung

im Dialog 215physische 215

Unabhängigkeit 24Und, logisches 310UNDER 128Unicodeprüfung 80UNIT 191, 236Unterprogramm 36, 455, 460

aufrufen 461, 464, 468, 515externes 468Feld 464internes 468

Unterstruktur 206UPDATE 258, 262, 263Upgrade 203User Exit 543USING 464UZEIT 222

V

VALUE 115, 131, 222, 445VALUE CHECK 345Variable 112, 298, 341

explizit deklarieren 463globale 462

3803-8.book Seite 573 Freitag, 31. Juli 2015 3:10 15

Page 27: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Index

574

implizit deklarieren 464lokale 463Name 112

Variante 81, 359anlegen 359deaktivieren 363Eigenschaft 362Pflege 362schützen 362, 364Start über 80

VerarbeitungBlock 36, 337, 454direkte 215Hintergrund 215lesende 397schreibende 397

Verbuchungsaufgabe 477Verprobung 190, 200Versionierung 83Verwendungsnachweis 85, 218Verzweigung 291VIA SELECTION-SCREEN 470, 471Vorbelegung 116Vorselektion 315Vorwärtsnavigation 60, 209, 457, 501

W

WAERS 194, 196Währungsbetrag 191Währungsbezeichnung 224Währungseinheit 191, 196, 280Währungsfeld 191, 223Währungsschlüssel 196, 223, 224Wartbarkeit 37Watchpoint 150, 162

anlegen 162Modus 162sichern 166

Web Dynpro 25Web Dynpro ABAP 169, 534Web Dynpro Java 535Webbrowser 535Webservice

OData 541SOAP 538

Wechselkursumrechnung 235Weitersuchen 88Wert

gültiger 193negativer 116übergeben 469, 470

Wertebereich 65, 188Wertehilfe 188, 200Wertehilfeliste 190, 200Werteliste 193Wertetabelle 67, 194, 196, 197, 198WHEN OTHERS 295WHERE 267, 297, 422WHILE 300Wiederholung � SchleifeWiederverwendbarkeit 402Wiederverwendung 456WITH 371, 470WITH FRAME 376WITH KEY 415, 421WITH UNIQUE KEY 404Workarea 94, 160, 259, 262, 266,

270, 406, 416, 433deklarieren 259, 404, 407füllen 408initialisieren 272, 425interne Tabelle 397, 406

Workprozess 33Workprozess, Sperrkonzept 255WRITE 91, 97, 127WRITE UNDER 128WRITE, Kettensatz 98

X

X-Ablage 89XML 539

Y

Y-Ablage 89

Z

Z-Ablage 89

3803-8.book Seite 574 Freitag, 31. Juli 2015 3:10 15

Index

575

ZahlDezimalzahl 113Exponentialzahl 121ganze 113gepackte 121, 223

Zeichenalphanumerisches 130ausschneiden 132numerisches 131

Zeichenkette 102, 129, 221Anfangsposition 141Datentyp 130ergänzen 132ersetzen 132, 134modifizieren 129Operation 132suchen 132verdichten 136verschieben 132, 133zerlegen 139zusammenziehen 137

Zeile 397, 399aktualisieren 264ändern 414anlegen 264

Doppelung 400einfügen 212, 419frei gestalten 373löschen 212, 216, 264, 421redundante 416

Zeilenblock � BlockZeilenstruktur 403Zeilentyp 399, 402, 406, 407

Deklaration 403deklarieren 404Struktur 399

Zeilenumbruch 97, 104Zeitfeld 222

deklarieren 222füllen 223

Zeitpunktproblematik 256Zeitspanne bei Datumswerten 229Zielfeld 120, 138Zieltabelle 184Zugriffsaufwand 421Zugriffsschlüssel 399Zugriffszeit 399, 400, 401Zusatz 91Zwischenablage 89Zwischenpuffer 89

3803-8.book Seite 575 Freitag, 31. Juli 2015 3:10 15

Page 28: Einstieg in ABAP - ReadingSample - Microsoft · 2018. 3. 24. · SAP PRESS Einstieg in ABAP Die Neuauflage von »Discover ABAP«. Bearbeitet von Karl-Heinz Kühnhauser, Thorsten Franz

Karl-Heinz Kühnhauser, Thorsten Franz

Einstieg in ABAP575 Seiten, broschiert, 4. Auflage 2015 39,90 Euro, ISBN 978-3-8362-3803-8

www.sap-press.de/3878

Wir hoffen sehr, dass Ihnen diese Leseprobe gefallen hat. Sie dürfen sie gerne emp-fehlen und weitergeben, allerdings nur vollständig mit allen Seiten. Bitte beachten Sie, dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen können. Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschützt. Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag.

Teilen Sie Ihre Leseerfahrung mit uns!

Karl-Heinz Kühnhauser war geschäftsführender Gesellschaf-ter der RGS GmbH & Co. KG, einem SAP-Servicepartner. Sein Wissen aus über 1.000 Schulungstagen gab er auch als Lehr-beauftragter für SAP-Anwendungsentwicklung und Personal-wirtschaft an der Fachhochschule Ansbach sowie als Mitglied des Ausbilderarbeitskreises und des Prüfungsausschusses der IHK weiter. Er besaß Projekterfahrung aus zahlreichen Kun-denprojekten. Karl-Heinz Kühnhauser ist im Juli 2009 überra-schend gestorben.

Thorsten Franz ist Gründer des SAP-Beratungsunternehmens operatics und seit mehr als 15 Jahren als Architekt, Berater, Entwickler, Projektleiter und Coach im SAP-Entwicklungsum-feld tätig. Er wurde als SAP Mentor und SAP HANA Distin-guished Engineer ausgezeichnet und ist häufig als Referent bei internationalen Entwicklerkonferenzen anzutreffen. Seine Schwerpunkte sind große Entwicklungsprojekte und SAP-Ein-führungen sowie der Einsatz innovativer Technologien wie SAP HANA.

Wissen aus erster Hand.