Problem mit der Updater-Synchronisation
Das SAP R / 3-System verwendet Aktualisierungsmodule, um zusätzliche Daten, die mit Stammdaten verknüpft sind, transaktional zu speichern. Mehr dazu lesen Sie zum Beispiel hier .
Aus Gründen der Datenkonsistenz müssen Sie nach dem Speichern auf die Ausführung von Modulen vom Typ V1 warten. Im Allgemeinen wird dies durch Ausführen des Befehls COMMIT WORK AND WAIT erreicht.
Einige Standard- BAPI- Funktionsbausteine rufen im Text COMMIT WORK auf . Nachdem Sie eine solche FM durchgeführt haben, können Sie nicht überprüfen, ob der Speichervorgang mit einfachen Befehlen abgeschlossen ist. Um dieses Problem zu lösen, schreiben einige Programmierer einige komplizierte Abfragen in die VB-Tabelle oder warten auf unangemessene n Sekunden. Alles ist viel einfacher.
SET UPDATE TASK LOCAL kommt zur Rettung
Kurz gesagt, es startet den lokalen Ausführungsmodus für V1-Aktualisierungsmodule. Der Modus ist für V1-Aktualisierungsmodule aktiviert, die vom Aufruf des Bedieners bis zum Ende der aktuellen Datenbank der LUW registriert wurden. In diesem Fall V1-Module:
- im ABAP-Speicher gespeichert, nicht in der VB-Aktualisierungstabelle;
- werden im aktuellen Prozess nicht parallel ausgeführt;
- synchronisiert durch die Anweisung COMMIT WORK.
Das heißt, wenn COMMIT WORK aufgerufen wird, wartet das Programm, bis die lokal registrierten V1-Aktualisierungsmodule ausgeführt werden. Der Unterschied ist in der Abbildung dargestellt:
Total SET UPDATE TASK LOCAL ist nützlich, wenn Sie die Anweisung COMMIT WORK nicht steuern können und warten möchten, bis alle V1-Module abgeschlossen sind.