Hallo zusammen,
mich beschäftigt derzeit ein "kleines großes" Problem.
Folgendes Szenario:
Ich habe eine BSP-Applikation auf einem Stand-alone WebAS 7.00. Diese unterhält sich via RFC mit unserem Backend 4.6c. Über diese BSP-Applikation können QM-Meldungen (mit Standardfunktionsbausteinen) angelegt werden. Die Funktionsbausteine sind (um das Ganze RFC-fähig zu machen und zu vereinfachen) in einen "Z-BAPI" gekapselt. Diesen rufe ich beim Anlegen einer QM-Meldung aus meiner BSP-Applikation via RFC auf und kriege vom Backend eine Melungsnummer zurück. Ich zeige das Ganze noch mal an und wenn das Anlegen bestätigt wird, rufe ich den BAPI BAPI_TRANSACTION_COMMIT auf, um die QM-Meldung in die Datenbank zu schreiben.
Beim Optimieren dieser Anwendung (Wechsel zwischen stateful und stateless, je nachdem, wie groß die Datenmengen sind) fiel mir auf, dass die QM-Meldung im Backend nur angelegt wird, wenn ich die Session stateful halte.
Das Ganze ist auch irgendwo logisch, denn woher soll das gerufene Backend wissen, welchen Commit es absetzen soll? Doch anhand welcher Daten / Session erkennt das SAP-System in stateful-Anwendungen, dass es sich "genau um diesen einen" Commit handelt?
Ich weiß, dass das Ganze evtl. in einem RFC-Forum besser aufgehoben wäre, jedoch ist mir keine andere Entwicklungsmöglchkeit der SAP bekannt, in der man stateless programmieren kann (außer vielleicht Flow-Logic beim ITS). Und mein Problem tritt eben nur in stateless-Anwendungen auf.