ABAP

ABAP (Fortgeschrittene Programmierung der Kommerziellen Anwendung, ursprünglich Allgemeiner Berichts-Aufbereitungs-Prozessor, Deutsch für den "allgemeinen Berichtsentwicklungsverarbeiter"), ist eine Programmiersprache auf höchster Ebene, die von der deutschen Softwaregesellschaft SAP geschaffen ist. Es wird zurzeit neben dem mehr kürzlich eingeführten Java als die Sprache eingestellt, für den Anwendungsserver von SAP, Teil seiner Plattform von NetWeaver zu programmieren, um kommerzielle Anwendungen zu bauen. Die Syntax von ABAP ist dem COBOL etwas ähnlich.

Einführung

ABAP ist eine der vielen anwendungsspezifischen Sprachen der vierten Generation (4GLs) zuerst entwickelt in den 1980er Jahren. Es war ursprünglich die Berichtssprache für SAP R/2, eine Plattform, die großen Vereinigungen ermöglicht hat, kommerzielle Großrechner-Anwendungen für das Material-Management und finanziell und Verwaltungsbuchhaltung zu bauen.

ABAP hat gepflegt, eine Abkürzung von Allgemeiner Berichtsaufbereitungsprozessor, die deutsche Bedeutung des "allgemeinen Berichtsvorbereitungsverarbeiters" zu sein, aber wurde später zur Fortgeschrittenen Programmierung der Kommerziellen Anwendung umbenannt. ABAP war eine der ersten Sprachen, um das Konzept Logischer Datenbanken (LDBs) einzuschließen, der ein hohes Niveau der Abstraktion vom grundlegenden Datenbankniveau (S) zur Verfügung stellt.

Die ABAP Programmiersprache wurde von Entwicklern ursprünglich verwendet, um den SAP R/3 Plattform zu entwickeln. Es war auch beabsichtigt, um von Kunden von SAP verwendet zu werden, um Anwendungen von SAP zu erhöhen - Kunden können kundenspezifische Berichte und Schnittstellen mit der ABAP-Programmierung entwickeln. Die Sprache ist ziemlich leicht, für Programmierer zu erfahren, aber es ist nicht ein Werkzeug für den direkten Gebrauch durch Nichtprogrammierer. Kenntnisse des Verwandtschaftsdatenbankdesigns und vorzugsweise auch objektorientierter Konzepte sind notwendig, um ABAP Programme zu schaffen.

ABAP bleibt als die Sprache, um Programme für das R/3 Client/Server-System zu schaffen, das SAP zuerst 1992 veröffentlicht hat. Weil Computerhardware, die im Laufe der 1990er Jahre, immer mehr der Anwendungen und Systeme des SAP entwickelt ist, in ABAP geschrieben wurde. Vor 2001 wurden alle außer den grundlegendsten Funktionen in ABAP geschrieben. 1999 hat SAP eine objektorientierte Erweiterung auf ABAP genannt ABAP-Gegenstände zusammen mit der R/3 Ausgabe 4.6 veröffentlicht.

Die aktuelle Entwicklungsplattform des SAP NetWeaver unterstützt sowohl ABAP als auch Java.

ABAP Laufzeitumgebung

Alle ABAP Programme wohnen innerhalb der Datenbank von SAP. Sie werden in getrennten Außendateien wie Java oder C ++ Programme nicht versorgt. In der Datenbank besteht der ganze ABAP-Code in zwei Formen: Quellcode, der angesehen und mit den ABAP Arbeitstisch-Werkzeugen editiert werden kann, und hat Code, eine binäre Darstellung erzeugt, die mit Java bytecode etwas vergleichbar ist. ABAP Programme führen unter der Kontrolle des Laufzeitsystems durch, das ein Teil des Kerns von SAP ist. Das Laufzeitsystem ist dafür verantwortlich, ABAP Behauptungen zu bearbeiten, die Fluss-Logik von Schirmen kontrollierend und auf Ereignisse (wie ein Benutzer antwortend, der auf einen Schirm-Knopf klickt); in dieser Beziehung kann es als eine Virtuelle Maschine gesehen werden, die mit Java VM vergleichbar ist. Ein Schlüsselbestandteil des ABAP Laufzeitsystems ist die Datenbankschnittstelle, die sich dreht, datenbankunabhängige ABAP Behauptungen ("Öffnen SQL") in Behauptungen, die durch den zu Grunde liegenden DBMS ("heimischer SQL") verstanden sind. Die Datenbankschnittstelle behandelt die ganze Kommunikation mit der Verwandtschaftsdatenbank im Auftrag ABAP Programme; es enthält auch Extraeigenschaften wie Pufferung von Tischen und hat oft auf Daten im lokalen Gedächtnis des Anwendungsservers zugegriffen.

