COMMIT WORK macht Änderungen rückgängig

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

COMMIT WORK macht Änderungen rückgängig

Beitrag von Kaiwalker (Specialist / 168 / 0 / 0 ) »
Hallo,

ich habe da ein Problem.
In einem Funktionsbaustein wird etwas in einer Datenbanktabelle geändert.
Ein COMMIT WORK AND WAIT schließt das ganze dann ab.
Die Änderungen sind zu diesem Zeitpunkt dann auch auf der Datenbank abgespeichert.
Aber nach diesem Funktionsbaustein wird noch ein anderer aufgerufen, der auch nur Datensätze an diese Tabelle anhängt.
Danach kommt wieder ein COMMIT WORK AND WAIT.
Die neuen Datensätze sind gespeichert, aber die Änderungen von dem ersten Funktionsbaustein sind wieder zurückgenommen. ????
Im Verbucher stand nichts mehr.

Hier noch ein Beispiel:
Tabelle: NLEI
Leistung | Beginndatum | Endedatum
Leist1 | 08.01.2006 | 31.12.9999

nach dem erstem Funktionsbaustein
Leistung | Beginndatum | Endedatum
Leist1 | 08.01.2006 | 31.01.2006
Leist1 | 01.02.2006 | 28.02.2006
Leist1 | 01.03.2006 | 31.03.2006
...

nach dem zweitem Funktionsbaustein
Leistung | Beginndatum | Endedatum
Leist1 | 08.01.2006 | 31.12.9999
Leist1 | 01.02.2006 | 28.02.2006
Leist1 | 01.03.2006 | 31.03.2006
...

Das seltsame ist. Dieser Fehler tritt nur auf einer Maschine auf.
Auf einer anderen mit dem gleichen Release und Patchstand tritt dieser Fehler nicht auf.

Hat da jemand eine Idee? Ich stehe da wirklich auf dem Schlauch.

MfG
Kaiwalker
Möge die Macht mit euch sein.

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


Beitrag von black_adept (Top Expert / 4135 / 131 / 956 ) »
Was sind denn die Puffereinstellungen der Tabelle?
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Beitrag von Kaiwalker (Specialist / 168 / 0 / 0 ) »
Bei "Pufferung nicht erlaubt" ist ein Haken.
Möge die Macht mit euch sein.

Beitrag von ewx (Top Expert / 4887 / 319 / 644 ) »
Hi Kaiwalker,

Wenn du mit Verbuchungsbausteinen arbeitest (geht nicht eindeutig aus deiner BEschreibung hervor...), dann setz mal zu Beginn des Programms SET UPDATE TASK LOCAL.

Wahrscheinlich ist die eine Maschine schneller, als die andere oder hat einen besseren Draht zur Datenbank... :wink:

Gruß, Enno

Beitrag von Kaiwalker (Specialist / 168 / 0 / 0 ) »
Aber wie kann es daran liegen?
Ich habe mir während des Debuggens die ganze Zeit in SE16N die Tabelle NLEI angesehen. Nach dem COMMIT WORK AND WAIT im ersten Funktionsbaustein waren die Werte in der Tabelle richtig abgespeichert.
Nach dem COMMIT WORK AND WAIT des zweiten Funktionsbausteins waren die Werte dann wieder wie vor dem ersten Funktionsbaustein.
Das spricht doch dafür, dass die Verbuchung schon abgeschlossen war.
Möge die Macht mit euch sein.

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo zusammen,

gemäß Deiner Beschreibung kommt es zu folgendem Effekt:
  1. VB1 schreibt mehrere Zeilen in Deine Tabelle
  2. VB2 schreibt auch mehrere, zum Teil aber gleiche, Zeilen in Deine Tabelle
Für beide VB wurde der bisherige Datenbestand zu Beginn der Transaktion in ihren jeweiligen Puffer gelesen. Die Daten für VB1 werden nun geändert, aber VB2 bekommt davon nichts mit und hat deshalb immer noch den alten Stand, den er auch wieder auf die DB zurückschreibt...

Du musst also einen Weg finden, dass VB2 entweder die Finger von den bereits geänderten Sätzen läßt, oder davon Kenntnis erhält...
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von Kaiwalker (Specialist / 168 / 0 / 0 ) »
Der 2. Funktionsbaustein ändert doch gar nichts an den Datensätzen, die der 1. Funktionsbaustein ändert oder anlegt.

Der COMMIT WORK AND WAIT macht ja diese Probleme.

Im ersten Funktionsbaustein ändere ich Datensätze und füge welche hinzu.
Dies geschieht mittels eines BAPIs.

