Show TOC Anfang des Inhaltsbereichs

Open SQL Dokument im Navigationsbaum lokalisieren

Open SQL besteht aus einer Menge von ABAP-Anweisungen, die Operationen auf der zentralen Datenbank des SAP Web AS ABAP durchführen. Das Ergebnis dieser Operationen und etwaige Fehlermeldungen sind vom jeweils verwendeten Datenbanksystem unabhängig. Open SQL bietet also eine einheitliche Syntax und Semantik für alle von SAP unterstützten Datenbanksysteme. Ein ABAP-Programm, das ausschließlich Open SQL-Anweisungen verwendet, ist ohne Anpassung in jedem SAP-System lauffähig. Open SQL-Anweisungen können nur mit Datenbanktabellen arbeiten, die mit dem Werkzeug ABAP Dictionary der ABAP Workbench angelegt wurden.

Im ABAP Dictionary können die Spalten Datenbanktabellen zu einem Datenbank-View oder kurz View zusammengefasst werden. In Open SQL-Anweisungen werden Views genau wie Datenbanktabellen behandelt. Wenn in den folgenden Abschnitten Datenbanktabellen genannt werden, sind entsprechend auch Views gemeint.

Übersicht

Open SQL umfasst folgende Schlüsselwörter:

Schlüsselwort

Funktion

SELECT

Daten von Datenbanktabellen lesen

INSERT

Zeilen in Datenbanktabellen einfügen

UPDATE

Zeileninhalte in Datenbanktabellen ändern

MODIFY

Zeilen in Datenbanktabellen einfügen oder Zeileninhalte ändern

DELETE

Zeilen aus Datenbanktabellen löschen

OPEN CURSOR,
FETCH,
CLOSE CURSOR

Zeilen von Datenbanktabellen über den Cursor lesen

Rückgabewerte

Alle Open SQL-Anweisungen versorgen die beiden folgenden Systemfelder mit Rückgabewerten:

·        sy-subrc

Der Inhalt des Systemfelds sy-subrc enthält nach jeder erfolgreichen Open SQL-Anweisung den Wert 0, ansonsten einen Wert ungleich 0.

·        sy-dbcnt

Der Inhalt des Systemfelds sy-dbcnt enthält nach einer SQL-Anweisung die Anzahl der bearbeiteten Tabellenzeilen.

Mandantenbehandlung

Ein einziges SAP-System kann die Anwendungsdaten mehrerer abgeschlossener Geschäftsbereiche, z.B. Filialen verwalten. Jeder solcher wirtschaftlich unabhängige Bereiche heißt Mandant (englisch Client) und hat eine Mandatennummer. Beim Anmelden eines Benutzers an den SAP Web AS ABAP wird der aktuelle Mandant festgelegt. Die Struktur jeder Datenbanktabelle für Anwendungsdaten enthält als erste Spalte und erstes Schlüsselfeld die Mandantennummer (Feld MANDT). Nur Bereichsübergreifende Systemtabellen sind mandantenunabhängig und haben keine Mandantenummer.

Open SQL-Anweisungen arbeiten standardmäßig mit einer automatischen Mandantenbehandlung. Anweisungen die auf mandantenabhängige Anwendungstabellen zugreifen, lesen und bearbeiten nur die Daten des aktuellen Mandanten. Es ist nicht möglich in der WHERE-Klausel von Open SQL-Anweisungen eine Bedingung für den Mandanten anzugeben. Das System meldet dann einen Fehler während der Syntaxüberprüfung oder es kommt zu einem Laufzeitfehler. Die Spalte MANDT einer Datenbanktabelle kann nicht mit Open SQL-Anweisungen modifiziert werden. Wenn bei ändernden Anweisungen ein anderer Mandant in einem Arbeitsbereich angegeben wird, überschreibt die ABAP-Laufzeitumgebung diesen automatisch mit dem aktuellen Mandanten, bevor die Open SQL-Anweisung weitergegeben wird.

Falls es notwendig sein sollte, den Mandanten in einer Open SQL-Anweisung explizit zu spezifizieren, da auf die Daten eines anderen Geschäftsbereichs des gleichen SAP-Systems zugegriffen werden soll, muss folgender Zusatz

... CLIENT SPECIFIED ....

direkt hinter dem Namen der Datenbanktabelle angegeben werden. Dieser Zusatz schaltet die automatische Mandantenbehandlung ab. Das Mandantenfeld kann sowohl in der WHERE-Klausel als auch im Tabellenarbeitsbereich verwendet werden.

Daten lesen

Daten ändern

Ende des Inhaltsbereichs