Moin,
wir möchten das Vertriebsbeleg Feld VBAK-SPART in die Positionen vererben.
Gedacht ist, die Sparte wird im Belegkopf verändert, nach Enter oder während des Sichern des Beleges wird dieser vbak-Spart Kopf Eintrag in allen Positionen eingetragen.
Dazu habe ich schon einige User Exit gefunden und angepasst.
Beim Sichern geht das System folgende Weg
USEREXIT_MOVE_FIELD_TO_VBAK
USEREXIT_SAVE_DOCUMENT_PREPARE
USEREXIT_SAVE_DOCUMENT
Leider nicht über
USEREXIT_MOVE_FIELD_TO_VBAP, hier vermute ich die Möglichkeit der Positionsanpassung.
USEREXIT_MOVE_FIELD_TO_VBAP wird nur durchlaufen, wenn wirklich in der Position etwas verändert wurde.
Dann wird auch die YVBAP[] gefüllt und während des Sicherns mit der XVBAK[] verglichen.
Eine Manipulation durch Schreiben YVBAP Sätze in USEREXIT_SAVE_DOCUMENT_PREPARE hat keinen Erfolg gebracht, auch nicht in USEREXIT_SAVE_DOCUMENT.
Was muss ich tun, damit der Feldinhalt Vbak-Spart während des Sicherns in die Positionen geschrieben wird?
SAVE_DOCUMENT_PREPARE wäre mir immer noch zu spät, da der Anwender während der Bearbeitung nichts von der Änderung mitbekommt.
MOVE_FIELD_TO_VBAK wäre m.E. der richtige Zeitpunkt.
Wichtig: Immer UPDKZ auf "U" setzen, damit es beim Speichern als Änderung erkannt wird. Eventuell kann es sogar notwendig sein, den Original-XVBAP-Eintrag in YVBAP zu kopieren.