Basis von SAP

Die ABAP Sprachumgebung, einschließlich der Syntax-Überprüfung, Codegeneration und Laufzeitsystems, ist ein Teil des Basisbestandteils/Schicht von SAP. Basis von SAP ist die technologische Plattform, die die komplette Reihe von Anwendungen von SAP unterstützt, die jetzt normalerweise im Fachwerk des Webanwendungsservers von SAP durchgeführt sind. In diesem Sinn kann Basis von SAP als die virtuelle Maschine gesehen werden, auf der Anwendungen von SAP laufen. Wie jedes Betriebssystem enthält Basis von SAP beide auf niedriger Stufe Dienstleistungen (zum Beispiel Speichermanagement, Datenbankkommunikation oder Wartungswebbitten) und Werkzeuge auf höchster Ebene für Endbenutzer und Verwalter. Diese Werkzeuge können executables ("Kern von SAP") sein, direkt auf dem zu Grunde liegenden Betriebssystem, Transaktionen laufend, die in ABAP oder Webbasierten Programmen entwickelt sind.

Basis von SAP stellt auch eine Schicht der Abstraktion zwischen den kommerziellen Anwendungen und dem Betriebssystem und der Datenbank zur Verfügung. Das stellt sicher, dass Anwendungen direkt auf einen spezifischen Server oder Datenbankplattform nicht abhängen und von einer Plattform bis einen anderen leicht getragen werden können.

Basis von SAP läuft zurzeit auf UNIX (AIX, HP-UX, Solaris, Linux), Windows von Microsoft, i5/OS auf IBM System i (früher iSeries, ALS/400) und z/OS auf IBM System z (früher zSeries, S/390). Unterstützte Datenbanken sind IBM DB2, Informix, MaxDB, Orakel und Microsoft SQL Server (wurde die Unterstützung für Informix in der Basisausgabe 7.00 von SAP unterbrochen).

Systeme von SAP und Landschaften

Alle Daten von SAP bestehen und alle Softwareläufe von SAP im Zusammenhang eines Systems von SAP. Ein System besteht aus einer Hauptverwandtschaftsdatenbank und einem oder mehr Anwendungsservern ("Beispiele"), die auf die Daten und Programme in dieser Datenbank zugreifen. Ein System von SAP enthält mindestens ein Beispiel, aber kann mehr größtenteils aus Gründen davon enthalten, nach Größen zu ordnen, und Leistung. In einem System mit vielfachen Beispielen stellen Lastausgleichen-Mechanismen sicher, dass die Last gleichmäßig über die verfügbaren Anwendungsserver ausgebreitet wird.

Installationen des Webanwendungsservers (Landschaften) bestehen normalerweise aus drei Systemen: ein für die Entwicklung, ein für die Prüfung und Qualitätssicherung, und ein für die Produktion. Die Landschaft kann mehr Systeme, z.B getrennte Systeme für die Einheitsprobe- und Vorproduktionsprüfung enthalten, oder es kann weniger, z.B nur Entwicklung und Produktion ohne getrennten QA enthalten; dennoch drei ist die allgemeinste Konfiguration. ABAP Programme werden geschaffen und erleben zuerst Prüfung im Entwicklungssystem. Später werden sie zu den anderen Systemen in der Landschaft verteilt. Diese Handlungen finden unter der Kontrolle der Änderung und des Transportsystems (CTS) statt, der für die Parallelitätskontrolle verantwortlich ist (z.B zwei Entwickler davon abhaltend, denselben Code zur gleichen Zeit zu ändern), Versionsmanagement und Aufstellung von Programmen auf dem QA und den Produktionssystemen.

Der Webanwendungsserver besteht aus drei Schichten: die Datenbankschicht, die Anwendungsschicht und die Präsentationsschicht. Diese Schichten können auf demselben oder auf verschiedenen physischen Maschinen laufen. Die Datenbankschicht enthält die Verwandtschaftsdatenbank und die Datenbanksoftware. Die Anwendungsschicht-Kenntnisse enthalten das Beispiel oder die Beispiele des Systems. Alle Anwendungsprozesse, einschließlich der Geschäftstransaktionen und der ABAP Entwicklung, die auf der Anwendungsschicht geführt ist. Die Präsentationsschicht behandelt die Wechselwirkung mit Benutzern des Systems. Der Onlinezugriff zu ABAP Anwendungsservern kann über eine grafische Eigentumsschnittstelle gehen, die "SAP GUI", oder über einen WWW-Browser genannt wird.

