Anfang des Inhaltsbereichs

Was ist ein Context? Dokument im Navigationsbaum lokalisieren

In der Gesamtmenge der Daten, die in der Datenbank des R/3-Systems abgespeichert sind, gibt es immer relativ kleine Mengen von Grunddaten, aus denen Sie weitere Informationen gewinnen können. Im relationalen Datenbankmodell sind dies z.B. die Schlüsselfelder der Datenbanktabellen.

In der Anwendungsprogrammierung werden oft aus solchen wenigen Grunddaten, die z.B. vom Benutzer beim Benutzerdialog eingegeben werden, die weiteren Informationen für den Fortgang des Programms bestimmt. Zu diesem Zweck werden entweder die relationalen Beziehungen der Daten in der Datenbank verwendet, um basierend auf den Grunddaten weitere Daten zu lesen, oder es werden aus den Grunddaten abgeleitete Werte durch ABAP-Anweisungen berechnet.

Dabei kommt es häufig vor, daß in einem Programm oder sogar über mehrere Programme hinweg bestimmte Beziehungen zwischen Daten immer in der gleichen Form zur Datenbeschaffung verwendet werden. Somit werden die gleichen Datenbankzugriffe oder Berechnungen immer wieder neu ausgeführt, obwohl das Ergebnis im System schon einmal vorhanden war. Um diese unnötige Systembelastung zu verhindern, können Sie Contexte einsetzen.

Contexte sind Objekte der Entwicklungsumgebung, die aus einzugebenden Schlüsselfeldern, aus Beziehungen zwischen diesen Feldern und daraus ableitbaren weiteren Feldern bestehen. Contexte können die abgeleiteten Felder über Fremdschlüsselbeziehungen zwischen Tabellen, über Funktionsbausteine oder aus anderen Contexten beziehen. Contexte werden in der ABAP Development Workbench (Transaktion SE33) abstrakt definiert und in ABAP-Programmen als Laufzeitobjekte (Instanzen) verwendet.

In der Development Workbench besteht ein Context aus Feldern und Modulen. Die Felder eines Contexts sind aufgeteilt in Schlüsselfelder und abgeleitete Felder. Die Module beschreiben die Beziehungen zwischen den Feldern.

Technisch gesehen sind Contexte spezielle ABAP-Programme (Context-Programme). Dabei sind zu unterscheiden die Speicherung des Contexts in

In einem Anwendungs-Programm arbeiten Sie mit den Instanzen eines Contexts. Es können mehrere Instanzen zu einem Context verwendet werden. Das Anwendungs-Programm versorgt die Instanzen von Contexten mit Eingabewerten für die Schlüsselfelder (Anweisung SUPPLY) und kann die abhängigen Felder aus den Instanzen von Contexten abfragen (Anweisung DEMAND).

Zu jedem Context gehört ein transaktionsübergreifender Puffer auf dem Anwendungsserver. Bei der Abfrage einer Instanz nach Werten sucht das Context-Programm zuerst im zugehörigen Puffer nach einem Datensatz mit den entsprechenden Schlüsselfeldern. Falls vorhanden, wird die Instanz mit diesen Daten versorgt, ansonsten leitet das Context-Programm die abhängigen Daten aus den eingegebenen Schlüsselfeldern ab und schreibt den Datensatz in den Puffer.

Wenn in einem Programm neue Schlüsselfelder in eine bereits versorgte Instanz eingegeben werden, so invalididiert das System alle bereits abgeleiteten betroffenen Werte. Diese Werte werden erst bei der nächsten Abfrage neu versorgt.

Ende des Inhaltsbereichs