SAP Jobsuche bei DV-Treff
DeTurbo
  • DeTurbo
  • SAP Forum - Neuling Thema Starter
vor 7 Jahre
Guten Tag zusammen,

ich möchte gerne beim Sichern eines SD Belegs die VBELN-Nummern in ein eigenes ZZ-Feld in der VBAK schreiben.

SAP bietet bei SD Belegen beim Sichern eines Belegs zwei User-Exits an:

USEREXIT_SAVE_DOCUMENT_PREPARE -> Vor dem Speichern in der DB

USEREXIT_SAVE_DOCUMENT -> Nach dem Speichern in der DB

Problem: Bei SAVE_DOCUMENT_PREPARE wird die VBAK-VBELN noch nicht übergeben, da der Beleg noch nicht gespeichert und noch keine Nummer gezogen wurde.

SAVE_DOCUMENT ist zwar VBAK-VBELN bekannt, allerdings ist es beim Aufruf des USER-EXITS zu spät noch die VBAK zu verändern...

Wisst Ihr eine Möglichkeit die VBELN bereits bei PREPARE zu bekommen?

Oder gibt es sonst eine Lösung für das Problem?

Besten Dank vorab!

Und schöne Grüße!

Förderer

wreichelt
vor 7 Jahre
Hallo,

ist die Tabelle XVBAK nicht mit der VBELN richtig gefüllt ?

Gruß Wolfgang

DeTurbo
  • DeTurbo
  • SAP Forum - Neuling Thema Starter
vor 7 Jahre
Beim Ändern eines SD Beleges schon.

Beim Anlegen ist XVBAK und YVBAK nicht befüllt.

wreichelt
vor 7 Jahre
Hallo,

im OSS-Hinweis 2283608 wird beschrieben dass die Information VBELN in der XVBAP stehen.

Gruß

Wolfgang

SanduhrAnzeigeProgramm
vor 7 Jahre
Der userexit_save_document_prepare ist für die beschriebene Ermittlung aber mit Vorsicht zu genießen.

Er wird nämlich vor dem userexit_number_range gerufen und da kann sich ja noch was ändern.

Und er eigentliche Number_Get_Next wird erst nach dem userexit_number_range gerufen.

Somit kann sich da noch viel ändern bzw. schieflaufen, nach dem userexit_save_document_prepare bezogen auf die (tatsächliche) VBELN.

Die tatsächliche VBELN ist meiner Meinung nach, erst dann sicher auslesbar wen das sichern des Auftages abgeschlossen wurde.

Leider bin ich an der Ecke "Nachbearbeitung, nach dem sichern" nur "Zuschauer".

Aber meine Kollegen aus dem DEV nutzen für solche Anforderungen die User Exits der Nachbearbeitung bzw. vorbereitende zur Druckverarbeitung um im Nachhinein (also nach dem sichern des Beleges) nochmals den Beleg anzureichern.

Wie gesagt dieses Nachträgliche, ist nicht meine Welt.


*... who can do field replacements in the debugger can do anything in the system

*so this check can not stop (him) anyway.

DeTurbo
  • DeTurbo
  • SAP Forum - Neuling Thema Starter
vor 7 Jahre
Danke für deine Antwort,

SanduhrAnzeigeProgramm.

Wie du schon beschrieben hast, ist das alles andere als schön die VBELN schon vor dem sichern wissen zu wollen und irgendwo hinzuschreiben.

Ebenfalls ist es aber auch nicht schön im Nachhinein in die VBAK Tabelle eik Feld zu ändern.

Für unsere Zwecke reicht nun erst mal die Anfrage des Nummerstands durch Number_Get_Next bevor gespeichert wird.

Im userexit_save_document wird die Nummer nochmals verglichen und zur Not nochmals auch Ändern zurückgeworfen.

Schön ist das nicht...

Falls jemand eine bessere Lösung hat, nur her damit:-)

mo001
  • mo001
  • SAP Forum - Experte
vor 7 Jahre
Darf man fragen aus welchem Grund die VBELN ein zweites mal auf die VBAK geschrieben werden soll?

Evtl. kann man besser helfen, wenn der Sinn der Übung klar ist...