[gelöst] Ein anderer Anwender hat ... Bankkontenabstimmung

20. August 2009 12:41

Hallo zusammen,

unser Kunde hat ein Problem.
Er nutzt die Erweiterung "Zahlungsverkehr" und möchte mit Hilfe der "Bankabstimmung" nun die zugewiesenen Zahlungen auf ein dazugehöriges Bankkonto buchen.

Klappt in der Native einwandfrei, beim SQL Server aber nicht
... ich weiß, ich habe nicht auf einer SQL Server Version sondern auf der Native DB entwickelt *schäm*.

Aber, ich habe am Quellcode des Zahlungsverkehrs (also auch nicht an der Tabelle/Form "Bankkontoabstimmung" etwas geändert.
Es funktioniert nicht. Nach dem Durchlauf (Prüfen der einzelnen Abstimmungen, die alle ok sind) kommt eben besagte Fehlermeldung
"Ein anderer Anwender hat den Datensatz für diese Bankkontoabstimmung geändert.....

Ist vielleicht der Quellcode der Erweiterung Zahlungsverkehr nicht überall an die SQL Server Variante von NAV angepasst worden?

Ich glaub, ich muss das mal debuggen. Zum Theme "Ein anderer Anwender hat ..." gibt es hier ja schon ein paar Beiträge.

Vielleicht hatte jemand ja schonmal das gleiche Problem ... und eine Lösung ;-)

Vielen Dank,
Gruß naviii
Zuletzt geändert von Naviii am 20. August 2009 13:29, insgesamt 1-mal geändert.

Re: Ein anderer Anwender hat ... Bankkontenabstimmung

20. August 2009 13:29

Ich nochmal,

hab die Stelle gefunden, an der es schief geht.

In CodeUnit 370, Fkt. OnRun wird ganz am Ende der übergebene Record (Bankkontoabstimmung) versucht zu löschen:
Code:
BankAccStmt.TRANSFERFIELDS(Rec);
BankAccStmt.INSERT;
DELETE;


Das schlägt fehl und erzeugt besagte Fehlermeldung, da die Form Bankkontoabstimmung mit den entsprechenden Bankkontoabstimmungszeilen ja noch offen ist. Aus dieser Form heraus wird ja die (Standard)Funktion "Buchen" aufgerufen.

Wenn das DELETE auskommentiert ist, werden die Zeilen in der Form gelöscht aber (logisch) bleibt der jetzt nicht gelöschte Datensatz der Bankkontoabstimmung stehen.
Der kann dann per F4 (manuell) gelöscht werden.

Ist zwar nur ein Workaround (denn in der Native DB klappt es ja), aber so kann der Kunde wenigstens weiter arbeiten.

Gruß,
naviii

Re: [gelöst] Ein anderer Anwender hat ... Bankkontenabstimmung

20. August 2009 13:33

Evtl. kannst du die Löschenfunktion doch noch nutzen:

Code:
BankAccStmt.TRANSFERFIELDS(Rec);
BankAccStmt.INSERT;
GET(...PK-Felder); // Datensatz neu holen
DELETE;

Re: [gelöst] Ein anderer Anwender hat ... Bankkontenabstimmung

20. August 2009 14:25

... und wieder hat mir die gute Fee geholfen.
Damit klappt es tatsächlich.

Ich verstehe zwar nicht ganz, warum der Original-Quellcode in der Natove DB funktioniert und in der SQL Client Version nicht, aber seis drum.

Nun geht`s.

Danke Natalie