Die Transaktion VF04 im SAP-System ist ein essenzielles Werkzeug für Unternehmen zur Verwaltung ihrer Fakturierungsanforderungen. Sie listet sämtliche Auslieferungen auf, die zur Fakturierung bereit sind, typischerweise nach erfolgter Warenbuchung (PGI – Post Goods Issue). Was jedoch, wenn eine Auslieferung zwar erstellt, aber noch nicht fakturiert werden kann, weil beispielsweise die Warenbuchung noch aussteht? Diese Lücke in der Standardfunktionalität von VF04 kann für die operative Effizienz eine Herausforderung darstellen.
In diesem Artikel tauchen wir tief in die Welt von Sap Vf04 ein und beleuchten, wie Sie diese Funktionalität erweitern können, um auch Auslieferungen ohne abgeschlossene Warenbuchung in Ihre Fakturierungsfälligkeitsliste aufzunehmen. Wir decken den Prozess detailliert ab und liefern Ihnen die notwendigen Einblicke, um Ihre SAP-Systeme optimal zu nutzen.
Die Standardfunktionalität von SAP VF04 verstehen
Grundsätzlich dient die Transaktion VF04 dazu, eine Liste von Auslieferungen anzuzeigen, die bereit zur Fakturierung sind. Dies bedeutet, dass in der Regel eine abgeschlossene Warenbuchung (PGI) vorausgesetzt wird. Nur diese “gebuchten” Auslieferungen erscheinen standardmäßig in der Ausgabe. Dies gewährleistet, dass nur abgeschlossene Geschäftsvorfälle fakturiert werden, was die Genauigkeit der Buchhaltung und des Lagerbestands sichert.

Wenn Sie jedoch Auslieferungen benötigen, die noch nicht buchungsrelevant sind, also noch keine Warenbuchung stattgefunden hat, stoßen Sie mit der Standard-VF04 an Grenzen.
Identifizierung nicht gebuchter Auslieferungen
Um Auslieferungen zu identifizieren, bei denen die Warenbuchung (PGI) noch nicht erfolgt ist, können Sie die Transaktion VL06o nutzen.

Durch Klick auf die Schaltfläche “Zum Warenausgang” (For Good issue) können Sie eine Liste von Auslieferungen erhalten, die noch nicht im System gebucht wurden. Führen Sie diesen Bericht nach Eingabe relevanter Suchkriterien aus.
Anschließend können Sie in VL03N den Belegfluss einer solchen Auslieferung überprüfen.

Der obige Belegfluss zeigt eindeutig, dass die Warenbuchung (PGI) noch nicht erfolgt ist.
Wenn Sie nun versuchen, diese Auslieferung in VF04 auszuführen, erhalten Sie folgende Meldung: “Kein Eintrag gefunden”. Dies unterstreicht die Notwendigkeit einer Erweiterung.
Schritte zur Erweiterung der VF04-Funktionalität
Um die gewünschte Funktionalität zu erreichen und Auslieferungen, bei denen die Warenbuchung noch nicht erfolgt ist, in der VF04-Ausgabe anzuzeigen, sind mehrere technische Schritte im SAP-System erforderlich. Dies involviert die Suche und Nutzung von User-Exits im SAP-System.
1. Programmidentifikation für VF04
Der erste Schritt besteht darin, den Namen des Standardprogramms zu ermitteln, das von der T-Code VF04 aufgerufen wird.

Das Programm, das für VF04 zuständig ist, lautet SAPLV60P.
2. Suche nach User-Exits
Mit diesem Programm im Gepäck können Sie nun im SAP-System nach relevanten User-Exits für die Transaktion VF04 suchen. Dies kann über Transaktionen wie SMOD (SAP-Modul-Pflege) oder SE80 (Objektnavigator) geschehen.
3. Identifizierung relevanter User-Exits in SE80
Navigieren Sie zu SE80 und suchen Sie nach dem Programm SAPLV60P. Innerhalb dieses Programms oder der zugehörigen Pakete können Sie nach User-Exits suchen.

Die folgende Liste zeigt relevante Exit-Punkte. Für unsere Anforderung sind diejenigen interessant, die eine Überprüfung des Fakturierungsstatus von Auslieferungen ermöglichen.

Es ist wichtig zu bedenken, dass wir nach einer Funktionalität suchen, die den Fakturierungsstatus der Auslieferung überprüfen und nutzen kann.
Zusätzlich ist es hilfreich, VF04 zu debuggen, um zu verstehen, aus welchen Datenbanktabellen der Bericht seine Daten bezieht.
Das Programm SDBILLDL wird hierbei bei F8 aufgerufen.


