Anfang des Inhaltsbereichs

Objektdokumentation Sperrobjekte  Dokument im Navigationsbaum lokalisieren

Definition

Der gleichzeitige Zugriff mehrerer Benutzer auf denselben Datenbestand wird im SAP-System durch einen Sperrmechanismus synchronisiert. Das Setzen bzw. Freigeben von Sperren erfolgt in der Programmierung von Dialogtransaktionen durch den Aufruf von Funktionsbausteinen (siehe Funktionsbausteine für Sperranforderungen), die automatisch aus der Definition von Sperrobjekten im ABAP Dictionary generiert werden.

Struktur

In einem Sperrobjekt geben Sie diejenigen Tabellen mit ihren Schlüsselfeldern an, in denen Datensätze mit einem Sperrauftrag gesperrt werden sollen. Bei der Tabellenauswahl müssen Sie zunächst die Primärtabelle auswählen. Zu dieser können Sie weitere Tabellen (Sekundärtabellen) über Fremdschlüsselbeziehungen (siehe Bedingungen an die Fremdschlüssel) hinzunehmen. Die folgende Abbildung zeigt eine Primärtabelle und ihre Beziehungen zu zwei weiteren Tabellen (Sekundärtabellen).

Diese Grafik wird im zugehörigen Text erklärt

Sperrargumente

Das Sperrargument einer Tabelle im Sperrobjekt besteht aus den Schlüsselfeldern der Tabelle.

Die Sperrargumentfelder eines Sperrobjekts werden in den aus der Sperrobjektdefinition generierten Funktionsbausteinen zum Setzen und Freigeben von Sperren als Eingabeparameter verwendet. Beim Aufruf dieser Funktionsbausteine werden die zu sperrenden bzw. freizugebenden Tabellenzeilen durch die Angabe bestimmter Werte in diesen Feldern definiert, die auch generisch sein können. Die Sperrargumentfelder bestimmen, welche Teilmenge der Tabellenzeilen gesperrt werden soll.

Diese Grafik wird im zugehörigen Text erklärt

Im einfachsten Fall besteht ein Sperrobjekt aus genau einer Tabelle, und das Sperrargument der Tabelle ist der Primärschlüssel dieser Tabelle. Es können auch mehrere Tabellen in ein Sperrobjekt einfließen. Mit einer Sperranforderung kann dann nicht nur ein Satz aus einer Tabelle, sondern ein ganzes logisches Objekt gesperrt werden. Ein solches logisches Objekt kann z.B. ein Beleg sein, der aus einem Eintrag in einer Kopftabelle und n Einträgen in einer Positionstabelle besteht. Die folgende Abbildung zeigt die gesperrten Sätze in einem Beispiel mit drei Tabellen.

Diese Grafik wird im zugehörigen Text erklärt

Hinweis

        Sperren können über entsprechende Schnittstellen auch von Programmen in anderen Systemen gesetzt werden, wenn das Sperrobjekt mit RFC-Berechtigung definiert wurde.

        Für jede Tabelle im Sperrobjekt kann ein Sperrmodus vergeben werden. Dieser bestimmt, wie andere Benutzer auf einen gesperrten Satz der Tabelle zugreifen können.

Beispiel

Die Tabelle SFLIGHT im Flugmodell enthält alle geplanten Flüge einer Fluggesellschaft. Im Feld SEATSMAX ist die zur Verfügung stehende Anzahl von Plätzen vermerkt. Im Feld SEATSOCC steht die Anzahl der bisher gebuchten Plätze. Wird eine Buchung für einen Kunden vorgenommen (von einem Reisebüro oder einem Verkaufsschalter der Fluggesellschaft), muss geprüft werden, ob noch ausreichend freie Plätze vorhanden sind. Mit der Buchung wird dann auch die Zahl der belegten Plätze erhöht.

Bei diesem Mechanismus muss sichergestellt werden, dass nicht zwei Verkaufsstellen gleichzeitig eine Buchung vornehmen und ein Flug damit überbucht wird.

Dies kann durch Anlegen eines Sperrobjekts ESFLIGHT erreicht werden. In dieses Sperrobjekt muss nur die Tabelle SFLIGHT aufgenommen werden. Der Flug kann dann (mit den aus dem Sperrobjekt generierten Funktionsbausteinen) beim Buchen gesperrt werden. Will eine andere Verkaufsstelle ebenfalls Plätze für diesen Flug buchen, wird über die Sperre eine Überbuchung des Flugs verhindert.

Siehe auch:

Beispiel zu Sperrobjekten

Sperrobjekte anlegen

Sperrobjekte löschen

 

 

 

 

 

Ende des Inhaltsbereichs