Korrekturen und Ergänzungen zur ABAP-Referenz

Ähnliche Dokumente
Wirkung Addiert den Inhalt eines numerischen Datenobjekts dobj1 zum Inhalt eines numerischen Datenobjekts dobj2 und weist das Ergebnis dobj2 zu.

Einstieg in die Informatik mit Java

Klassen als Datenstrukturen

Arbeit mit zusammengesetzten Datentypen

Einstieg in die Informatik mit Java

Abfragen (Queries, Subqueries)

Es geht also im die SQL Data Manipulation Language.

Einstieg in die Informatik mit Java

Programmieren für Fortgeschrittene Einführung in die Programmiersprache ABAP

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

2 Wegweiser Projektbeschreibung...69

Inhalt. Vorwort zur dritten Auflage 15

Schnelleinstieg in SAP ABAP Objects

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

Übersicht der wichtigsten MySQL-Befehle

Objektorientierung in Oracle

Einstieg in die Informatik mit Java

Geschachtelte Klassen

In diesem Abschnitt wollen wir uns mit einem besonderen Thema widmen. Dem Thema SQL-JOIN.

Inhaltsverzeichnis. Inhalt. 1 Einführung in die Datenbanktechnologie

Implementieren von Klassen

SAP R/3 Prozessübersicht

Inhaltsverzeichnis. Einleitung

BC402. Advanced ABAP GLIEDERUNG DES KURSES. Version der Schulung: 16 Dauer der Schulung: 5 Tage

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle

SQL als Zugriffssprache

1 Klassen und Objekte

Geschachtelte Klassen

SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage.

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Kapitel 4 Dynamisches SQL

Einstieg in die Informatik mit Java

Kapitel 4 Dynamisches SQL

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 14.1.

Datenbank und Tabelle mit SQL erstellen

Vererbung, Polymorphie

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

10.3. ABAP-Programmierung mit Open- und Native SQL

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Konstruktor. Grundlagen der Programmierung. Stephan Kleuker 90

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Web-Techniken Einführung in JavaScript

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Johannes Unterstein - TINF16 - Java - Sommersemester 2017 JAVA. Weiterführende Spracheigenschaften

Sortieralgorithmen. Nachfolgend wird die Menge der ganzen Zahlen und die darauf definierte Relation betrachtet.

Angewandte Mathematik und Programmierung

Kap. 5.5: ABAP-Programmierung mit Open- und Native-SQL

Teil VIII. Weitere Datenbanksprachen

Einführung in die Programmierung mit C++

GDI-Business-Line 3.x

Oracle SQL. Seminarunterlage. Version vom

Erzeugung und Veränderung von Tabellen

Oracle 10g Einführung

[ SQL] Wissen, das sich auszahlt

Prozedurale Datenbank- Anwendungsprogrammierung

Algorithmen & Programmierung. Ausdrücke & Operatoren (1)

Kapitel 9: Klassen und höhere Datentypen. Selektoren

ABAP/4 - Die Programmiersprache von SAP

Selectionsort Beispiel

Inhaltsverzeichnis. Vorwort 13

Powerful PL/SQL: Collections indizieren mit VARCHAR2-Indizes

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Beispiel zur referentiellen Integrität

Welche Kunden haben die gleiche Ware bestellt? select distinct a1.name, a2.name from Auftrag a1, Auftrag a2 where a1.ware = a2.ware.

II.4.4 Exceptions - 1 -

Prof. W. Henrich Seite 1

C.3 Funktionen und Prozeduren

Einstieg in die Informatik mit Java

Gliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D.

Algorithmen und Datenstrukturen II

Exceptions und Vererbung

Datenbanken Unit 5: Datenintegrität und funktionale Abhängigkeit

Antwort auf QB ist Menge von Tupeln, i-e. selbst wieder Relation (wie bei rel. Algebra) in QB "Zugriff" auf Tupel mit Tupel-Variablen

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Datenzugriffskomponente mit JPA 2.1

Oracle PL/SQL - Grundlagen

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Datenbanksysteme Kapitel 5: SQL - Grundlagen

Programmierkurs I. Gliederung: Deklarationsteil als BNF 2. Blöcke in Ada95 (Lebenszeit, Sichtbarkeit von Variablen)

Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1

Datenbanksysteme Kapitel 5: SQL Grundlagen Teil 1

Oracle Virtual Private Database

Datenbanken Unit 9: OLAP, OLTP, Data Warehouse Ranking Algorithmen

Einführung in Mathematica

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

7. Übung Informatik II - Objektorientierte Programmierung

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Tabellen verknüpfen. In dieser Lektion lernen Sie

Transkript:

Korrekturen und Ergänzungen zur ABAP-Referenz S. 41, zweiter Absatz In den Kapiteln 9 bis 41 beschreiben wir die... S. 147, 6.3.3.1 Neue Überschrift: Typen für Datenreferenzvariablen S. 148, 6.3.3.2 Neue Überschrift: Typen für Objektreferenzvariablen Ersetze im Text Klassenreferenz durch Klassenreferenzvariable und Interface-Referenz durch Interface-Referenzvariable. S. 160, Beispiel Ersetze im Text Objektreferenz durch Objektreferenzvariable und Datenreferenzen durch Datenreferenzvariablen. S. 292, Angabe der Methode In allen Formen ist meth ein im aktuellen Kontext gültiger Bezeichner der Methode. Der Bezeichner einer Methode kann der in METHODS deklarierte Name der Methode, ein über den Interfacekomponenten-Selektor zusammengesetzter Name oder ein Aliasname sein. S. 299, zweites Syntaxdiagramm... (meth_name) cref-> (meth_name) iref->(meth_name) (class_name)=>(meth_name) class=>(meth_name) (class_name)=>meth...... cref->(meth_name)... Diese Form ist für alle sichtbaren Methoden von Objekten möglich. cref kann eine beliebige Klassenreferenzvariable sein, die auf ein Objekt zeigt, das die in meth_name angegebene Methode enthält.... iref->(meth_name)... Diese Form ist für alle sichtbaren Interface-Methoden von Objekten möglich. iref kann eine beliebige Interface-Referenzvariable sein, die auf ein Objekt zeigt, das die in meth_name angegebene Interface-Methode enthält.

Anders als beim Zugriff über Klassenreferenzvariablen kann mit Interface-Referenzvariablen auch beim dynamischen Zugriff nicht auf beliebige Komponenten, sondern nur auf Interface-Komponenten zugegriffen werden. S. 341, Übersicht: Wenn in einem logischen Ausdruck funktionale Methoden als Operanden aufgeführt sind, werden diese vor Auswertung des Ausdrucks von links nach rechts ausgeführt. Bei einer Verknüpfung von logischen Ausdrücken gilt dies für jeden einzelnen Teil-Ausdruck, nicht für den gesamten Ausdruck. S. 356, dritter Absatz: Jede Zeile der Selektionstabelle stellt einen logischen Ausdruck dar. Je nach Operator in der Spalte option handelt es sich um einen Vergleich oder um eine Intervallabgrenzung. S. 358, Boolesche Operatoren und Klammerung: Werden in beteiligten logischen Ausdrücken funktionale Methoden als Operanden verwendet, werden diese direkt vor der Auswertung des entsprechenden Teilausdrucks ausgeführt. S. 364, neuer : e... Für operand wird in jedem Vergleich der aktuelle Wert verwendet. Dieser kann sich vom Eingangswert unterscheiden, wenn operand eine Variable ist, die in einer hinter einer WHEN-Anweisung angegebenen funktionalen Methode geändert wird. S. 373, vorletzter Absatz: Bei der Definition eines statischen Konstruktors können keine Ausnahmen deklariert werden, d.h., Ausnahmen können einen statischen Konstruktor nicht verlassen. Für einen Verwender einer Klasse steht in der Regel nämlich nicht fest, ob er der erste Verwender ist und ob er vom statischen Konstruktor propagierte Ausnahmen behandeln muss oder nicht. S. 376, vorletzter Absatz: e Instanzen von Ausnahmeklassen werden in der Regel... Der Instanzkonstruktor einer Ausnahmeklasse sollte keine Ausnahme auslösen. Tritt nach dem Auslösen einer Ausnahme während der Instanzierung der Ausnahmeklasse dennoch eine Ausnahme im Instanzkonstruktor auf, die nicht dort behandelt wird, ersetzt diese, bzw. bei nicht erfolgreicher Propagierung die Ausnahme CX_SY_NO_HANDLER, die ursprünglich ausgelöste Ausnahme.