Transaktionen

Eine Transaktion in der Fachsprache von SAP ist die Ausführung eines Programms. Die normale Weise, ABAP-Code im System von SAP durchzuführen, ist durch das Eingehen in einen Transaktionscode (zum Beispiel, VA01 ist der Transaktionscode für "Schaffen Verkaufsordnung"). Transaktionen können über systemdefinierte oder benutzerspezifische, Rolle-basierte Menüs genannt werden. Sie können auch durch das Eingehen in den Transaktionscode direkt in ein Befehl-Feld angefangen werden, das in jedem Schirm von SAP da ist. Transaktionen können auch programmatisch mittels der ABAP Behauptungen angerufen werden NENNEN TRANSAKTION und REISEN ZUR TRANSAKTION AB.

Der Begriff "Transaktion" muss hier nicht missverstanden werden; im gerade beschriebenen Zusammenhang bedeutet eine Transaktion einfach, ein ABAP Programm zu nennen und durchzuführen. In der Anwendungsprogrammierung bezieht sich "Transaktion" häufig auf eine unteilbare Operation auf Daten, die entweder als Ganzes begangen oder (wiederholt) als Ganzes aufgemacht wird. Dieses Konzept besteht in SAP und wird einen LUW (Logische Einheit der Arbeit) genannt. Im Laufe einer Transaktion (Programm-Ausführung) kann es verschiedenen LUWs geben. Die Transaktion für den ABAP Arbeitstisch konnte mit dem Transaktionscode SE80 angerufen werden, um an verwandten Tätigkeiten ganzen ABAP zu arbeiten

Typen von ABAP Programmen

Als auf anderen Programmiersprachen ist ein ABAP Programm entweder eine rechtskräftige Einheit oder eine Bibliothek, die Mehrwegcode anderen Programmen zur Verfügung stellt und ziemlich abhängig rechtskräftig ist.

ABAP unterscheidet zwei Typen von rechtskräftigen Programmen:

  • Bericht
  • Modul vereint

Berichte folgen einem relativ einfachen Programmiermodell, wodurch ein Benutzer fakultativ in eine Reihe von Rahmen eingeht (z.B eine Auswahl über eine Teilmenge von Daten) und das Programm dann die Eingangsrahmen verwendet, um einen Bericht in der Form einer interaktiven Liste zu erzeugen. Der Begriff "Bericht" kann darin etwas irreführend sein Berichte können auch entworfen werden, um Daten zu modifizieren; der Grund, warum diese Programme Berichte genannt werden, ist die "listenorientierte" Natur der Produktion, die sie erzeugen.

Modul-Lachen definieren kompliziertere Muster der Benutzerwechselwirkung mit einer Sammlung von Schirmen. Der Begriff "Schirm" bezieht sich auf das wirkliche, physische Image, das der Benutzer sieht. Jeder Schirm hat auch eine "Fluss-Logik", die sich auf den durch die Schirme implizit angerufenen ABAP-Code bezieht. Jeder Schirm hat seine eigene Fluss-Logik, die in einen "PBO" (Prozess Vor der Produktion) und "PAI" (Prozess Nach dem Eingang) Abteilung geteilt wird. In der Dokumentation von SAP bezieht sich der Begriff "dynpro" (dynamisches Programm) auf die Kombination des Schirms und seiner Fluss-Logik.

Die nichtausführbaren Programm-Typen sind:

  • SCHLIEßEN SIE Module EIN
  • Unterprogramm vereint
  • Funktionsgruppen
  • Gegenstand-Klassen
  • Schnittstellen
  • Typ vereint

Ein EINSCHLIEßEN Modul wird in der Generationszeit in die Benennen-Einheit eingeschlossen; es wird häufig verwendet, um sehr große Programme zu unterteilen. Unterprogramm-Lachen enthalten ABAP Unterprogramme (Blöcke des durch FORM/ENDFORM Behauptungen eingeschlossenen Codes, und angerufen damit LEISTEN). Funktionsgruppen sind Bibliotheken von geschlossenen Funktionsbausteinen (eingeschlossen durch FUNCTION/ENDFUNCTION und angerufen mit der ANRUF-FUNKTION). Gegenstand-Klassen und Schnittstellen sind javanischen Klassen und Schnittstellen ähnlich; die ersten definieren eine Reihe von Methoden und Attribute, die zweiten enthalten "leere" Methode-Definitionen, für die jede Klasse, die die Schnittstelle durchführt, ausführlichen Code zur Verfügung stellen muss. Typ-Lachen definieren Sammlungen von Datentypen und Konstanten.

ABAP Arbeitstisch

