... ist oft ein unangenehmer und zuweilen schwer zu lokalisierender Fehler.
In aller Regel ist die Ursache dafür entweder, dass
1. das angegebene Dynpro wirklich nicht gesendet wurde
oder
2. eine Fehlermeldung ausgegeben wurde
oder
3. die Transaktion mit "LEAVE TO TRANSACTION SY-TCODE" beendet wurde
oder
4. die Transaktion am Ende zum Einstiegsbild verzweigt ("SET SCREEN TO <EINSTIEGS-DYNPRO>")
oder
5. bspw. das CFW fehlt.
Das CFW ist beim Abspielen im Hintergrund nie vorhanden. Z.B. benötigen "moderne" Textbearbeitungen das CFW und das funktioniert im BI-Fall überhaupt nicht.
Der 1. Fall lässt sich nur reproduzieren, indem man genau das, was erzeugt werden sollte, nochmals genauso über die Tastatur eingibt bzw. mit Transaktion SHDB - am besten ohne BUCHEN - eingibt. Das ist in Entwicklungs- und auch Testsystemen oft nicht möglich, wenn die Daten-Konstellation nicht vorhanden ist und dann sehr unangenehm, wenn ein Nachstellen im Produktivsystem nicht gewünscht ist.
Im 2. Fall Dabei sollte man wie bei Fall 1 vorgehen und genau auf die ausgegeben Meldungen oder Popups achten. Handelt sich dabei um eine Meldung, die ein wiederholtes Senden des betroffenen Dynpros veranlasst, muss dieses auch der generierte Batch-Input tun. Ist der Fall ereignisabhängig, muss die Konstellation vorher per Programm auch so ermittelt werden. Dabei muss u. U. ein Zeitversatz zwischen Generierung und Abspielen der Mappe bedacht werden. Problematisch wird es, wenn die Abhängigkeit erst durch verschiedene Transaktionen in einer Mappe entstehen. Da hilft nur Trennung der Mappen und deren Generierung.
Das doppelte Senden von Screens lässt sich auch dadurch verhindern, indem man genau die Stelle im Coding findet und das wiederholte Senden im Batch-Input-Fall ("IF SY-BINPT NE SPACE ...") unterbindet. Ein Programmende im Batch-Input-Fall erreicht man mit der Anweisung "LEAVE PROGRAM".
Das ist im Falle ausgelieferten SAP-Codings zwar die schlechteste aber effektivste Lösung - eigentlich sollte der SAP-Entwickler soetwas bedacht haben.
Ferner sei angemerkt, dass sich das Abspielen von Mappen bzw. "CALL TRANSACTION ... USING" im Dialog und im Hintergrund durchaus unterschiedlich verhalten.
Was im Vordergrund klappt, muss im Hintergrund noch lange nicht funktionieren.
"Schuld" ist oftmals das CFW oder das automatisierte Setzen von Key-Objekten wie Buchungs-, Kostenrechnungskreis etc.
Vielen Dank für das aufmerksame Lesen!
Vielleicht hilft es ja weiter
![Zwinkern ;)](./images/smilies/icon_e_wink.gif)
Wenn der Tipp hilfreich war, freut sich der Autor über jeden Kommentar.
![Überrascht :o](./images/smilies/icon_e_surprised.gif)