Wenn du willst, dass deine UV schon richtig funktioniert bevor du sicherst, dann musst du auch/ oder USEREXIT_CHECK_VBAK nutzen.
Nur bei Änderungen die erst zum Zeitpunkt sichern verprobt werden können, nutzt man den USEREXIT_SAVE_DOCUMENT_PREPARE.
Das bedeutet aber auch, dass vor dem Sichern ein bedingt prüfbarer Zustand herrscht.
In solchen Fällen kann man z.B. im USEREXIT_CHECK_VBAK unvollständig ausweisen und dann erst in USEREXIT_SAVE_DOCUMENT_PREPARE tatsächlich prüfen und bezüglich Unvollständig oder nicht entscheiden. Ist manchmal für die Anwender schöner als erst beim Sichern über diese mögliche Unvollständigkeit zu stolpern; ist aber Geschmackssache.
*... who can do field replacements in the debugger can do anything in the system
*so this check can not stop (him) anyway.