Der Verbuchungsprozess
Das Verbuchungssystem dient unter anderem zur Entlastung der SAP-Transaktionen bei den zeitaufwendigen Datenbankänderungen. Die Änderungen werden asynchron - normalerweise mit nur kurzer Verzögerung - von speziellen Verbuchungs-Workprozessen durchgeführt.
Aus diesen Gründen wird das Verbuchungssystem in SAP-Transaktionen stark genutzt (von fast allen Transaktionen, die Geschäftsdaten ändern), obwohl Transaktionen Daten auch direkt in der Datenbank ändern können.
Ob und wie das Verbuchungssystem genutzt
wird, entscheidet der Anwendungsprogrammierer bei der Entwicklung der
Transaktion. Die Möglichkeiten, die der Programmierer hat, sind detailliert im
ABAP-Handbuch im Kapitel
Techniken der
Verbuchung beschrieben.

Beim Programmieren mit der SAP-Verbuchung ist darauf zu achten, nur insert-, update- und delete-Instruktionen in der Verbuchung durchzuführen. Das Sammeln der benötigten Daten (mit select etc.) soll natürlich schon vorher erfolgen. Eine ungeschickte Programmierung hat eine schlechte Performance und unter Umständen schwerwiegende Probleme zur Folge.
Wie die Grafik in Funktionsweise der
Verbuchung zeigt, wird am Ende einer Transaktion COMMIT
WORK und damit der Verbucher aufgerufen; der
Dialogteil der SAP-Transaktion endet, der Verbuchungsteil der SAP-LUW beginnt.
Folgendes Bild stellt die Aktionen und ihre Reihenfolge dar, die verschiedene
Workprozesse durchführen.

Nach dem Abschluß der Transaktion schließt der Dialogworkprozess den VBHDR-Eintrag ab (der Verbuchungskopf des Verbuchungsauftrags) und sucht einen Verbuchungsserver für die V1-Verbuchung. Dies wird unter Verbuchungs-Dispatching mit Lastausgleich genauer beschrieben.
Der Verbuchungsserver verteilt die
Aufgaben mit an einen Verbuchungs-Workprozess. Dieser arbeitet die V1-Module
des Verbuchungsauftrags ab, löst einen COMMIT auf der Datenbank aus und gibt
die SAP-Sperren, die dieser Verbuchungsauftrag hatte, frei (vgl.
Das
SAP-Sperrkonzept). Anschließend sucht der Workprozess einen
Verbuchungsserver für die V2-Verbuchung, sofern V2-Verbuchungsmodule vorhanden
sind.
Diese wird dann von einem V2-Verbuchungsserver an einen V2-Workprozeß weitergeleitet, der die V2-Module abarbeitet und einen COMMIT auf der Datenbank auslöst.
Das folgende Bild zeigt dies nochmals aus Sicht der verschiedenen Workprozesse. Ferner wird dargestellt, zu welchen Zeitpunkten Änderungen in der Datenbank vorgenommen werden.

Das Abarbeiten der V1-Module besteht darin, den Inhalt der Verbuchungstabellen VBMOD und VBDATA in die Anwendungstabellen der Datenbank zu übertragen. Erst am Ende der Datenbank-LUW, in der dies geschieht, sind die Änderungen wirklich in den gewünschten Tabellen in der Datenbank angekommen. Die SAP-Sperren werden freigegeben, und, falls es V2-Verbuchungsmodule gibt, so wird die V2-Verbuchung angestartet. Diese läuft wie die V1-Verbuchung, nur gibt es keine Sperren, die freigegeben werden müssen, und es muß auch kein Prozeß zur weiteren Verarbeitung gesucht werden.
Verläuft die Verbuchung ohne Fehler, so erscheint der Verbuchungssatz nicht mehr in der Verbuchungsverwaltung und die Daten sind verarbeitet.
Weitere Informationen zum Verbuchungsprozess finden Sie unter:
Synchrones und asynchrones Verbuchen
Die wichtigsten Verbuchungsstatus
Fehlerbehandlung und Datenkonsistenz