Es stellt sich heraus, dass die Tabelle VKDFS verwendet wird, um die Daten abzurufen, die in der VF04-Ausgabe angezeigt werden. Diese Tabelle spielt eine zentrale Rolle für die Fakturierungsfälligkeitsliste.
4. Weitere Erkundung relevanter Exits
Eine weitere Untersuchung der Exits offenbart:

Der Exit EXIT_SAPLV05I_002 scheint für unser Szenario relevant zu sein. Allerdings wird dieser Exit nicht während der Ausführung von VF04 für Auslieferungen aufgerufen.
Wie bereits erwähnt, wird die Tabelle VKDFS bei der Aktualisierung von Auslieferungen aktualisiert. Um dies zu demonstrieren, wurde eine neue Auslieferung erstellt.
Setzen wir einen Breakpoint innerhalb des gefundenen Exits:


Nun führen wir die Kommissionierung für die Auslieferung durch.
Gehen Sie zum Reiter “Kommissionierung” (Picking), geben Sie die kommissionierte Menge ein und sichern Sie die Auslieferung.
Nun wird der Kunden-Exit aufgerufen.
Die Kommissionierung ist abgeschlossen!
Somit haben wir den korrekten Exit für die Anpassung gefunden.
5. Implementierung der Logik
Die spezifische Codierung hängt von den Projektanforderungen ab. Um jedoch die beschriebene Funktionalität zu ermöglichen, muss sichergestellt werden, dass die Tabelle VKDFS aktualisiert wird.
WICHTIG: Aktuell enthält VKDFS keinen Eintrag für die Auslieferung, da die Warenbuchung (PGI) noch nicht erfolgt ist.
Während der Kommissionierung fügen wir einen erzwungenen Eintrag in VKDFS für unsere Auslieferung ein. Dadurch wird sie später in der VF04-Ausgabe erscheinen.
Hierbei sind die Felder FKSTK (Fakturierungsstatus) und KOSTK (Gesamter Kommissionier-/Einlagerungsstatus) von Bedeutung. Beide Felder haben ähnliche Domänenwerte.
6. Test der VKDFS-Aktualisierung
Um die Aktualisierung von VKDFS zu testen, führen wir die Kommissionierung für eine weitere Auslieferung durch.
Geben Sie die kommissionierte Menge als “1” ein und sichern Sie die Auslieferung. Der Debugger wird nun aufgerufen.

Der im Exit geschriebene Code wird nun ausgeführt.

Das importierende Feld des Kundenfunktions-Exits bestimmt, ob VKDFS befüllt und aktualisiert werden soll oder nicht.

7. Standard-VKDFS-Aktualisierung
Im Standardcode erfolgt nun die Aktualisierung von VKDFS.

8. Überprüfung in VF04 nach Anpassung
Schließlich überprüfen wir die Auslieferung in der Tabelle VKDFS.
Nachdem unsere Funktionalität implementiert und getestet wurde, überprüfen wir abschließend VF04. Sie werden feststellen, dass diese Auslieferung, auch wenn die Warenbuchung (PGI) noch nicht erfolgt ist, nun in der Fakturierungsfälligkeitsliste erscheint.

Fazit und Ausblick
Die Erweiterung der SAP VF04 Transaktion, um Auslieferungen vor der vollständigen Warenbuchung zu berücksichtigen, ist durch die Nutzung von User-Exits und die gezielte Manipulation der Tabelle VKDFS realisierbar. Dies ermöglicht eine flexiblere und umfassendere Verwaltung von Fakturierungsprozessen, insbesondere in Szenarien, in denen eine zeitliche Diskrepanz zwischen Auslieferungserstellung und Warenbuchung besteht.
Durch diese Anpassung können Unternehmen ihre operativen Abläufe optimieren, potenzielle Verzögerungen in der Rechnungsstellung minimieren und eine genauere Übersicht über alle potenziell fakturierbaren Vorgänge behalten.
Wenn Sie vor ähnlichen Herausforderungen in Ihrem SAP-System stehen oder weitere Fragen zur Optimierung von SAP VF04 haben, zögern Sie nicht, sich an SAP-Experten zu wenden. Die Implementierung solcher Anpassungen erfordert tiefgreifendes technisches Verständnis und sollte sorgfältig geplant und getestet werden, um die Systemstabilität und Datenintegrität zu gewährleisten.
