Verbuchung abwarten

In Kundenprogrammen werden häufig SAP-Funktionen aufgerufen, die eine Verbuchung starten. Meistens ist das aber gar nicht gewünscht, denn manchmal möchte man vielleicht die verbuchten Daten nachlesen oder – was wahrscheinlich häufiger der Fall sein wird – die verbuchten Daten werden für den nächsten Prozess benötigt.

Problem

Sie möchten einen “Workflow” programmieren, der zum Beispiel einen Auftrag anlegt und danach ein Equipment zuordnet. Sie Starten den BAPI zur Auftragsanlage und ordnen dann – ebenfalls mit einem SAP-Standard-Baustein – das Equipment zu. Das Programm läuft in der Regel gut. Aber hin und wieder bekommen Sie die Rückmeldung, dass die Zuordnung des Equipments nicht funktioniert hat. Sie machen sich also daran, das Programm zu analysieren und zu debuggen, finden aber keinen Fehler.

Dann kommt irgendwann der Hinweis, dass der Fehler meistens dann aufrtitt, wenn das System sehr langsam ist und langsam keimt bei Ihnen der leise Verdacht, dass es mit der Verbuchung zusammen hängen könnte…

In der Regel findet man dann in den Programmen Anweisungen wie “WAIT UP TO 10 SECONDS” oder ein Stück Coding, das so lange auf der Datenbank liest, bis der Beleg endlich da ist. Das ist aber unnötig, wenn man weiss, wie man sicherstellen kann, dass die Verbuchung auch wirklich mit dem nächsten Verarbeitungsschritt abgeschlossen wurde.

Lösung

Die Lösung ist sehr einfach:

SET UPDATE TASK LOCAL.

Mit diesem Befehl wird der Verbucher im aktuellen Modus abgearbeitet, es wird also gar nicht verbucht. Nach diesem Befehl kann dann zum Beispiel ein BAPI aufgerufen werden. Nach COMMIT WORK kann man sicher sein, dass die Daten auch “verbucht” wurden.

HINWEIS:
Nach jedem COMMIT WORK muss der Befehl erneut abgesetzt werden!

Einschränkungen

Bei CALL TRANSACTION funktioniert diese Anweisung leider nicht!

Im Modul “Warehouse Management” (WM) werden einige Daten per asynchronem RFC “verbucht”. Hier hat man leider auch keine andere Chance, als gegenbenenfalls die Daten zu lesen, bis sie wirklich auf der Datenbank sind.

Enno Wulff
Letzte Artikel von Enno Wulff (Alle anzeigen)