Wir haben in einem Report einen BAPI laufen zum erstellen eines Verk.Auftrag. mit dem FUBA
'BAPI_SALESORDER_CREATEFROMDAT1'.
Im UserExit zum Verkaufsauftrag anlegen in SAPMV45A,
haben wir etwas abfangen müssen, in der eine selbst gestrickte Tabelle abgefragt wird und gegebenfalls ein InfoMessage erscheint, anfang nächsten Jahres aber dann ggf. eine ErrorMessage. Beim manuellen anlegen ist das ja kein Problem mit den Messages, aber was passiert beim anlegen mit dem BAPI, wenn diese Messages ausgelöst werden?
Abfangen im UserExit ob BAPI?
das sollte eigentlich kein Problem sein, da der BAPI in dem Exportparametern einen Returncode zurückgeben kann. Wenn Ihr die Message im Online an einer erlaubten Stelle sendet (also nicht in der Verbuchung....), so wird der BAPI sie wahrscheinlich ignorieren solange es sich um eine Info handelt und abbrechen und die Message zurückliefern, wenn es sich um einen Fehler handelt. So funktioniert das zumindest bei anderen BAPIs.
Den zurückgelieferten Fehler könnt Ihr in Eurem Report dann noch verarbeiten, z.B. auf einem Protokoll ausgeben.
Ich nochmal,
jetzt habe ich noch ein Problemchen,
innerhalb des UserExit will ich nun abfragen, ob die Bearbeitung über einen BAPI läuft,
dort gibt es ja eine schöne SYS-Variable SY-BINPT,
jedoch ist die in meinem Fall irgendwie nicht gefüllt! Ich will es vermeiden den TCode innerhalb des UserExits hard zu codieren!
Hat jemand ne Anregung!
SY-BINPT hilft hier nicht. Das zeigt nicht an ob ein Aufruf per BAPI erfolgt oder nicht.
Wie heisst denn eigentlich der User-Exit? Im SD gibt in fast allen Schnittstellen der SD-Bausteine (insbesondere zur Salesorder) den Parameter 'i_call_bapi' bzw. 'call_bapi'. Schau mal, ob Du auf den zugreifen kanns in der User-Exit Schnittstelle (evtl. über 'dirty assign').