ich würde gerne testen, ob eine Warenausgangsbuchung korrekt durchlaufen kann. Ich möchte praktisch dasselbe machen, wie der Button in der VL02N, nur, dass es ein Testlauf ist und in einem Programm aufgerufen wird. (Ich habe KEINE Positionsnummer, nur Lieferungsnummer)
Ich habe viele verschiedene FuBas und BAPIs gefunden und weiß nicht wirklich, was jetzt der Unterschied ist und welcher sich am besten eignet:
Was muss ich da denn eingeben? Besonders in goodsmvt_code. Im Moment gebe ich ihm nur die Lieferungsnummer, aber das funktioniert nicht, es wird dann ins return geschrieben, dass 'CODE von BAPI2017_GOODSMVT_CREATE nicht unterstützt' wird.
( SAP ECC 6.0, NetWeaver 7.0, ohne unicode, ohne support/enhancement packages )
Ich glaube nicht, dass ich den verwenden kann, ich habe nicht mal immer die Materialnummer.
Um meinen Plan umzusetzen benötige ich einen FuBa der
1) im Testlauf laufen kann
2.1) entweder immer nur eine POSNR bearbeitet (und dann den Fehler ausgibt)
2.2) oder einen, bei dem man erkennen kann, welcher Fehler zu welcher POSNR gehört.
'BAPI_OUTB_DELIVERY_CONFIRM_DEC' funktioniert beispielsweise, aber er geht immer die ganze Lieferungsnummer durch und gibt alle Fehler aus, ohne dass ich weiß, zu welcher POSNR diese gehören.
Ich brauche die POSNR, da ich die WA-Fehlerdaten sonst nicht in eine DB schreiben kann, weil sie nicht unique sind. Und einen Zähler kann ich auch nicht drauf tun, da ich dann beim nächsten Jobdurchlauf nicht feststellen kann, welche der Fehler behoben sind. Der Job gibt immer alle aktuellen Fehler aus, die Zähler für denselben Fehler könnten sich ändern. Und jedesmal alles von der DB löschen kann ich auch nicht, da Anwender hier auch Kommentare reinschreiben.
Zusammen mit der Lieferungsnummer, der POSNR, der Art des Fehlers und den Fehlervariablen wären die Einträge unique.
Mein Plan sieht folgendermaßen aus:
Ich habe eine itab, die die Lieferungsnummern enthält, die fehlerhaft sind. Ich fülle dann eine andere itab mit allen NRs und POSNR FOR ALL ENTRIES. Darüber LOOPe ich dann und lasse den FuBa laufen. Dann habe ich eine Verbindung zwischen Fehler und POSNR.
Scheint mir logisch zu klingen. Ich bräuchte nurnoch einen FuBa, der die Anforderungen erfüllt. Kennt niemand einen?
( SAP ECC 6.0, NetWeaver 7.0, ohne unicode, ohne support/enhancement packages )
ist da der SD_SHIPMENT_POST_GOODS_ISSUE nicht geeignet ?
Dieser Funktionsbaustein erzeugt für die im Transport I_TKNUM enthalten Lieferungen die WA-Buchungen.
Hierzu müssen die Transportpositionen (sprich die Lieferungen) in der Tabelle I_XVTTP mitgegeben werden.
Die WA-Buchung erfolgt quasi so, als wurde man in der VL02 für jede einzelne Lieferung den Warenausgang buchen.
Technisch gesehen erfolgt die WA-Buchung, indem in diesem FB ein CALL TRANSACTION auf die Transaktion VTWABU gemacht wird. Dies ist eine nur für diesen Zweck geschriebene Transaktion, die den Report RV56WABU aufruft, welcher wiederum den Funktionsbaustein WS_DELIVERY_UPDATE nutzt. Durch diese Konstruktion läuft das Buchen des Warenausgangs in einem eigenen Rollbereich ab. Dadurch wird die aktuell laufende Applikation (also die Transportbearbeitung) nicht gestört (Nachrichten, Texte, etc. werden sonst unter Umständen gelöscht). Um den Erfolg der WA-Buchung zu überprüfen, wird diese synchron ausgeführt.
Dieser FB löst folgende Ausnahmen aus:
SHIPMENT_HAS_NO_DELIVERIES: Transport besitzt gar keine Lieferungen
ALL_DELIVERIES_ALREADY_POSTED: Alle Lieferungen sind bereits WA gebucht
SOME_DELIVERIES_ALREADY_POSTED: Einige Lieferungen sind bereits WA gebucht. Es werden die noch nicht verbuchten WA gebucht.
GOODS_ISSUE_NOT_SUCCESSFUL: Die WA-Buchung konnte für eine oder meherere Lieferungen nicht erfolgreich durchgeführt werden.