Der ABAP Arbeitstisch enthält verschiedene Werkzeuge, um Programme zu editieren. Die wichtigsten von diesen sind (Transaktionscodes werden in Parenthesen gezeigt):

  • ABAP Redakteur, um Berichte, Modul-Lachen zu schreiben und zu editieren, schließt ein und Unterprogramm-Lachen (SE38)
  • ABAP Wörterbuch, um Datenbanktabellendefinitionen zu bearbeiten und globale Typen (SE11) wiederzubekommen
  • Menümaler, für die Benutzerschnittstelle (Menübar, Standardwerkzeugleiste, Anwendungswerkzeugleiste, Funktionsschlüsselanweisung) (SE41) zu entwerfen
  • Schirm-Maler, um Schirme und Fluss-Logik (SE51) zu entwerfen
  • Funktionsbaumeister für Funktionsbausteine (SE37)
  • Klassenbaumeister für ABAP-Gegenstand-Klassen und Schnittstellen (SE24)

Der Gegenstand-Navigator (Transaktion SE80) stellt eine einzelne einheitliche Schnittstelle in diese verschiedenen Werkzeuge zur Verfügung.

ABAP Wörterbuch

Das ABAP Wörterbuch enthält den ganzen metadata über die Daten im System von SAP. Es wird mit dem ABAP Arbeitstisch in dieser jeder Verweisung auf Daten nah verbunden (z.B ein Tisch, Ansicht, Datentyp, usw.) wird beim Wörterbuch erhalten. Entwickler verwenden die ABAP Wörterbuch-Transaktionen (direkt oder durch den SE80-Gegenstand-Navigator innerhalb des ABAP Arbeitstisches), um diesen metadata zu zeigen und aufrechtzuerhalten.

Wenn ein Wörterbuch-Gegenstand geändert wird, wird ein Programm, das im geänderten Gegenstand Verweise anbringt, in der neuen Version das nächste Mal die Programm-Läufe automatisch Verweise anbringen. Weil ABAP interpretiert wird, ist es nicht notwendig, Programme wiederzukompilieren, dass Verweisung Wörterbuch-Gegenstände geändert hat.

Eine kurze Beschreibung der wichtigsten Typen von Wörterbuch-Gegenständen folgt:

  • Tische sind Datenbehälter, die in der zu Grunde liegenden Verwandtschaftsdatenbank bestehen. In der Mehrheit von Fällen gibt es 1 zu 1 Beziehung zwischen der Definition eines Tisches im ABAP Wörterbuch und der Definition dieses desselben Tisches in der Datenbank (derselbe Name, dieselben Säulen). Diese Tische sind als "durchsichtig" bekannt. Es gibt zwei Typen von nichtdurchsichtigen Tischen: "Vereinte" Tische bestehen als unabhängige Entitäten im ABAP Wörterbuch, aber sie werden zusammen in großen physischen Tischen ("Lachen") am Datenbankniveau gruppiert. Vereinte Tische sind häufig kleine Tische, die zum Beispiel Konfigurationsdaten halten." Gebündelte" Tische werden in auf ihren primären Schlüsseln gestützten "Trauben" physisch gruppiert; nehmen Sie zum Beispiel an, dass eine gruppierte Tabelle H "Kopfball"-Daten über Verkaufsrechnungen enthält, wohingegen eine andere gruppierte Tabelle D die Rechnungsliniensachen hält. Jede Reihe von H würde dann mit den zusammenhängenden Reihen von D innerhalb eines "Traube-Tisches" in der Datenbank physisch gruppiert. Dieser Typ des Sammelns, das entworfen wird, um Leistung zu verbessern, besteht auch als heimische Funktionalität in einigen, obwohl nicht alle, Verwandtschaftsdatenbanksysteme.
  • Indizes stellen beschleunigten Zugang zu Tabellendaten für häufig verwendete Auswahl-Bedingungen zur Verfügung. Jeder Tisch von SAP hat einen "primären Index", der implizit zusammen mit dem Tisch geschaffen wird und verwendet wird, um primäre Schlüsseleinzigartigkeit geltend zu machen. Zusätzliche Indizes (einzigartig oder nichteinzigartig) können definiert werden; diese werden "sekundäre Indizes" genannt.
  • Ansichten haben denselben Zweck wie in der zu Grunde liegenden Datenbank: Sie definieren Teilmengen von Säulen (und/oder Reihen) von einer oder - dem Verwenden einer Verbindungslinie-Bedingung - mehrere Tische. Ansicht ist wirklich ein virtueller Tisch, der Daten physisch nicht enthält. Ansichten nehmen sehr kurzen Speicherraum in der Datenbank, weil die Ansichten nur die Definition von Daten enthalten.
  • Strukturen sind komplizierte Datentypen, die aus vielfachen Feldern (vergleichbar mit struct in C/C ++) bestehen.
  • Datenelemente stellen den semantischen Inhalt für einen Tisch oder Struktur-Feld zur Verfügung. Zum Beispiel könnten Dutzende von Tischen und Strukturen ein Feld enthalten, das den Preis (eines Endproduktes, Rohstoffs, Quelle...) gibt. Alle diese Felder konnten dasselbe Datenelement "PREIS" haben.
  • Gebiete definieren die Struktureigenschaften eines Datenelements. Zum Beispiel konnte der Datenelement-PREIS ein zugeteiltes Gebiet haben, das den Preis als ein numerisches Feld mit zwei Dezimalzahlen definiert. Gebiete können auch semantischen Inhalt in der Versorgung einer Liste von möglichen Werten tragen. Zum Beispiel konnte ein Gebiet "BOOLEAN" ein Feld des Typs "Charakter" mit der Länge 1 und gegen den Fall unempfindlich definieren, aber würde auch die möglichen Werte auf "T" (wahr) oder (falscher) "F" einschränken.
  • Suche hilft (Nachfolger des jetzt veralteten "matchcodes") stellen fortgeschrittene Suchstrategien zur Verfügung, wenn ein Benutzer die möglichen Werte für ein Datenfeld sehen will. Die ABAP Durchlaufzeit gibt implizite Hilfe (durch die Auflistung aller Werte für das Feld, z.B alle vorhandenen Kundenzahlen), aber Suche hilft kann verwendet werden, um diese Funktionalität, z.B durch die Versorgung von Kundensuchen durch die geografische Position, Kreditwürdigkeit usw. zu raffinieren.
  • Schloss wendet Werkzeug-Anwendungsniveau-Blockierung ein, wenn es Daten ändert.

