Beschaffung zusätzlicher Informationen
In einigen Fällen werden die Informationen, die eine Datenquelle bereitstellt, nicht ausreichend sein. So könnten z.B. durch einfache Berechnungen neue Informationen gewonnen werden. Wenn beispielsweise in der logischen Datenbank die maximale Zahl der Plätze eines Fluges und die bereits gebuchten Plätze bekannt sind, läßt sich daraus leicht die Zahl der freien Plätze ermitteln. Diese Information kann für verschiedene Query-Auswertungen wichtig sein.
Für die Beschaffung zusätzlicher Informationen stehen bei der Pflege von InfoSets drei Möglichkeiten zur Verfügung: Zusatztabellen, Zusatzstrukturen und Zusatzfelder.
Bei Zusatztabellen wird ein Satz einer Tabelle gelesen. Die Felder dieser Tabelle stehen dann zur Auswertung zur Verfügung. Die zur Auswahl des Satzes notwendigen Schlüsselwerte müssen von der Datenquelle bereitgestellt werden. Bei Zusatzfeldern werden aus bekannten Informationen neue Werte berechnet. Dabei haben Zusatzfelder die Einschränkung, daß sie einen einfachen (skalaren) Datentyp besitzen müssen. Zusatzstrukturen sind faktisch Zusatzfelder mit einem nicht skalaren Datentyp, wobei dieser Datentyp immer eine (flache) Struktur aus dem ABAP Dictionary sein muß.
In jedem Fall ist es wichtig, den Zeitpunkt zu bestimmen, zu dem der Satz gelesen, bzw. die Berechnung ausgeführt werden kann. Mit dem Begriff ‘Zeitpunkt’ ist hier eine Tabelle im Baum der logischen Datenbank gemeint. Alle zum Lesen des Satzes bzw. zur Ausführung der Berechnung benötigten Informationen müssen zu diesem Zeitpunkt zur Verfügung stehen.
Die Beschaffung zusätzlicher Informationen ist deshalb wesentlich an ‘Zeitpunkte’, d.h. an die Tabellen der logischen Datenbank gebunden. Jeder Tabelle der logischen Datenbank können beliebig viele Zusatztabellen, Zusatzstrukturen und Zusatzfelder zugeordnet werden.
Die Felder dieser Zusatztabellen, Strukturen und Felder gehören praktisch mit zu dem Feldvorrat, der zu diesem Zeitpunkt bereitgestellt wird. Sie sind deshalb in der Feldliste enthalten, die einer Tabelle der logischen Datenbank zugeordnet ist, und können wie die Felder dieser Tabelle einer Feldgruppe zugeordnet werden.
Wenn Sie Zusatzinformationen anlegen oder ändern möchten, gehen Sie wie folgt vor:
Im rechten oberen Fenster werden die Zusatzinformationen zum ausgewählten Knoten angezeigt.

Dieses Fenster enthält die Namen der Zusatzinformationen, ihre Art (Zusatztabelle, Zusatzstruktur, Zusatzfeld, Coding) und einen Langtext.
In der ersten Spalte des Fensters ist eine Nummer enthalten. Diese Nummer legt fest, in welcher Reihenfolge das Coding für die einzelnen Zusatzinformationen in den generierten Query-Report abgesetzt wird.

Die Reihenfolgenummern der verschiedenen Zusatzinformationen müssen nicht unterschiedlich sein. Genauere Informationen über die Reihenfolgenummern erhalten Sie im Abschnitt
In dem Fenster stehen Funktionen zur Definition, zum Ändern und Löschen von Zusatzinformationen zur Verfügung. Für die Funktionen Definition und Löschen muß der Cursor zuvor auf die entsprechende Zusatzinformation gestellt werden. Um eine Zusatzinformation zu ändern, können Sie auch mit einem Doppelklick in die Pflege dieses Zusatzes verzweigen.
Beim Anschluß von Zusatztabellen, Zusatzfeldern und Zusatzstrukuren an logische Datenbanken müssen folgende Punkte beachtet werden:
SELECT SINGLE * FROM <tabelle> WHERE...
Den Zeitpunkt bestimmen Sie, indem Sie die Zusatztabelle einer bestimmten Tabelle der logischen Datenbank zuordnen. Es ist z.B. nicht sinnvoll, die Tabelle SCUSTOM (Daten über Kunden) der Tabelle SPFLI (Flugverbindungen) der logischen Datenbank F1S zuzuordnen, da zum Zeitpunkt der Verarbeitung von SPFLI-Daten das Schlüsselfeld SCUSTOM-ID (Kundennummer) noch nicht sinnvoll gefüllt werden kann. Erst bei der Verarbeitung von Daten der Tabelle SBOOK (Buchungen) steht die Kundennummer zur Verfügung und es kann ein Satz aus der Tabelle SCUSTOM gelesen werden, um z.B. den Namen des Kunden zu ermitteln.
Sie können alle Tabellen als Zusatztabellen anschließen, die im ABAP Dictionary eingetragen sind und die mit ABAP-SQL gelesen werden können.
Bei der Definition von Zusatzfeldern müssen folgende Punkte beachtet werden:
Bestimmt wird der Zeitpunkt durch die Zuordnung zu einer Tabelle der logischen Datenbank. So ist es nicht sinnvoll, die Berechnung der Zahl der freien Plätze eines Fluges aus den Feldern SFLIGHT-SEATSMAX (maximale Belegung) und SFLIGHT-SEATSOCC (belegte Plätze) beim Verarbeiten der Daten der Tabelle SPFLI anzusiedeln, denn diese Felder sind erst auf der Ebene der Verarbeitung der Tabelle SFLIGHT gefüllt.
Bei der Definition von Zusatzstrukturen müssen folgende Punkte beachtet werden:
Mehr über den Anschluß von Zusatztabellen und die Definition von Zusatzstrukturen und -feldern erfahren Sie in den folgenden Abschnitten.
Wenn Sie ein InfoSet, welches nicht über einer logischen Datenbank angelegt wurde, mit Zusätzen versehen möchten, beachten Sie auch die Ausführungen in den folgenden Abschnitten:
Definition eines Tabellen-Joins, Tabelle direkt lesen, Datenbeschaffung durch ein Programm und Besonderheiten.