Foliensatz 4: Spezielle prozedurale Sprachelemente Flashcards
Welche Aufgabe übernehmen interne Tabellen in ABAP?
- Interne Tabellen sind mehrdimensionale Datenkonstrukte, um im Kontext betriebswirtschaftliche Anwendungen und Datenbanken zu verarbeiten.
- Interne Tabellen werden zur Laufzeit angelegt, deswegen ist Lebenszeit auch nur temporär auf Laufzeit des Programms beschränkt
- können beliebig viele Zeilen umfassen
- Eigenschaften werden durch Zeilentyp, Tabellenart und Tabellenschlüssel definiert
- temporäre “lokale Kopie” einer Tabelle
- kann analog zu einer Datenbanktabelle aufgebaut sein
Was sind Zeilentypen einer internen Tabelle?
Zeilentypen können
- in flachen Strukturen gebildet sein, bei denen Inhalt der Datenobjekte tatsächliche Arbeitsdaten bilden
- aus beliebigen Typen der ABAP Typhierarchie, sog. tiefe Strukturen, bestehen, bei denen der Inhalt der Datenobjekte auch Referenzen darstellen können
Anwendung:
- Darstellung zweidimensionaler elementarer Felder
- klassische datenbankartige Tabellen
- komplexe, rekursive, dynamische Datenobjekte, bei denen Zeilen oder Komponenten von Zeilen selbst wieder interne Tabellen bilden können
Was sind Tabellenarten einer internen Tabelle?
-bestimmen die At der internen Verwaltng und den Zugriff auf Datenelemente
Arten:
-Standardtabelle: Indexzugriff, Schlüsselzugriff, uneindeutige Schlüsselwerte, Zugriff bevorzugt über Index
- Sortierte Tabelle: Indexzugriff, Schlüsselzugriff, eindeutige oder uneindeutige Schlüsselwerte, Zugriff bevorugt über Schlüssel
- Hash Tabelle: kein Indexzugriff, Schlüsselzugriff, eindeutige Schlüsselwerte über Hash Algorithmus, Zugriff ausschließlich über Schlüssel
Was ist der Tabellenschlüssel?
Es gibt:
-strukturierter Zeilentyp: .. WITH [NON‐]UNIQUE KEY comp … .
Mehrere Schlüssel werden dabei reihenfolgemäßig abgearbeitet
-beliebiger Zeilentyp: .. WITH [NON‐]UNIQUE KEY table_line
-Standardschlüssel: …. WITH [NON‐]UNIQUE DEFAULT KEY.
Bei strukturierten Tabellen aus allen nicht numerischen, flachen Feldern
Erklären Sie die Anweisungen TABLES: sflight. SELECT SINGLE * FROM sflight WHERE carrid = ‘LH’ AND connid = 401.
Eine Abfrage der Datenbank sflight.
Wähle einen Tabellenzeile aus sflight wo carrid gleich ‘LH’ entspricht und connid gleich 401 ist.
Wie deklariert man eine Tabelle mit expliziter Zeilentyp-Typisierung?
1.explizite Zeilentyp‐Typisierung:
TYPES: BEGIN OF t_zeilentyp,
dobj1 TYPE dtype,
dobj1 TYPE dtype, . . .
END OF t_zeilentyp .
Wie deklariert man eine Tabelle mit explizite Tabellen-Typisierung?
2.explizite Tabellen‐Typisierung
TYPES t_itab TYPE STANDARD | SORTED | HASH TABLE OF t_zeilentyp WITH [NON‐] UNIQUE KEY comp
Wie deklariert man eine Tabelle explizit?
DATA it_itab TYPE TABLE OF t_itab.
Was ist eine Feldleiste (working area) und wozu benötigen Sie sie im Zusammenhang mit internen Tabellen?
- interne Tabellen besitzen keine Indices, deswegen wird ein Arbeitsbereich verwendet
- Work Area entspricht einer Zeile in einer Tabelle und wird meistens durch eine Struktur definiert, enthält die aktuell bearbeitete Tabellenzeile
Was sind Feldsymbole (FIELD SYMBOLS)?
- damit kann Zeitaufwand für Transport und Zugriff beim Kopieren von Daten umgangen werden
- Feldsymbole dienen dem dynamischen Zugriff auf Datenobjekte in ABAP-Programme, erst zur Laufzeit bekannt
- Feldsymbole sind Platzhalter für bestehende Datenobjekte. Reserviert kein Speicherplatz, ist eine Art virtueller Beschreiber(Zeiger auf…), wird erst zur Laufzeit implementiert
Was sind Vorteile von internen Tabellen?
- Zeilentyp kann beliebig sein mit beliebigen Anzahl von Zeilen
- beliebige Referenzen zu Tabellentypen der angeschlossenen Datenbank
- interne Tabelle kann aus einzelnen als auch mehreren Tabellen der angeschlossenen DB in Laufzeitumgebung gebildet werden, um selektierte Daten zu bearbeiten
- keine Performance Verluste wegen kleinen DB Zugriffe, geringer Suchaufwand nur beim Einladen interner Tabellen, kleine Datenbanklast da Transformation auf interner Tabelle erfolgt