BAPI_TRANSACTION_COMMIT in aufgerufener Transaktion ersetzen Thema ist als GELÖST markiert

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

BAPI_TRANSACTION_COMMIT in aufgerufener Transaktion ersetzen

Beitrag von gs3rr4 (ForumUser / 63 / 24 / 0 ) »
Hallo!

Ich muss eine Transaktion aufrufen. In dieser Transaktion wird ein BAPI verwendet (BAPI_MATERIAL_SAVEDATA). Direkt danach wird ein BAPI_TRANSACTION_COMMIT ausgeführt.

Mein Problem ist, dass nach einem COMMIT WORK (was innerhalb von BAPI_TRANSACTION_COMMIT ausgeführt wird) die aufgerufene Transaktion beendet wird und der Benutzer in die ursprüngliche Transaktion zurückgeworfen wird.

Ich habe es in anderen Fällen geschafft, dies zu umgehen, indem ich den Funktionsbaustein DB_COMMIT verwendet habe. Doch jetzt funktioniert das nicht mehr.

Ich habe in SM12 nachgeschaut. Dort sind einige Tabellen gesperrt. Wenn ich den Code mit dem ursprünglichen BAPI_TRANSACTION_COMMIT ausführe, sehe ich, dass die Sperren ebenfalls gelöst werden.

Was ich dann ausprobiert habe, ist DEQUEUE_ALL. Die Sperren sind auf diese Weise weg, aber jetzt funktioniert das aufgerufene BAPI nicht. Das Material wird nicht so hinzugefügt, wie es geschieht, wenn BAPI_TRANSACTION_COMMIT verwendet wird.

Ich werde noch verrückt. Irgendwelche Ideen? =/

Code: Alles auswählen.

  call function 'BAPI_MATERIAL_SAVEDATA'
    exporting
      headdata     = lv_mathead
    tables
      extensionin  = lt_extensionin
      extensioninx = lt_extensioninx.
  if sy-subrc ne 0.
    message id sy-msgid type sy-msgty number sy-msgno
          with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    call function 'BAPI_TRANSACTION_ROLLBACK'.

  else.
*      call function 'BAPI_TRANSACTION_COMMIT'.

    call function 'DB_COMMIT'.
    wait up to 3 seconds.

    call function 'DEQUEUE_ALL'.

  endif.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: BAPI_TRANSACTION_COMMIT in aufgerufener Transaktion ersetzen

Beitrag von black_adept (Top Expert / 4161 / 136 / 960 ) »
Benutzt du "CALL TRANSACTION USING t_bdcdata OPTIONS FROM ctu_params"?

Wenn ja, dann bitte im ctu_params das Feld RACOMMIT auf "X" setzen.
RACOMMIT = "COMMIT WORK ist kein Ende bei CALL TRANSACTION USING..."

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
gs3rr4

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: BAPI_TRANSACTION_COMMIT in aufgerufener Transaktion ersetzen

Beitrag von gs3rr4 (ForumUser / 63 / 24 / 0 ) »
Vielen Dank, du hast mir sehr geholfen :)

Seite 1 von 1

Über diesen Beitrag



Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Feldroutine ADSO Transformation
vor einer Woche von codemaster1 2 / 86660
Stücklisten
vor 2 Wochen von Selma.schwarz 1 / 88354

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Vergleichbare Themen

CALL TRANSACTION und COMMIT WORK
von edwin » 09.06.2007 13:58
COMMIT WORK bei 2 BAPI
von autohandel7 » 11.11.2020 11:16
Commit und Rollback, auch bei RFC und BAPI
von m.schwertle » 21.11.2007 08:23
Call Transaction: Wie wurde Transaktion verlassen?
von toto » 03.04.2008 15:15

Aktuelle Forenbeiträge

Feldroutine ADSO Transformation
vor einer Woche von codemaster1 2 / 86660
Stücklisten
vor 2 Wochen von Selma.schwarz 1 / 88354

Unbeantwortete Forenbeiträge

Stücklisten
vor 2 Wochen von Selma.schwarz 1 / 88354
Belege
vor 2 Wochen von Selma.schwarz 1 / 85987