ABAP Syntax

Diese kurze Beschreibung der ABAP Syntax beginnt unvermeidlich mit dem allgegenwärtigen "Hallo" Weltprogramm.

"Helloworld"

BERICHTSTEST.

SCHREIBEN SIE 'hallo Welt'.

</syntaxhighlight>

Dieses Beispiel enthält zwei Behauptungen: MELDEN SIE und SCHREIBEN SIE. Das Programm zeigt eine Liste auf dem Schirm. In diesem Fall besteht die Liste aus der einzelnen Linie "Hallo Welt". Die BERICHTS-Behauptung zeigt an, dass dieses Programm ein Bericht ist. Eine alternative Erklärung, PROGRAMM, würde für eine Modul-Lache verwendet.

Formatierung von Regeln

Die grundlegenden Formatierungsregeln von ABAP sind einfach:

  • Jede ABAP Behauptung muss in einer Periode enden
  • Jetons innerhalb einer Behauptung müssen durch mindestens einen Raum getrennt werden
  • Ein Ende der Linie ist zu einem Raum gleichwertig
  • Behauptungen und Schlüsselwörter sind nicht mit dem Fall empfindlicher

Das "Hallo" Weltprogramm konnte wie folgt gesetzlich umgeschrieben werden:

BERICHTS-Test. SCHREIBEN SIE

'Hallo Welt'.

</syntaxhighlight>

Um sicherzustellen, dass Code lesbar ist, stellt der ABAP Redakteur einem "Hübschen Drucker" Funktion zur Verfügung, die auf die richtige Einrückung aufpasst. Der Hübsche Drucker bietet auch eine Wahl zwischen mehreren Modellen der Fall-Standardisierung (alle Großbuchstaben, die ganze untere Umschaltung, Großbuchstaben für Behauptungen/Schlüsselwörter, Großbuchstaben für Variablennamen) an.

Wenn sich ein in einer ABAP Behauptung wörtlicher Text über mehr als eine Linie ausstreckt, dann ‘&’ muss Charakter verwendet werden, um eine Folge von Textdruckfehlern in einen einzelnen zu verbinden. Beispiel:

USERPROMPT = 'Klicken Sie bitte auf einer Linie in der Produktionsliste' & doppel

'um die ganzen Details der Transaktion zu sehen.'.

</syntaxhighlight>

Die Regel, dass Jetons durch mindestens einen Raum getrennt werden müssen, streckt sich sogar bis zu Maschinenbediener, Parenthesen und andere Symbole aus. Zum Beispiel ist der folgende Code falsch:

X = (A+B) - (C+2).

</syntaxhighlight>

