Willkommen Gast! Um alle Funktionen zu aktivieren müssen Sie sich Anmelden oder Registrieren.

Mitteilung

Icon
Error

Optionen
Gehe zum aktuellsten Beitrag Gehe zum letzten Ungelesenen
Offline CEisele  
#1 Geschrieben : Montag, 19. März 2018 12:30:40(UTC)
CEisele

Beiträge: 7
Germany
Hallo liebe ABAP-ler,

ich habe leider wieder ein Problem.
Ich habe ein Include erstellt, das im Programm SAPMV50A im Include MV50AFZ1 hängt.
Das Programm soll bei einem Positionstyp, der auftragsbezogen fakturiert wird, Nachlieferungen ermöglichen. Da wir alle Customizingeinstellungen in dem Fall versucht haben und nichts funktioniert hat, war ein Programm unsere einzige Alternative.
Das Programm liest zuerst anhand der Liefernummer im Belegfluss den Vorgängerbeleg aus.
Anschließend wird geprüft ob der Gesamtstatus C ist, wenn nicht sollen in der VBUK/VBUP die zugehörigen Lieferstati ungleich C sein, sodass eine Nachlieferung erzeugt werden kann.
Irgendwo ist hier aber der Wurm drin. Wenn ich eine Liefermenge in der Lieferung ändere, werden die Werte erst beim zweiten mal Speichern wirklich übernommen.

Hier der Codeausschnitt nur für die VBUK nachdem der Vorgängerbeleg (Auftragsnummer) aus dem Belegfluss ermittelt wurde.

loop at lt_vbfa into lv_vbfa.

select * from vbuk into TABLE lt_vbuk
where VBELN = lv_vbfa-VBELV.

loop at lt_vbuk into lv_vbuk.

if lv_vbuk-gbstk NE 'C'.

lv_vbuk-LFSTK = 'B'.
lv_vbuk-LFGSK = 'B'.


select * from vbuk into vbuk where vbeln = lv_vbuk-vbeln.

update vbuk from lv_vbuk.
endselect.

endif.

endloop.

endloop.

Vielen Dank für eure Hilfe!

Viele Grüße
Christina

Nehmen Sie an dieser Diskussion teil! SAP FORUM - SAP Community LoginHier registrieren.

Offline AB74  
#2 Geschrieben : Montag, 30. April 2018 09:55:46(UTC)
AB74

Beiträge: 9
Germany
Hallo Christina,

hast Du mal debugged, was beim ersten speichern passiert? (warum er die entsprechenden Werte nicht ermittelt).

Was auch möglich wäre, dass er zu diesem Zeitpunkt die Werte noch nicht auf der Datenbank hat. Das würde ich beim Debuggen am besten auch mit prüfen. (Breakpoint im Programm/Userexit und mit SE16 nachschauen) Falls nicht, gibt es meines Wissens temporäre Felder/Strukturen (globale Programmvariablen die xvbuk/yvbuk bzw. xvbfa/yvbfa, oder so ähnlich heissen müssten).

Ich hoffe, dass das zumindest ein erster Lösungsansatz ist.

Viele Grüße
Arthur
Offline wreichelt  
#3 Geschrieben : Montag, 30. April 2018 11:36:44(UTC)
wreichelt

Beiträge: 1,639
Hallo Christa,

das mit dem zweiten Speichern kann auch daher kommen, daß die Daten Asynchron verbucht werden und dann erst beim zweiten male zur Verfügung stehen.
Hinweis 415716 hat einige Tipps für die Lieferbearbeitung.

Gruß Wolfgang
Benutzer, die gerade dieses Thema lesen
Das Forum wechseln  
Du kannst keine neue Themen in diesem Forum eröffnen.
Du kannst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge nicht löschen.
Du darfst deine Beiträge nicht editieren.
Du kannst keine Umfragen in diesem Forum erstellen.
Du kannst nicht an Umfragen teilnehmen.

- Impressum / Datenschutz -