Dateninkonsistenz/Verbuchungsbausteine

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
2 Beiträge • Seite 1 von 1
2 Beiträge Seite 1 von 1

Dateninkonsistenz/Verbuchungsbausteine

Beitrag von Thomas R. (Expert / 766 / 84 / 40 ) »
Hallo,
bei mir taucht die Frage auf wie man die Datenkonsistenz bei Nachbuchungen sicherstellen kann.
Im Gutfall (Verbuchung im normalen Prozess) kommen die Datenbanksperren ja vom rufenden Programm.
Im Schlechtfall (Verbuchungsabbruch) werden die Sperren i.A. (je nach Systemparameter rdisp/vb_lock_mode) beim Abbruch aufgehoben.
Bucht man nun nach können die Daten zwischenzeitlich ja bereits wieder geändert worden sein und somit eine Inkonsistenz erzeugt werden.
Selbst wenn man sich beim Schreiben nicht auf die Datenbanksperre verlassen würde und in dem Verbuchungsbaustein selbst eine Sperre aufbaut können solche Effekte auftreten, im Extremfall zwischen Aufruf der Nachverbuchung und der Durchführung der Nachverbuchung.

Habt Ihr Euch dazu schon Gedanken gemacht und zu welchen Ansichten seid ihr gekommen? Verlasst Ihr Euch auf die Statistik/Wahrscheinlichkeit in solchen Fällen? Erlaubt Ihr keinerlei Nachbuchung? Schreibt Ihr eigene Korrekturtransaktionen um die Datenkonsistenz garantieren zu können? Denke ich nur zu kompliziert? :?

MfG
Thomas R.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Dateninkonsistenz/Verbuchungsbausteine

Beitrag von larsi (ForumUser / 47 / 2 / 11 ) »
Hallo Thomas,

die Frage habe ich mir auch schon mal gestellt. Allerdings hat sich das Problem bei mir eigentlich immer dadurch erledigt, dass "meine" abgebrochenen Verbuchungen immer im Status "Error, no retry" bzw. "Nicht nachbuchbar" stehen geblieben sind. D.h., eine erneute Verbuchung über die SM13 war damit gar nicht möglich. Meines Erachtens handelte es sich dabei um Abbruchmeldungen (MESSAGE TYPE 'A') im V1-Verbucher, wo SAP dann vermutlich sagt "ui ui ui, das lassen wir mal lieber" und bieten keine Nachverbuchung an. Im Gegenzu frage ich mich aber, was bei der Verbuchung passieren muss, dass eine Nachverbuchung dennoch möglich wird. Aus der Hilfe bin ich leider auch nicht wirklich schlauer geworden.

Grundsätzlich würde ich aber keine erneute Sperre im Verbuchungsbaustein setzen. Grundsätzlich sieht ja das Konzept so aus, dass die Sperre im Dialogprozess gesetzt wird und mit dem COMMIT WORK an den Verbucherprozess übergeht (der Sperreigentümer ändert sich). Am Ende wird dann die Sperre automatisch aufgehoben (ok, vorausgesetzt ich habe mit SCOPE = 2 gearbeitet). Ob das aber auch noch alles so funktioniert, wenn man im Verbucher noch eine Sperre anfordert... Oder anders gesagt: wie erkennt man eine Nachverbuchung, dass man theoretisch nur in den Fällen dann eine Sperre im Verbucher setzt? Mir fällt da gerade nix ein...

Im Zweifelsfall würde ich immer noch mal den Anwender ranlassen, dass der seine Änderung im Dialog noch mal nachzieht (vorausgesetzt, der Verbucher etc. funktioniert ordnungsgemäß und hat kein generelles Problem, das immer wieder zum Abbruch führt ;-))

Viele Grüße,
Lars

Seite 1 von 1

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.