In Ausnahmeklassen können... S. 380, vorletzter Absatz Wenn der Zusatz TYPE angegeben ist, wird eine Ausnahme der Ausnahmeklasse cx_class ausgelöst und, falls benötigt, ein Ausnahmeobjekt erzeugt. S. 381, zweiter Absatz e Bei Verwendung des Zusatzes TYPE wird aus Performance-Gründen ein Ausnahmeobjekt nur dann erzeugt, wenn es auch benötigt wird, d.h. wenn in einer umgebenden TRY- Kontrollstruktur ein passender CATCH- oder CLEANUP-Block mit dem Zusatz INTO aufgeführt ist. Prinzipiell können Ausnahmen aber immer so betrachtet werden, als wenn ein Ausnahmeobjekt erzeugt wird. Einen Unterschied in der Verhaltensweise kann es nur dann geben, wenn bei der Objekterzeugung eine unbehandelte Ausnahme des Instanzkonstruktors die ursprüngliche Ausnahme ersetzt. Dieser Fall dürfte aber nie auftreten. Bei der Angabe von oref kann... S. 383, fünfter Absatz Da aus statischen Konstruktoren und Ereignisbehandlern keine Ausnahmen propagiert werden dürfen (außer solche der Kategorie CX_NO_CHECK aus Ereignisbehandlern), müssen sie dort immer lokal behandelt werden. S. 618f: Innerhalb einer Zeile eines Selektionsbilds können auch mit SELECTION-SCREEN definierte Selektionskriterien angelegt werden. Innerhalb einer Zeile sollte aber maximal ein Selektionskriterium mit SELECT-OPTIONS definiert werden, dessen Beschreibung mit SELECTION-SCREEN COMMENT davor angegeben werden kann. Andere Kombinationen, insbesondere die Definition von Elementen nach dem Selektionskriterium, können zu undefiniertem Verhalten führen. S. 778f, SAP-Pufferung Beim Zugriff auf Datenbanktabellen über Open SQL ist standardmäßig die SAP-Pufferung wirksam, falls sie für die jeweilige Datenbanktabelle eingeschaltet ist. Mit dem Zusatz BYPASSING BUFFER der Anweisung SELECT kann sie explizit abgeschaltet werden. Neben der expliziten Angabe von BYPASSING BUFFER wird die SAP-Pufferung aber auch implizit von einigen Varianten der Open-SQL-Anweisungen umgangen, da die entsprechende Operation nur auf der Datenbank und nicht im SAP-Puffer ausgeführt werden kann. Folgende Open-SQL-Anweisungen umgehen implizit den SAP-Puffer und greifen direkt auf die Datenbanktabellen zu: SELECT mit dem Zusatz FOR UPDATE,

Zugriff auf eine Tabelle mit Einzelsatzpufferung, ohne dass ein einzelner Satz mit SINGLE bei SELECT oder durch Angabe des Primärschlüssels in der WHERE-Bedingung selektiert wird. SELECT mit dem Zusatz DISTINCT, SELECT mit Aggregatausdrücken, Open-SQL-Anweisung mit dem Zusatz CLIENT SPECIFIED ohne, dass die Mandantenkennung in einer WHERE-Bedingung angegeben ist, SELECT mit JOIN-Ausdrücken, Zugriff auf einen generisch gepufferten Bereich ohne dessen vollständige Spezifizierung in einer WHERE-Bedingung, Open-SQL-Anweisungen mit IS [NOT] NULL in den Zusätzen WHERE und HAVING, Verwendung einer Subquery in einer WHERE-Bedingung, SELECT mit dem Zusatz GROUP BY, SELECT mit dem Zusatz ORDER BY, wobei der Sortierschlüssel nicht der Primärschlüssel ist. Zugriffe auf Views, an denen mehrere Datenbanktabellen beteiligt sind. S. 778, Einzeilige Ergebnismenge Die hinter INTO angegebenen Datenobjekte dürfen keine internen Tabellen sein bzw. der Zusatz APPENDING kann nicht verwendet werden. Der Zusatz ORDER BY kann ebenfalls nicht verwendet werden. S. 791, Zielbereich angeben Die Angaben in target legen fest, welchen Datenobjekten die Ergebnismenge einer SELECToder FETCH-Anweisung zugewiesen wird. S. 792, erster Absatz... Hinter ENDSELECT enthält der Arbeitsbereich wa die zuletzt zugewiesene Zeile. Bei Verwendung in der Anweisung FETCH wird eine Zeile an der aktuellen Cursor-Position entnommen. S. 793, dritter Absatz... Bei einer mehrzeiligen Ergebnismenge muss hinter SELECT eine ENDSELECT-Anweisung folgen und die Spalten der Ergebnismenge werden zeilenweise den Datenobjekten zugewiesen und können in der Schleife ausgewertet werden. Bei Verwendung in der Anweisung FETCH werden die Spalten der Zeile an der aktuellen Cursor-Position entnommen. S. 794, vorletzter Absatz... Falls der Inhalt von n gleich 0 ist, werden alle Zeilen der Ergebnismenge in die interne Tabelle itab eingefügt. Bei Verwendung in der Anweisung FETCH werden n Zeilen ab der aktuellen Cursor-Position entnommen. Bei der Verwendung von INTO wird die interne Tabelle vor jedem Einfügen initialisiert und sie enthält in einer SELECT-Schleife nur die Zeilen des aktuellen Pakets. Bei Verwendung von

APPENDING wird bei jeder SELECT-Schleife bzw. bei jeder Entnahme mit FETCH ein weiteres Paket zu den vorhandenen Zeilen der internen Tabelle hinzugefügt. S. 811, 29.2.7 Der Zusatz ORDER BY sortiert eine mehrzeilige Ergebnismenge nach dem Inhalt der angegebenen Spalten. Der Zusatz ORDER BY kann nicht zusammen mit dem Zusatz SINGLE verwendet werden. S. 1012, zweites Syntaxdiagramm: CALL FUNCTION func STARTING NEW TASK task [DESTINATION {dest {IN GROUP {group DEFAULT}}}] parameter_list [{PERFORMING subr} {CALLING meth} ON END OF TASK]. S. 1123, zweiter Absatz:... (siehe Abschnitt 42.4.1)