Im zweiten Funktionsbaustein werden nur Datensätze hinzugefügt.
Dies geschieht ebenfalls mittels des selben BAPIs.

Nach jedem BAPI-Aufruf commt ein COMMTI WORK AND WAIT, bzw ein Aufruf des BAPIs "BAPI_TRANSACTION_COMMIT", der ja bekanntlich das selbe macht. (Oder ruft dieser BAPI andere Methoden nach dem COMMIT auf?)
Möge die Macht mit euch sein.

Beitrag von ewx (Top Expert / 4887 / 319 / 644 ) »
Manche BAPI's muss man zwischen den Aufrufen initialisieren...
Gruß, Enno

Beitrag von Kaiwalker (Specialist / 168 / 0 / 0 ) »
Wie geht das denn?
Möge die Macht mit euch sein.

Beitrag von ewx (Top Expert / 4887 / 319 / 644 ) »
Das kommt auf die BAPI's an. Blöderweise sind das auch keine BAPI_REFRESH_IRGENDWAS-Bausteine, sondern halt andere.
Beim Anlegen/ Ändern von Chargen z.B. heisst der VB_INIT.
Hast du im OSS zu "deinem" BAPI schon mal gesucht?
Gruß, Enno

Beitrag von Kaiwalker (Specialist / 168 / 0 / 0 ) »
Es gibt keinen INIT-Baustein dafür.
Noch eine Idee?
Möge die Macht mit euch sein.

Beitrag von black_adept (Top Expert / 4135 / 131 / 956 ) »
Hallo kaiwalker,

wenn du irgendwann mal mitteilst welcher BAPI denn überhaupt verwendet wird und am Besten noch das Coding mit dem du die BAPIs füllst könnte dir evtl. weitergeholfen werden.

Weiterhin wäre es interessant welches die aktuellen Inhalte der Übergabeparameter beim Aufruf der BAPIs sind.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Beitrag von Kaiwalker (Specialist / 168 / 0 / 0 ) »
Hallo,

Den BAPI kann ich dir nennen, jedoch nicht die Inhalte der Parameter.
Diese fallen unter den Datenschutz.

Es handelt sich um den Funktionsbaustein 'ISH_CASESERVICE_MODIFYMULTIPLE', der im Prinzip genauso arbeitet, wie die BAPIs 'BAPI_CASESERVICE_CANCELMULT', 'BAPI_CASESERVICE_CHANGEMULT' und 'BAPI_CASESERVICE_CREATEMULT'.
Dieser Funktionsbaustein hat den Vorteil gegenüber den BAPIs, dass er alle 3 Aktionen (Anlegen, Ändern und Stornieren) unterstützt.
Davon ganz abgesehen wird dieser Funktionsbaustein auch von den BAPIs aufgerufen.

MfG
Kaiwalker
Möge die Macht mit euch sein.

Beitrag von Kaiwalker (Specialist / 168 / 0 / 0 ) »
Das Problem besteht immernoch.
Weiß hier keiner Rat?
Möge die Macht mit euch sein.

Seite 1 von 1

Vergleichbare Themen

11
Antw.
3485
Views
COMMIT WORK
von retsch » 25.05.2023 07:40 • Verfasst in ABAP® für Anfänger
1
Antw.
6824
Views
Änderungen an Repository-Objekt rückgängig machen
von herbivore » 15.08.2005 17:00 • Verfasst in SAP - Allgemeines
3
Antw.
3528
Views
Commit work im Debugger
von c oco » 12.06.2006 16:45 • Verfasst in ABAP® für Anfänger
5
Antw.
3655
Views
COMMIT WORK bei 2 BAPI
von autohandel7 » 11.11.2020 11:16 • Verfasst in ABAP® für Anfänger
2
Antw.
5735
Views
COMMIT WORK AND WAIT
von Barney » 21.01.2015 15:02 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

IBAN und BUT0BK
vor 2 Tagen von waltersen gelöst 10 / 10908
SAPGui 8.00 32 Bit vs 64 Bit
vor 4 Tagen von DeathAndPain 3 / 3852
Programm per Fremdtransport einspielen
vor 4 Tagen von IHe 3 / 3220
Splitter-AlV erscheint nicht
vor 4 Tagen von qyurryus 2 / 3181

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.

Aktuelle Forenbeiträge

IBAN und BUT0BK
vor 2 Tagen von waltersen gelöst 10 / 10908
SAPGui 8.00 32 Bit vs 64 Bit
vor 4 Tagen von DeathAndPain 3 / 3852
Programm per Fremdtransport einspielen
vor 4 Tagen von IHe 3 / 3220
Splitter-AlV erscheint nicht
vor 4 Tagen von qyurryus 2 / 3181