Die Variablennamen (X, A, B, C), die numerischen unveränderlichen 2, die Maschinenbediener "=", "+" und "-" und die Parenthesen müssen alle abgegrenzter Leerraum sein. Der richtige Code ist:

X = (+ B) - (C + 2).

</syntaxhighlight>

Verkettete Behauptungen

Konsekutivbehauptungen mit einem identischen ersten (leftmost) Teil können in eine "verkettete" Behauptung mit dem Kettenmaschinenbediener verbunden werden ":" (Doppelpunkt). Der allgemeine Teil der Behauptungen wird links vom Doppelpunkt geschrieben, die sich unterscheidenden Teile werden rechts vom Doppelpunkt geschrieben und durch Kommas getrennt. Der Doppelpunkt-Maschinenbediener wird direkt dem vorhergehenden Jeton beigefügt, ohne einen Raum (gilt dasselbe für die Kommas in der Scheinliste rechts, wie in den Beispielen unten gesehen werden kann).

Das Anketten wird sehr häufig darin verwendet SCHREIBEN Behauptungen. SCHREIBEN SIE akzeptiert gerade ein Argument so, wenn zum Beispiel Sie drei Felder von einer Struktur genannt FLIGHTINFO zeigen wollten, würden Sie codieren müssen:

SCHREIBEN SIE FLIGHTINFO-CITYFROM.

SCHREIBEN SIE FLIGHTINFO-CITYTO.

SCHREIBEN SIE FLIGHTINFO-AIRPTO.

</syntaxhighlight>

Das Anketten der Behauptungen läuft auf eine lesbarere und intuitivere Form hinaus:

SCHREIBEN SIE: FLIGHTINFO-CITYFROM, FLIGHTINFO-CITYTO, FLIGHTINFO-AIRPTO.

</syntaxhighlight>

In einer Kettenbehauptung wird der erste Teil (vor dem Doppelpunkt) auf den Behauptungsnamen allein nicht beschränkt. Der komplette allgemeine Teil der Konsekutivbehauptungen kann vor dem Doppelpunkt gelegt werden. Beispiel:

ERSETZEN SIE DURCH 'B' IN DEN NACHNAMEN.

ERSETZEN SIE DURCH 'B' IN DEN VORNAMEN.

ERSETZEN SIE DURCH 'B' IN CITYNAME.

</syntaxhighlight>

konnte in der verketteten Form als umgeschrieben werden:

ERSETZEN SIE DURCH 'B' IN: NACHNAME, VORNAME, CITYNAME.

</syntaxhighlight>

Anmerkungen

ABAP hat 2 Weisen, Text als eine Anmerkung zu definieren:

  • Ein Sternchen (*) in der leftmost Säule einer Linie macht die komplette Linie eine Anmerkung
  • Ein doppeltes Anführungszeichen (") überall auf einer Linie macht den Rest dieser Linie eine Anmerkung

Beispiel:

  • Programm: ANMELDUNGEN * *
  • Autor: Joe Byte, am 7. Juli 2007 * *

BERICHTSANMELDUNGEN.

  • Lesen Sie Fluganmeldungen von der Datenbank

WÄHLEN SIE * VON FLIGHTINFO AUS

WO KLASSE = 'Y' "Y = Wirtschaft

ODER KLASSE = 'C'. "C = Geschäft

(...)

</syntaxhighlight>

Datentypen und Variablen

ABAP stellt eine Reihe eingebauter Datentypen zur Verfügung. Außerdem können jede Struktur, Tisch, Ansicht oder im ABAP Wörterbuch definiertes Datenelement verwendet werden, um eine Variable zu tippen. Außerdem können Gegenstand-Klassen und Schnittstellen als Typen verwendet werden.

Die eingebauten Datentypen sind:

Datum-Variablen oder Konstanten (Typ D) enthalten die Zahl von Tagen seit dem 1. Januar, n.Chr. 1. Zeitvariablen oder Konstanten (Typ T) enthalten die Zahl von Sekunden seit der Mitternacht. Eine spezielle Eigenschaft von beiden Typen ist, dass auf sie sowohl als ganze Zahlen zugegriffen werden kann, als auch weil Charakter spannt (mit dem inneren Format "YYYYMMDD" für Daten und "hhmmss" seit Zeiten), der Datum/Zeit macht, das sehr leicht behandelt. Zum Beispiel rechnet der Codeschnipsel unten am letzten Tag des vorherigen Monats (Zeichen: SY-GEGEBENHEIT ist eine systemdefinierte Variable, die das aktuelle Datum enthält):

DATEN LAST_EOM TYP D. "letztes Datum des Endes-monatig

  • Fangen Sie vom heutigen Datum an

LAST_EOM = SY-GEGEBENHEIT.

  • Satz-Charaktere 6 und 7 (0-Verwandter) des YYYYMMDD spannen zu "01",
  • das Geben des ersten Tages des aktuellen Monats

LAST_EOM + 6 (2) = '01'.

  • Machen Sie eines Tages Abstriche

LAST_EOM = LAST_EOM - 1.

SCHREIBEN SIE: 'Am letzten Tag des vorherigen Monats war', LAST_EOM.

</syntaxhighlight>

Alle ABAP Variablen müssen ausführlich erklärt werden, um verwendet zu werden. Normalerweise werden alle Behauptungen an der Oberseite vom Codemodul (Programm, Unterprogramm, Funktion) vor der ersten ausführbaren Anweisung gelegt; dieses Stellen ist eine Tagung und nicht eine erzwungene Syntax-Regel. Die Behauptung besteht aus dem Namen, Typ, Länge (wo anwendbar), zusätzliche Modifikatoren (z.B die Zahl von implizierten Dezimalzahlen für ein gepacktes dezimales Feld) und fakultativ ein Anfangswert:

  • Primitive Typen:

DATEN: GEGENTYP I,

GÜLTIGKEITSTYP SCHÄTZE ICH 60,

TAXRATE (3) DEZIMALZAHLEN DES TYPS P 1,

NACHNAME (20) TYP C,

BESCHREIBUNGSTYP-SCHNUR.

  • Wörterbuch-Typen:

DATEN: URSPRUNG-TYP-LAND.

  • Innerer Tisch:

DATEN: T_FLIGHTS TYP-TISCH VON FLIGHTINFO,

T_LOOKUP TYP HASHED TISCH VON FLT_LOOKUP.

  • Gegenstände:

DATEN: ANMELDUNG DES TYPS BEZÜGLICH ZU CL_FLT_BOOKING.

</syntaxhighlight>

Bemerken Sie den Gebrauch des Doppelpunkts zur Kette zusammen Konsekutiv-DATEN-Behauptungen.

ABAP Gegenstände

Die ABAP Sprache unterstützt objektorientierte Programmierung, durch eine Eigenschaft bekannt als "ABAP Gegenstände". Das hilft, Anwendungen zu vereinfachen und sie kontrollierbarer zu machen.

ABAP Gegenstände sind mit der vorhandenen Sprache völlig vereinbar, so kann man vorhandene Behauptungen und modularization Einheiten in Programmen verwenden, die ABAP-Gegenstände verwenden, und auch ABAP-Gegenstände in vorhandenen ABAP Programmen verwenden können. Syntax-Überprüfung ist in ABAP-Gegenstand-Programmen stärker, und einige syntaktische Formen (gewöhnlich ältere) bestimmter Behauptungen werden nicht erlaubt.

ABAP Behauptungen - eine Übersicht

Im Vergleich mit Sprachen wie C/C ++ oder Java, die einen beschränkten Satz von sprachspezifischen Behauptungen definieren und den grössten Teil der Funktionalität über Bibliotheken zur Verfügung stellen, enthält ABAP einen umfassenden Körper von eingebauten Behauptungen. Diese Behauptungen unterstützen häufig viele Optionen, der erklärt, warum ABAP Programme "wortreich" besonders im Vergleich zu Programmen aussehen, die in C, C ++ oder Java geschrieben sind.

Diese Abteilung verzeichnet einige der wichtigsten Behauptungen auf der Sprache, die durch die Funktion unterteilt ist. Sowohl die Behauptungen haben hier als auch die verwendete Unterteilung Schlagseite gehabt sind ziemlich willkürlich und keineswegs erschöpfend.

Aussagebehauptungen

Diese Behauptungen definieren Datentypen oder erklären Datengegenstände, die durch die anderen Behauptungen in einem Programm oder Routine verwendet werden. Die gesammelten Aussagebehauptungen in einem Programm oder Routine setzen seinen Behauptungsteil zusammen.

Beispiele von Aussagebehauptungen:

Behauptungen von Modularization

Diese Behauptungen definieren die in einer Prozession gehenden Blöcke in einem ABAP Programm.

Die modularization Behauptungen können weiter in Ereignis-Behauptungen und Definieren-Behauptungen geteilt werden:

Ereignis-Behauptungen

Diese werden verwendet, um den Anfang von Ereignis-Verarbeitungsblöcken zu definieren. Es gibt keine speziellen Behauptungen, um das Ende solcher Blöcke zu kennzeichnen - sie enden, wenn der folgende in einer Prozession gehende Block eingeführt wird.

Beispiele von Ereignis-Schlüsselwörtern sind:

AM AUSWAHL-SCHIRM KOMMT ANFANG DER AUSWAHL, ENDE DER AUSWAHL, AM BENUTZERBEFEHL, BEI DER LINIENAUSWAHL, KOMMT, SPÄT, AM BENUTZERBEFEHL,

BEI DER LINIENAUSWAHL </pre>

Das Definieren von Behauptungen

Diese Behauptungen skizzieren kündbare Codeeinheiten wie Unterprogramme, Funktionsbausteine und Methoden. Die Behauptung, die das Ende der Einheit kennzeichnet, hat den Namen der öffnenden mit "dem ENDE" vorbefestigten Behauptung.

Beispiele, Schlüsselwörter zu definieren:

FORM..... ENDFORM, FUNKTION... ENDFUNCTION,

MODUL... ENDMODULE, METHODE... ENDMETHOD

</pre>

Kontrollbehauptungen

Diese Behauptungen kontrollieren den Fluss des Programms innerhalb eines in einer Prozession gehenden Blocks.

Behauptungen, bedingte Ausführung kontrollierend, sind:

WENN... ELSEIF... SONST... ENDIF

FALL... ENDCASE

ÜBERPRÜFEN SIE

</pre>

Die KONTROLLE-Behauptung prüft eine Bedingung nach und herrscht über den aktuellen in einer Prozession gehenden Block (z.B Schleife oder Unterprogramm), wenn die Bedingung nicht zufrieden ist.

Mehrere Behauptungen bestehen, um eine Schleife zu definieren:

TUN... ENDDO

WÄHREND... ENDWHILE

SCHLEIFE... ENDLOOP

</pre>

DO/ENDDO definiert eine vorbehaltlose Schleife. Eine Ausgangsbedingung (normalerweise in der Form "WENN

WHILE/ENDWHILE definiert eine bedingte Schleife. Die Bedingung wird am Anfang der Schleife geprüft.

LOOP/ENDLOOP Schleifen über die Linien eines inneren Tisches. Die Schleife-Enden nach der Verarbeitung der letzten Linie des inneren Tisches.

Nennen Sie Behauptungen

Diese Behauptungsanruf-Verarbeitungsblöcke haben das Verwenden der entsprechenden modularization Behauptungen definiert. Die Blöcke können entweder in demselben ABAP Programm oder in einem verschiedenen Programm sein.

Beispiele von Anruf-Schlüsselwörtern:

Betriebliche Behauptungen

Diese Behauptungen bekommen wieder oder modifizieren den Inhalt von Variablen.

Eine erste Gruppe von betrieblichen Behauptungen teilt zu oder ändert eine Variable:

Diese Behauptungen, deren Syntax im COBOL entsteht, können in einer kürzeren Form geschrieben werden, die Maschinenbediener aber nicht Schlüsselwörter verwendet:

BEWEGEN SIE NACHNAMEN DEM EMPFÄNGER.

ist
  • zu gleichwertig

EMPFÄNGER = NACHNAME.

FÜGEN SIE STEUER ZUM PREIS HINZU.

ist zu gleichwertig

PREIS = PREIS + STEUER.

</syntaxhighlight>

Beispiele von betrieblichen Behauptungen auf Charakter-Schnuren:

Datenbankzugriffsbehauptungen (Öffnen SQL):

Behauptungen, die an inneren Tischen arbeiten (bemerken, dass einige "SQL" Behauptungen auch hier verwendet werden können):

</pre>

Formatierung von Behauptungen

Diese Behauptungen erzeugen oder formatieren Produktion. Sie erscheinen hauptsächlich in Berichten weniger in Modul-Lachen. Beispiele sind:

Innere Tische in ABAP

Innere Tische sind eine äußerst wichtige Eigenschaft der ABAP Sprache und des Verdiensts, das an etwas Länge wird erklärt. Ein innerer Tisch würde als ein Vektor von structs in C ++ oder ein Vektor von Gegenständen in Java definiert. Der Hauptunterschied mit diesen Sprachen ist, dass ABAP eine Sammlung von Behauptungen zur Verfügung stellt, um auf den Inhalt von inneren Tischen leicht zuzugreifen und ihn zu manipulieren. Es sollte bemerkt werden, dass ABAP Reihe nicht unterstützt; die einzige Weise, einen Mehrelement-Datengegenstand zu definieren, ist, einen inneren Tisch zu verwenden.

Siehe auch

  • ERP Software
  • Sichere Netzkommunikationen
  • SAP Logon Karte
  • Einzelnes Zeichen - auf

Außenverbindungen


Chris Evans (Moderator) / Berlin Tegel Flughafen
Impressum & Datenschutz